
rpc
weixin_42073629
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
gRPC 服务调用原理
1. 常用的服务调用方式无论是 RPC 框架,还是当前比较流行的微服务框架,通常都会提供多种服务调用方式,以满足不同业务场景的需求,比较常用的服务调用方式如下:同步服务调用:最常用的服务调用方式,开发比较简单,比较符合编程人员的习惯,代码相对容易维护些; 并行服务调用:对于无上下文依赖的多个服务,可以一次并行发起多个调用,这样可以有效降低服务调用的时延; 异步服务调用:客户端发起服务调用之后,不同步等待响应,而是注册监听器或者回调函数,待接收到响应之后发起异步回调,驱动业务流程继续执行,比较常原创 2020-11-04 22:38:20 · 1948 阅读 · 0 评论 -
gRPC 线程模型分析
1. RPC 线程模型1.1 BIO 线程模型在 JDK 1.4 推出 Java NIO 之前,基于 Java 的所有 Socket 通信都采用了同步阻塞模式(BIO),这种一请求一应答的通信模型简化了上层的应用开发,但是在性能和可靠性方面却存在着巨大的瓶颈。因此,在很长一段时间里,大型的应用服务器都采用 C 或者 C++ 语言开发,因为它们可以直接使用操作系统提供的异步 I/O 或者 AIO 能力。当并发访问量增大、响应时间延迟增大之后,采用 Java BIO 开发的服务端软件只有通过硬件原创 2020-11-04 22:25:04 · 1924 阅读 · 0 评论 -
gRPC 客户端创建和调用原理
1. gRPC 客户端创建流程1.1 背景gRPC 是在 HTTP/2 之上实现的 RPC 框架,HTTP/2 是第 7 层(应用层)协议,它运行在 TCP(第 4 层 - 传输层)协议之上,相比于传统的 REST/JSON 机制有诸多的优点:基于 HTTP/2 之上的二进制协议(Protobuf 序列化机制); 一个连接上可以多路复用,并发处理多个请求和响应; 多种语言的类库实现; 服务定义文件和自动代码生成(.proto 文件和 Protobuf 编译工具)。此外,gRPC 还原创 2020-11-04 02:02:56 · 1374 阅读 · 0 评论 -
gRPC 服务端创建和调用原理
1. RPC 入门1.1 RPC 框架原理RPC 框架的目标就是让远程服务调用更加简单、透明,RPC 框架负责屏蔽底层的传输方式(TCP 或者 UDP)、序列化方式(XML/Json/ 二进制)和通信细节。服务调用者可以像调用本地接口一样调用远程的服务提供者,而不需要关心底层通信细节和调用过程。RPC 框架的调用原理图如下所示:1.2 业界主流的 RPC 框架业界主流的 RPC 框架整体上分为三类:支持多语言的 RPC 框架,比较成熟的有 Google 的 gRPC、Apach原创 2020-11-04 01:47:32 · 1041 阅读 · 0 评论 -
gRPC :为什么是protobuf
背景谈到RPC,就避免不了序列化的话题。gRPC默认的序列化方式是protobuf,原因很简单,因为两者都是google发明的,哈哈。在当初Google开源protobuf时,很多人就期待是否能把RPC的实现也一起开源出来。没想到最终出来的是gRPC,终于补全了这一块。跨语言的序列化方案事实上的跨语言序列化方案只有三个: protobuf, thrift, json。json体积太大,并且缺少类型信息,实际上只用在RESTful接口上,并没有看到RPC框架会默认选json做序列化的。原创 2020-11-04 01:38:27 · 359 阅读 · 0 评论 -
RPC 框架原理是?gRPC 是什么?gRPC设计原则
1. RPC 入门1.1 RPC 框架原理RPC 框架的目标就是让远程服务调用更加简单、透明,RPC 框架负责屏蔽底层的传输方式(TCP 或者 UDP)、序列化方式(XML/Json/ 二进制)和通信细节。服务调用者可以像调用本地接口一样调用远程的服务提供者,而不需要关心底层通信细节和调用过程。RPC 框架的调用原理图如下所示:整理成序列图后的效果是:RPC 框架--时序图1.2 业界主流的 RPC 框架业界主流的 RPC 框架整体上分为三类:支持多语言的 RP.原创 2020-11-04 01:35:04 · 459 阅读 · 0 评论 -
分布式RPC框架dubbo、motan、rpcx、gRPC、thrift简介与性能比较
DubboDubbo 是阿里巴巴公司开源的一个Java高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。曾有一段时间放弃维护,不过当前已经阿里已经重启对Dubbo的维护,并发布了多个更新版本。MotanMotan是新浪微博开源的一个Java 框架。它诞生的比较晚,起于2013年,2016年5月开源。Motan 在微博平台中已经广泛应用,每天为数百个服务完成近千亿次的调用。rpcxrpcx是Go语言生态圈的Dubbo, 比Du原创 2020-06-19 09:14:27 · 5766 阅读 · 1 评论 -
RPC技术和框架理解
RPC(Remote Procedure Call):远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想。RPC 是一种技术思想而非一种规范或协议,常见 RPC 技术和框架有:应用级的服务框架:阿里的 Dubbo/Dubbox、Google gRPC、Spring Boot/Spring Cloud。 远程通信协议:RMI、Socket、SOAP(H...转载 2020-02-29 03:54:17 · 310 阅读 · 0 评论