本质就是相亲模式。
你和对面的妹子之说以能够面对面聊天,是因为你们都通过了中介。
那为啥是对面的那个你不太满意的妹子呢?,那这部分的挑选过程就是中介控制了。
把provider 和 consumer 注册到 注册中心,consumer调用的时候,通过注册中心返回的 alive的producer,远程rpc调用
首先应该参考dubbo官网:http://dubbo.apache.org/zh-cn/docs/user/preface/architecture.html
dubbo本质上是java实现的一个RPC开源框架,使用者在通过dubbo调用远程接口的时候,就像使用本地接口一样
RPC调用流程:
1)服务消费方(client)调用以本地调用方式调用服务;
2)client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体;(java动态代理将服务端接口的服务名、方法名、参数类型、参数值、返回值类型等信息封装好,同时将这些信息进行序列化)
3)client stub找到服务地址,并将消息发送到服务端;(dubbo会有注册中心,client获取服务端的地址从注册中心获取;网络通信框架依赖netty)
4)server stub收到消息后进行解码;(从netty获取客户端传来的字节流后,逆序列化,获取到服务名、方法名、参数类型、参数值、返回值类型;通过反射调用相应的服务实例)
5)server stub根据解码结果调用本地的服务;(获取调用结果后,再通过网络返回给客户端)
6)本地服务执行并将结果返回给server stub;
7)server stub将返回结果打包成消息并发送至消费方;
8)client stub接收到消息,并进行解码;
9)服务消费方得到最终结果。
RPC调用可参考原文:https://blog.csdn.net/chdhust/article/details/51815333
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。