dubbo项目简介
首先看一下依赖关系
简介:
- 最上层的当属dubbo-common,里边提供了公共工具类和通用模型(比如公共参数有标准的格式等)
- 接下来依赖dubbo-common的dubbo-remoting:远程通讯模块,为客户端,服务端提供远程通信功能
- dubbo-remoting-api:定义了通用api
- 中间这么多都是实现api的各种实现,我们主要看netty4
- dubbo-remoting-zookeeper:主要对接zookeeper的服务端
- 注意一下p2p这个项目,主要是注册中心
dubbo-registry-multicast项目的使用该项目
- 再来看最中心的dubbo-rpc
- 看图
- dubbo-cluster:集群模块,这个模块将多个服务提供方包装成一个,实现负载均衡、容错、路由,结果聚合等功能
-
- 负载均衡:主要作用是从List<Invoker>中通过负载均衡算法选出真正调用的invoker,包含失败重试,org.apache.dubbo.rpc.cluster.loadbalance包
- 容错:将多个Invoker包装成一个对上层暴露,调用失败后可重试,org.apache.dubbo.rpc.cluster.directory包
- 路由:按照路由规则路由 ,org.apache.dubbo.rpc.cluster.router包
- 结果聚合:org.apache.dubbo.rpc.cluster.merger包
- 整体流程
-
- dubbo-registry:注册中心模块
- dubbo-monitor:监控模块,各种监控包括调用次数、时间、链路等
- dubbo-config:配置模块,以api的方式使用dubbo
- dubbo-container:容器模块,已Main的方式启动不需要容器
- dubbo-filter:过滤器模块,,各种过滤
参考文献:dubbo架构设计:http://dubbo.apache.org/zh-cn/docs/dev/design.html
可关注我的公众号每天更新