Dubbo 源码分析 ---【2】RPC 实现原理

本贴最后更新于 2209 天前,其中的信息可能已经东海扬尘

RPC 原理浅析

实现简单 RPC 的基础模块:

  1. 处理网络连接通讯的模块:负责连接建立、管理和消息的传输。
  2. 编解码的模块:将网络通讯传输的字节码反序列化为使用的对象,将对象序列化为字节码
  3. 服务端:暴露要开放的服务接口
  4. 客户端:调用服务接口的一个代理实现,这个代理实现负责收集数据、编码并传输给服务器然后等待结果返回

简单实现

Dubbo 作者梁飞的简单实现 RPC 框架几行代码就够了]

框架代码

定义服务接口
实现服务
暴露服务
引用服务
总结
  1. 使用阻塞的 socket IO 流来进行 server 和 client 的通信
  2. 端对端的,用端口号来直接进行通信
  3. 参数的序列化也是使用的最简单的 objectStream
  4. 方法的远程调用使用的是 jdk 的动态代理
  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1063 引用 • 3453 回帖 • 203 关注
  • Dubbo

    Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

    60 引用 • 82 回帖 • 597 关注
  • RPC
    16 引用 • 22 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • EvilCodes

    终于找到点有价值的东西了