此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅最新版本。
流量管理的本质是将请求根据制定好的路由规则分发到应用服务上,如下图所示:
其中:
Dubbo 提供了支持 mesh 方式的流量管理策略,可以很容易实现 A/B测试、金丝雀发布、蓝绿发布 等能力。
Dubbo 将整个流量管理分成 VirtualService 和 DestinationRule 两部分。当 Consumer 接收到一个请求时,会根据 VirtualService 中定义的 DubboRoute 和 DubboRouteDetail 匹配到对应的 DubboDestination 中的 subnet,最后根据 DestinationRule 中配置的 subnet 信息中的 labels 找到对应需要具体路由的 Provider 集群。其中:
这种设计理念很好的解决流量分流和目标地址之间的耦合问题。不仅将配置规则进行了简化有效避免配置冗余的问题,还支持 VirtualService 和 DestinationRule 的任意组合,可以非常灵活的支持各种业务使用场景。