mosn / mosn

The Cloud-Native Network Proxy Platform
https://mosn.io
Apache License 2.0
4.45k stars 798 forks source link

[Feature] Enhance Router Weight Cluster Configuartion #1685

Open nejisama opened 3 years ago

nejisama commented 3 years ago

The New Feature

通常来说,MOSN使用的路由Action配置是将请求转发到一个特定的Cluster。实际上,MOSN路由的Action配置(路由应该转发到哪个Cluster)支持带权重的Cluster路由能力,即同一个路由规则命中以后,可以按照权重选择要转发的Cluster。 但是目前的实现存在一些缺陷:

  1. 目前不同权重的Cluster必须是不同名的,但是在实际使用的场景中,同一个Cluster是可以根据Metadata划分Subset的,因此权重路由也应该需要支持同名Cluster,但是Metadata不同的场景,可以配置不同的权重进行路由。
  2. 目前权重路由的实现,是调用router.ClusterName()这个接口进行的。这就会导致每次调用这个接口都会执行一次路由的权重选择,这显然对于重试、日志打印等,都是不理想,甚至可能是错误的,需要解决这个问题,权重路由才能真正被使用

Your scenes

Describe your use scenes (why need this feature).

Your advice

Describe the advice or solution of this new feature.

Environment

taoyuanyuan commented 3 years ago

1705