-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Spring Cloud Alibaba Traffic Governance Scheme Design | Spring Cloud Alibaba流量治理方案设计 #2700
Comments
If there are any suggestions or governance options that the community wants to implement, they can be discussed here |
方案说明里面格式有些乱,最好保持格式的简洁和清晰! |
是否有考虑将dubbo路由也纳入,用同样的配置模型来配置不同协议的路由,可以降低用户的学习成本 |
能再详细说明一下你的意思吗?不是特别理解你说的纳入dubbo路由。 |
未来spring cloud alibaba 会对接opensergo控制面,dubbo也在opensergo的蓝图中,可以无缝转化。实际上,这不是spring cloud Alibaba定义的规则,他是将控制面的规则转化为该数据结构,无需学习。 |
就是疑惑是否会把dubbo路由治理也规划进来。不过 |
我看到route里面有 version,是已经包含了灰度的能力在规划里面吗 ? @HHoflittlefish777 @steverao |
是的 |
后续我们会提供详细的文档,包括使用场景方面 |
非常不错的一个特性,很期待。 |
这个不再更新了吗 |
Background
Spring Cloud Alibaba microservice governance capabilities are relatively weak, we currently intends to dock Istio to complete the traffic governance function, and need to abstract Spring Cloud Alibaba's own governance data rules to facilitate docking.
Scheme Design
Desgin Idea
The initially intended module is called spring-cloud-starter-alibaba-governance, which contains two main modules: resource-transform and gainance-core:
CRD Design
Design Describe
Each service in the microservice system has its own traffic rules, and considering that each service only needs to save its own service rules, a user-sevice is provided to identify the service corresponding to the service governance rules, and taget-service represents the service name of the call. For traffic matching, the match rule is also an array that allows multiple routes to exist. Each route provides a rule array to match, and a rule array may contain multiple tpye, each with different rules. Finally, if none of the above rules match, it matches to the default path.
All the supported types are shown in the following table (more types will be supported later):
_|!:,.;]*[-a-zA-Z0-9+&@#/%=_|]背景
Spring Cloud Alibaba微服务治理能力比较弱,目前打算对接istio完成流量治理功能,需要抽象出Spring Cloud Alibaba自己的治理数据规则方便对接。
方案设计
设计思路
初步打算模块名称为spring-cloud-starter-alibaba-governance,其中包含两个主要模块:resource-transform和governance-core:
目前打算对接Istio,后续SCA可能还会对接其他控制面进行流量治理,考虑到可拓展性,将数据层抽象出来放在label-routing中,后续对接openSergo等控制面时直接将opensergo数据结构转化成该数据结构即可。无需进行其他修改。
设计方案
方案说明
微服务体系中的每一个服务都有自己的流量规则,同时,考虑到每一个服务只需保存自己的服务规则,提供了user-sevice来对服务治理规则对应的服务进行标识,taget-service表示调用的服务名称。对于流量匹配,匹配规则(match)也是一个数组,允许多个路径(route)存在。每一个路径(route)都提供了一个rule数组来匹配,一个rule数组中可能包含多个tpye,每一个type的规则都不同。最后,如果上述规则都无法匹配,则匹配到默认的路径中。
支持的所有类型如下表所示(后续会支持更多的的类型):
_|!:,.;]*[-a-zA-Z0-9+&@#/%=_|]The text was updated successfully, but these errors were encountered: