Dubbo
Dubbo路由及负载均衡
https://my.oschina.net/vivotech/blog/10136865
客户端通过本地代理 Proxy 调用 ClusterInvoker,ClusterInvoker 从服务目录 Directory 获取服务列表后经过路由链获取新的服务列表、负载均衡从路由后的服务列表中根据不同的负载均衡策略选取一个远端 Invoker 后再发起远程 RPC 调用。
Dubbo 的路由机制实际是基于简单的责任链模式实现,同时 Router 继承了 Comparable 接口,自定义的路由可以设置不同的优先级进而定制化责任链上 Router 的顺序。基于责任链模式可以支持多种路由策略串行执行如就近路由 + 标签路由,或条件路由 + 就近路由等,且路由的配置支持基于接口级的配置也支持基于应用级的配置。常见的路由方式主要有:就近路由,条件路由,标签路由等
Dubbo 路由的核心类主要有:RouterChain、RouterFactory 与 Router 。
(1)RouterChain
RouterChain 是路由链的入口,其核心字段有
invokers(List<invoker> 类型)
初始服务列表由服务目录 Directory 设置,当前 RouterChain 要过滤的 Invoker 集合
builtinRouters(List 类型)
当前 RouterChain 包含的自动激活的 Router 集合
routers(List 类型)
包括所有要使用的路由由 builtinRouters 加上通过 addRouters () 方法添加的 Router 对象
(2)RouterFactory 为 Router 的工厂类
@SPI
public interface RouterFactory {
@Adaptive("protocol")
Router getRouter(URL url);
}
(3)Router
Router 是真正的路由实现策略,由 RouterChain 进行调用,同时 Router 继承了 Compareable 接口,可以根据业务逻辑设置不同的优先级。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
2019-11-20 算法02---递归