Traefik
来源:JHipster |
时间:2018-11-04
|
|

traefik是一个现代HTTP反向代理和负载局衡器,使得微服务的部署比较容易

它可以像zuul一样路由HTTP请求,因此它与jhipster的gateway有一些功能上的重叠,但是它工作于网关的更低一级:它仅仅路由http请求,但不提供速率限制、安全和swagger文档聚合

对于多种微服务的发现方案是比较有益的,但是它仅工作与Consul

这有两种不同的架构风格,描述如下:

架构图1:默认配置

Traefik作为反向代理和均衡器,放弃使用Zuul,它将所有的http请求正确的转发到微服务。

这里写图片描述

在这种架构中,jhipster”网关“不是一个真正的网关,主要服务于angular应用,这是我们的默认配置

架构图2:Traefik和Zuul

Traefik可以和Zuul一起工作:在这例子中,一个HTTP请求通过Traefik然后通过Zuul到达目的地。

这里写图片描述

这种方式多增加了一此网络请求,因此比之前的架构低效。但是这允许网关充分发挥潜力:进行限速和swagger文档聚合

作为结果,Traefik作为一个边缘服务,允许扩展jhipster网关

这个配置在JHipster是开箱即用的:唯一问题是客户端应用需要使用绝对URL。因此对于microservice1:

  • 对于默认的URL/microservice1,只能通过Traefik访问

  • 对于/gateway/microservice1将会使用Traefik配置的gateway访问microservice1应用

入门

请注意Traefik只能工作于Consul,如果你使用的Jhipster Registry则不能工作

使用Traefik架构,运行docker-compose生成器时询问你选择哪种网关时,选择Traefik

这将会生成traefik.yml配置文件以便于在Docker运行Traefik,并会生成并配置traefik/traefik.toml文件

这个配置文件如此设置:

  • Traefik运行与80端口,如果你的需要访问网关,请访问http://localhost/gateway

  • Traefik管理界面运行于8080端口,你应该访问http://localhost:8080

当Traefik使用Consul时,检查Consul管理界面也比较有用,可以访问http://localhost:8500


提交
查看更多评论
没有更多评论