Hello folks,我是 Luga,今天我们来聊一下云原生生态应用场景 - 集“流量”、“安全”及“业务”于一体的云原生轻量、开源的融合网关 -
Traefik Proxy
备受期待的 Traefik Proxy 3.4 现已正式发布,这款代号为“Chaource” 🧀 的全新版本堪称技术与创意的巅峰之作! ……
—01 —
Traefik Proxy 3.4 新特性一览
“Chaource” ,这一名字致敬法国香槟地区自罗马时代传承至今的经典奶油奶酪,以其丝滑口感与丰富风味闻名。正如这道美味佳肴,Traefik Proxy 3.4 为用户奉上了一场技术盛宴,融入了令人振奋的全新功能、优化至臻的操作体验,以及一丝神秘的“魔法”,确保我们所构建的基础设施如同精心调制的奶酪火锅般流畅运转、坚韧不拔。
在 2025 年 5 月 18 日这一科技盛行的时刻,让我们一同揭开这款版本的“外层”,深入挖掘其带来的无限可能与卓越价值,助力我们的网络架构迈向新的高度!
Traefik Proxy 3.4 “Chaource” 版本带来了多项令人振奋的新特性,进一步提升了其在网络流量管理和负载均衡领域的领先地位。从分布式限流到智能负载均衡,再到灵活的自定义服务器 URL 配置,这些功能的加入不仅优化了性能,还为复杂多节点环境下的流量管理提供了更高效、更智能的解决方案。
以下是 Traefik Proxy 3.4 的核心亮点,助力大家轻松应对现代网络架构的挑战。具体可参考如下:
1、
分布式限流(Redis 支持)
Traefik Proxy 3.4 引入了基于 Redis 的分布式限流功能,允许用户在多实例环境中全局执行流量规则。借助 Redis 的强大支持,这一功能能够跨节点统一管理流量,避免某些服务因过度占用带宽而导致的“失控”现象,确保了资源分配的公平性与稳定性。
无论是应对 API 滥用、处理突发流量高峰,还是保障多节点集群的平稳运行,这一特性都能让我们轻松掌控全局,无需费力即可实现高效的流量治理。
以下是一个在 Kubernetes 中部署 rateLimit 中间件的示例,展示如何通过 Redis 实现分布式限流:
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: test-ratelimit
spec:
rateLimit:
# ...
redis:
secret: mysecret
---
apiVersion: v1
kind: Secret
metadata:
name: mysecret
namespace: default
data:
username: dXNlcm5hbWU=
password: cGFzc3dvcmQ=
2、
P2C(双择一)负载均衡
同时,此版本引入了全新的 P2C(Power of Two Choices,双择一)负载均衡策略,堪称流量管理的“智慧调度师”。与传统的随机选择后端不同,P2C 算法通过智能比较两个随机候选后端,始终将请求路由到负载较低的一个。
这种机制有效避免了在高流量场景下因“意外”选择导致的单点过载问题,显著减少了瓶颈现象,确保了更平稳、更可预测的负载分布。P2C 负载均衡让所构建的服务在压力测试中也能游刃有余,为高并发场景提供了强有力的支持。
启用 P2C 负载均衡非常简单,只需在服务的负载均衡配置中将方法设置为 p2c 即可。以下是一个简单配置示例:
http:
services:
my-service:
loadBalancer:
servers:
- url: "http://10.0.0.1"
- url: "http://10.0.0.2"
- url: "http://10.0.0.3"
- url: "http://10.0.0.4"
method: "p2c"
3、
通过标签自定义服务器 URL
此特性支持 Docker、Swarm、ECS、Consul 和 Nomad 等多种环境,让用户能够灵活指定服务器 URL,而无需局限于容器的默认 IP 地址。无论是需要将流量导向特定的外部服务,还是在复杂网络拓扑中实现更精细的控制,这一功能都为用户提供了更大的自由度和便利性。
以下是一个 Docker Compose 示例,展示如何部署应用并通过标签设置自定义服务器 URL:
version: '3.8'
services:
main:
image: lorem/ipsum:latest
deploy:
replicas: 3
labels:
- "traefik.enable=true"
- "traefik.http.routers.service1.entrypoints=https"
- "traefik.http.routers.service1.rule=Host(`foobar1.example.com`)"
- "traefik.http.routers.service1.service=foobar1"
- "traefik.http.routers.service1.tls=true"
- "traefik.http.services.service1.loadbalancer.server.url=http://foobar1:80"
- "traefik.http.routers.service2.entrypoints=https"
- "traefik.http.routers.service2.rule=Host(`foobar2.example.com`)"
- "traefik.http.routers.service2.service=foobar2"
- "traefik.http.routers.service2.tls=true"
- "traefik.http.services.service2.loadbalancer.server.url=http://foobar2:80"
- "traefik.docker.network=traefik"
更多新特性,可查看官网所示。
今天的解析就到这里,欲了解更多关于
Traefik Proxy 相关技术的深入剖析,最佳实践以及相关技术前沿,敬请关注我们的微信公众号或视频号:架构驿站(priest-arc),获取更多独家技术洞察!
Happy Coding ~
Reference :
[1] https://github.com/traefik/traefik/releases/tag/v3.4.0?ref=traefik.io
Adiós !
··································
对云原生网关 Traefik 技术感兴趣的朋友们,可以了解一下我的新书,感谢支持!
Hello folks,我是 Luga,Traefik Ambassador,Jakarta EE Ambassador, 一个 15 年+ 技术老司机,从 IT 屌丝折腾到码畜,最后到“酱油“架构师。如果你喜欢技术,不喜欢呻吟,那么恭喜你,来对地方了,关注我,共同学习、进步、超越~