标签:src 传输 thread com 通过 serve 平滑 提供者 image
Dubbo的核心功能主要包含:
1.远程通讯:dubbo-remoting模块, 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。
2.集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。
3.自动发现: 基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。
调用过程图:
?1.Proxy持有一个Invoker对象,使用Invoker调用
?2.之后通过Cluster进行负载容错,失败重试
?3.调用Directory获取远程服务的Invoker列表
?4.负载均衡
?用户配置了路由规则,则根据路由规则过滤获取到的Invoker列表
?用户没有配置路由规则或配置路由后还有很多节点,则使用LoadBalance方法做负载均衡,选用一个可以调用的Invoker
?5.经过一个一个过滤器链,通常是处理上下文、限流、计数等。
?6.会使用Client做数据传输
?7.私有化协议的构造(Codec)
?8.进行序列化
?9.服务端收到这个Request请求,将其分配到ThreadPool中进行处理
?10.Server来处理这些Request
?11.根据请求查找对应的Exporter
?12.之后经过一个服务提供者端的过滤器链
?13.然后找到接口实现并真正的调用,将请求结果返回
标签:src 传输 thread com 通过 serve 平滑 提供者 image
原文地址:https://www.cnblogs.com/stubborn-dude/p/14890763.html