我现在有个比较复杂的负载均衡需求:
1 、一个服务部署了多个泳道(或者说是多个 group 吧),然后请求头里有个泳道 header ,希望根据泳道 header 调相同泳道的服务,若该泳道内无服务实例,则 default 到主干泳道
2 、相同泳道的服务内,希望优先调当前所在可用区的实例
原始的需求就是这样的,不知道用 envoy 如何实现
1
zizon 174 天前
刚看了下现在支持 lua 动态分发了.
https://www.envoyproxy.io/docs/envoy/latest/configuration/http/cluster_specifier/lua 配对应的 cluster upstream 和 endpoint 应该就行了吧. |
2
MelodYi 174 天前
envoy 有好几个零碎功能,但是没测过组合使用,算是给几个关键字,信息检索和尝试只能自助了。
1 、这个在 envoy 有个叫 subset 的功能,路由规则设置 header 匹配 "无实例降级到 default",据我所知 envoy 开源没有。阿里那个 Higress 改 Envoy 源码加了一个这个功能,可以到 higress 的仓库检索下 HTTPRouteDestination 里面的 fallbackClusters 。 2 、同可用区优先可以参考 https://istio.io/latest/zh/docs/tasks/traffic-management/locality-load-balancing/failover/ https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/priority.html op 这个诉求很复杂,直接折腾插件也是个思路。 op 是哪家云商吗?感觉就国内几个云商在那折腾 envoy ,提泳道啥的(感觉就是这些云商创的词汇,别地没见过) |