dubbo 分布式服务框架

dubbo(https://github.com/apache/dubbo)是一个分布式服务框架,提供了RPC调用、容错与负载均衡,服务注册与发现。 

启动流程如下:

1. 服务提供者注册服务,将自身的信息(IP,端口,提供的服务)发布到注册中心(zookeeper,nacos,redisd等)。

2. 服务消费者请求注册中心,拉取要调用的服务信息(IP,端口),然后发起远程调用。 

在服务测, dubbo会对实现类生成wapper,然后监听接口。 

在消费测,dubbo通过对接口的解析生成一个代理类,在调用的时候,其实就是在调用这个代理类,代理类内的方法基本都是同样的实现,就是对调用信息(类,方法,参数,返回值)信息进行拼装,通过 集群负载策略(轮询,轮询带权重...) +  容错策略(failfast,failover...)  + 序列化(protobuf,hessian2)  + 协议(dubbo, grpc,thrift) + 网络通信(netty, http)发起调用请求。 

在学习dubbo的过程中,有两个地方要注意:

1. dubbo的扩展机制,如上所示,在发起调用的时候,有很多的实现可供选择,这些选择就是通过dubbo的扩展机制实现。 

2. dubbo URL,无论是发布注册还是订阅,还是调用,dubbo的很多信息都是组装在url上的,很多扩展机制也是基于url进行扩展选择。 

 

我的注解版:

https://github.com/zhaoyb/dubbo

 

posted @ 2020-12-20 00:07  秋夜  阅读(147)  评论(0编辑  收藏  举报