dubbo功能模块介绍
所属分类 dubbo
浏览量 1406
Config 配置 ServiceConfig ReferenceConfig 等
Proxy 服务代理
Registry 注册 封装服务注册和发现
Cluster 集群 路由 容错 负载均衡等
Monitor 监控 统计调用耗时和次数
Protocol 远程调用协议 封装 RPC 调用 , invoker
Exchange 信息交换 封装请求响应模式,同步转异步,以 Request, Response 为中心
Transport 网络传输 封装 netty mina 等 框架 ,以 Message 为中心
Serialize 序列化
服务提供者启动,根据协议信息绑定到配置的IP和端口上
注册服务信息至注册中心
客户端启动,根据接口和协议信息订阅注册中心中注册的服务,注册中心将存活的服务地址通知到客户端,当有服务信息变更时客户端可以通过定时通知得到变更信息
在客户端需要调用服务时,从内存中拿到上次通知的所有存活服务地址,根据路由信息和负载均衡机制选择最终调用的服务地址,发起调用
通过filter分别在客户端发送请求前和服务端接收请求后,通过异步记录一些需要的信息传递到monitor做监控或者统计
Monitor一般用于监控和统计RPC调用情况、成功率、失败率等情况
dubbo-config 配置
把dubbo xml和注解配置转换为config对象 ( dubbo.xsd )
register,protocol等
ServiceBean、ReferenceBean ( dubbo:service dubbo:reference)
ProtocolConfig、RegisterConfig (dubbo:protocol dubbo:register)
dubbo-rpc Proxy 服务代理
负责生成消费者的代理对象,以及服务提供方的Invoke
ProxyFactory接口的2种实现 JdkProxyFactory JavassistProxyFactory
dubbo-registry Registry注册中心
负责服务注册与查询服务,以及注册服务的本地缓存
支持多种协议注册发现服务,例如redis zookeeper Multicast
接口 RegistryFactory Registry
AbstractRegistry 以及 ZookeeperRegistry ZookeeperRegistryFactory
dubbo-cluster Cluster 路由
负载均衡策略,失败策略
缺省设置 RandomLoadBalance FailoverCluster
支持轮询、随机、一致性哈希 最少活跃连接数 等负载均衡策略
接口 LoadBalance Cluster
RandomLoadBalance RoundRobinLoadBalance LeastActiveLoadBalance ConsistentHashLoadBalance
dubbo-monitor Monitor监控
RPC调用次数和调用时间监控
dubbo-monitor-simple 提供简单的控制台
核心类DubboMonitor Statistics
dubbo-rpc Protocol远程调用协议
封将RPC调用、支持多种RPC协议,不包含IO通信部分
支持RMI Hessian Http Webservice thrift等rpc调用方式
接口 Protocol Exporter Invoker
DubboProtocol、DubboInvoker、DubboExporter、DubboCodec
dubbo-remoting Exchange信息交换层
封装请求响应模式,同步转异步
处理各种协议的通信请求,支持netty、mina、http等
默认采用Netty进行通信
接口 Serve Channe Client NettyClient、NettyServer
dubbo-common Serialize 序列化
数据序列化层和可复用的一些工具,包括序列化线程池等
dubbo协议缺省为hessian2,rmi协议缺省为java,http协议缺省为json
ThreadPool Serialization
FixedThreadPool Hessian2Serialization
Xml配置与代码配置
生产者
dubbo:register RegisterConfig
dubbo:application ApplicationConfig
dubbo:protocol ProtocolConfig
dubbo:service ServiceConfig
消费者
dubbo:register RegisterConfig
dubbo:application ApplicationConfig
dubbo:reference ReferenceConfig
上一篇
下一篇
代理的几种实现方式
RPC原理简介
mybatis知识点
网站架构演变过程
redis消息发布与订阅
Redis客户端 Jedis Redisson Lettuce 对比