- 已编辑
Traefik:HTTP 反向代理和负载均衡器,可轻松部署微服务
Traefik(发音类似“traffic”)是一款现代化的HTTP反向代理及负载均衡工具,借助它,部署微服务变得轻而易举。
Traefik 能够与你现有的各类基础设施组件(像Docker、Swarm模式、Kubernetes、Consul、Etcd、Rancher v2、亚马逊ECS等等)实现集成,而且能自动、动态地完成自身配置。
你只需要把Traefik指向你的编排工具,这就是唯一要做的配置步骤。
概述
假设你借助某个编排工具(比如Swarm或者Kubernetes),又或者某个服务注册系统(例如etcd或者consul),已经部署好了一批微服务。
现在你希望用户可以访问这些微服务,这就需要一个反向代理。
传统的反向代理要求你逐个配置每条路由,把路径和子域名连接到每个微服务上。
要是你所处的环境中,每天都得多次对服务进行添加、删除、关停、升级或者扩容等操作,那么要保证路由始终处于最新状态,这个任务就会变得非常繁琐。
而这正是Traefik能派上用场的时候!
Traefik会监听你的服务注册系统或者编排工具的API,然后马上生成相应路由,这样你的微服务就能和外界连通了——你都不用再额外操心。
运行Traefik,让它帮你搞定一切!
(不过要是你想手动配置部分路由,Traefik同样支持这种做法!)
特点
- 持续自动更新配置(无需重启软件!)
- 支持多种负载均衡算法
- 借助Let's Encrypt 为你的微服务提供HTTPS服务(还支持通配符证书)
- 具备断路器和重试功能
- 通过简洁的网页界面就能见证其强大功能
- 支持WebSocket、HTTP/2、gRPC协议
- 能够提供各类指标数据(如Rest、Prometheus、Datadog、Statsd、InfluxDB 2.X等格式)
- 保留访问日志(支持JSON、CLF格式)
- 运行速度快
- 开放Rest API接口
- 被打包成单个二进制文件(用Go语言精心打造),并且还有官方 Docker镜像可供使用