开发者社区> 问答> 正文

dubbo的原理?

dubbo的原理?

展开
收起
李博 bluemind 2019-03-06 17:41:56 4139 0
4 条回答
写回答
取消 提交回答
  • 本质就是相亲模式。
    你和对面的妹子之说以能够面对面聊天,是因为你们都通过了中介。
    那为啥是对面的那个你不太满意的妹子呢?,那这部分的挑选过程就是中介控制了。

    2019-07-17 23:30:18
    赞同 展开评论 打赏
  • 把provider 和 consumer 注册到 注册中心,consumer调用的时候,通过注册中心返回的 alive的producer,远程rpc调用

    2019-07-17 23:30:17
    赞同 展开评论 打赏
  • 首先应该参考dubbo官网:http://dubbo.apache.org/zh-cn/docs/user/preface/architecture.html

    dubbo本质上是java实现的一个RPC开源框架,使用者在通过dubbo调用远程接口的时候,就像使用本地接口一样
    rpc

    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

    2019-07-17 23:30:17
    赞同 展开评论 打赏
  • 远程rpc服务调用
    通过高性能的 RPC 实现服务的输出和输入功能

    2019-07-17 23:30:17
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Dubbo开源现状与2.7规划 立即下载
Dubbo分布式服务治理实战 立即下载
《Dubbo 3.0 前瞻》 立即下载