V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ducuducu
V2EX  ›  程序员

envoy 可以自定义负载均衡策略吗?

  •  
  •   ducuducu · 178 天前 · 870 次点击
    这是一个创建于 178 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我现在有个比较复杂的负载均衡需求:
    1 、一个服务部署了多个泳道(或者说是多个 group 吧),然后请求头里有个泳道 header ,希望根据泳道 header 调相同泳道的服务,若该泳道内无服务实例,则 default 到主干泳道
    2 、相同泳道的服务内,希望优先调当前所在可用区的实例
    原始的需求就是这样的,不知道用 envoy 如何实现

    2 条回复    2024-05-28 09:29:03 +08:00
    zizon
        1
    zizon  
       178 天前
    刚看了下现在支持 lua 动态分发了.
    https://www.envoyproxy.io/docs/envoy/latest/configuration/http/cluster_specifier/lua

    配对应的 cluster upstream 和 endpoint 应该就行了吧.
    MelodYi
        2
    MelodYi  
       177 天前
    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 ,提泳道啥的(感觉就是这些云商创的词汇,别地没见过)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   977 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 20:58 · PVG 04:58 · LAX 12:58 · JFK 15:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.