一、dubbo的执行过程如下:
1、当启动服务提供者provider的时候,它就会将信息注册到注册中心里面去。
2、Consumer在启动的时候也会将自己的消费信息注册到注册中心上去。
3、Consumer会订阅Provider在注册中心生成的节点。如果和注册中心能够ping通的,代表是可用的。当注册中心的临时节点断开的话,Consumer不会得到通知,再次启动的时候,又会得到了通知,Consumer会订阅节点的删除和新增的事件。
4、消费者是直接调用服务者提供的信息,invoke做的事情就是下面的事情:就是Rpc的Client端将数据封装到rpc的server端进行解析,然后调用接口对应的实现类,最后把结果放入到流当中,从而在客户端做一个反序列化,返回结果就行了。如果加一个容器的话,是看不到监听的过程。这就是dubbo和rpc实现的原理。而在xml中注册的服务,就是暴漏的服务接口,发布服务,dubbo内部肯定有类似的操作,会把整个暴漏服务的列表,统统的存到一个集合当中去,如果多个相同的服务列表,它下面的子服务一定会是一个数组,因为dubbo里面提供了一个负载均衡。
5、服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
Dubbo 架构具有以下几个特点,分别是连通性、健壮性、伸缩性、以及向未来架构的升级性。
二、简易版的RPC框架
如果想要代码的请加微信A1469104446。