Dubbo是阿里巴巴出品的一款RPC框架,类似的框架有谷歌的gRPC
如果是我自己设计Dubbo,会有如下功能:
1、比较快的序列化速度,使用Netty网络框架
2、服务端与注册中心长连接,当注册中心动态感知服务端宕机后,会推送消息给客户端。
3、消费端与注册中心长连接,当2发生时,注册中心能及时推送信息。
4、消费端可选择的服务端列表是动态变化的,但是不依赖与注册中心,但消费端与注册中心失去联系后,依然可以使用缓存的服务端列表与一个服务端进行远程过程调用。
5、消费端进行负载均衡策略选取服务端进行调用。
6、服务端与客户端是长连接,可以减少建立网络通道的开销。
7、服务端全部宕机后,客户端如果与注册中心有联系,会及时收到信息;如果没有联系,会使用缓存的服务端列表进行负载均衡策略调用,发现连接不了服务端会进行无限重连,因为调用过程会有超时策略,所以就算客户端在不断尝试连接消费端,客户端也会因为超时策略返回错误提示,让用户再次尝试,而客户端当缓存的服务端列表有多个服务端时,如果其中一个失去连接,会自动连接其他的服务端,轮询尝试。