RPC框架
文章平均质量分 87
Seajunnn
hust 软件工程
展开
-
从零实现RPC框架之 7: 基于注解的服务自动注册
从零实现RPC框架原创 2022-09-15 10:24:03 · 706 阅读 · 0 评论 -
从零实现RPC框架之 6: 注册中心模块
1.注册中心的作用如你要给一位以前从未合作过的同事发邮件请求帮助,但你却没有他的邮箱地址。这个时候你会怎么办呢?如果是我,我会选择去看公司的企业“通信录”。对于服务调用方和服务提供方来说,其契约就是接口,相当于“通信录”中的姓名,服务节点就是提供该契约的一个具体实例。服务 IP 集合作为“通信录”中的地址RPC 中服务消费端(Consumer) 需要请求服务提供方(Provider)的接口,必须要知道 Provider 的地址才能请求到。那么,Consumer 要从哪里获取 Provider 的地址原创 2022-05-01 10:44:24 · 817 阅读 · 0 评论 -
从零实现RPC框架之 5.序列化
序列化:序列化以及编解码属于七层网络中的表示层序列化和反序列化的选型却是系统设计或重构一个重要的环节,在分布式、大数据量系统设计里面更为显著。恰当的序列化协议不仅可以提高系统的通用性、强健性、安全性、优化系统性能,而且会让系统更加易于调试、便于扩展典型的序列化和反序列化过程往往需要如下组件:IDL(Interface description language)文件:参与通讯的各方需要对通讯的内容需要做相关的约定(Specifications)。为了建立一个与语言和平台无关的约定,这个约定需要采用原创 2022-05-01 10:35:11 · 474 阅读 · 0 评论 -
从零实现RPC框架之:4协议设计
前言一提到协议,最先想到的可能是 TCP 协议、UDP 协议等等,这些网络传输协议的实现以及应用层的HTTP协议。其实rpc协议和http协议都属于应用层协议可能你会问:“前面你不是说了 HTTP 协议跟 RPC 都属于应用层协议,那有了现成的 HTTP 协议,为啥不直接用,还要为 RPC 设计私有协议呢?”这还要从 RPC 的作用说起,相对于 HTTP(1.1/1.0) 的用处,RPC 更多的是负责应用间的通信,所以性能要求相对更高。但 HTTP 协议的数据包大小相对请求数据本身要大很多,又需要加原创 2022-04-30 15:09:07 · 1428 阅读 · 0 评论 -
从零实现RPC框架1:RPC框架架构设计
从零实现RPC框架1:RPC框架架构设计1.什么是 RPC?RPC 的全称是 Remote Procedure Call,即远程过程调用。简单解读字面上的意思,远程肯定是指要跨机器而非本机,所以需要用到网络编程才能实现,但是不是只要通过网络通信访问到另一台机器的应用程序,就可以称之为 RPC 调用了?显然并不够。我理解的 RPC 是帮助我们屏蔽网络编程细节,实现调用远程方法就跟调用本地(同一个项目中的方法)一样的体验,我们不需要因为这个方法是远程调用就需要编写很多与业务无关的代码。所以我认为,RPC原创 2022-04-11 23:37:10 · 1616 阅读 · 0 评论 -
从零实现RPC框架之3:服务暴露与URL
1.URL的定义一般而言我们说的 URL 指的就是统一资源定位符,在网络上一般指代地址,本质上看其实就是一串包含特殊格式的字符串,标准格式如下:protocol://username:password@host:port/path?key=value&key=valueprotocol:协议,例如 http 协议username/password:用户名/密码host/port:主机/端口path:请求路径parameters:参数键值对URI与URL的区别:URI(Unif原创 2022-04-12 18:08:41 · 1158 阅读 · 0 评论 -
从零实现RPC框架2: 插件化设计 SPI机制
1.什么是SPI?SPI的全称是Service Provider Interface, 直译过来就是"服务提供接口",为了降低耦合,实现在模块装配的时候动态指定具体实现类的一种服务发现机制。动态地为接口寻找服务实现。它的核心来自于ServiceLoader这个类。java SPI应用场景很广泛,在Java底层和一些框架中都很常用,比如java数据驱动加载。Java底层定义加载接口后,由不同的厂商提供驱动加载的实现方式,当我们需要加载不同的数据库的时候,只需要替换数据库对应的驱动加载jar包,就可以进行使原创 2022-04-12 12:08:46 · 1429 阅读 · 1 评论