grpc双向通信,grpc 异步调用

  grpc双向通信,grpc 异步调用

  00-1010使用gRPC进行微服务内部通信。gRPC是什么?服务如何使用gRPC相互通信?gRPC为什么高效?何时使用gRPC?总结结论

  

目录

gRPC是Google针对远程服务调用的开源框架,具有复用和双向流通信的特点。

 

  大家好。在本文中,我们将介绍为什么要使用gRPC而不是RESTful或JSON来开发微服务内部的通信接口。

  

使用gRPC做微服务的内部通信

gRPC是一个高性能、开源和通用的RPC框架。简单来说,它可以帮助我们在服务器和客户端之间建立一个透明的通信系统。谷歌开发了GRPC,并将其开源。通过它,客户端消费者服务可以调用另一台主机上的服务器端方法,就像调用本地方法一样。

 

  gRPC本质上仍然沿用了常规的远程过程调用(RPC)技术,但在实现中使用了HTTP2.0、协议缓冲区等更现代的技术解决方案,从而保证了服务器和客户端的互操作性,最大程度地提高了性能。

  00-1010当客户端向服务器发出请求时,客户端的gRPC类库使用协议缓冲区并封装远程过程调用(RPC),通过HTTP2发送给服务器。服务器将其解包,并使用协议缓冲区调用相应的程序。响应数据的过程类似于发送请求的过程,只不过一个是从客户端到服务器,另一个是从服务器到客户端。

  从开发的角度来说,在服务器端和客户端使用gRPC最大的好处就是你的服务器端代码和客户端代码不需要担心会影响你对JSON或者其他类似文本格式消息的解析。GRPC接收二进制格式,但将其反序列化为一个对象。同样,我们可以通过IDL定义服务接口,这是一个非常强大的功能,可以帮助我们处理多个微服务之间的互操作性。

  00-1010它基于HTTP2,支持传统的请求-响应模型和双向流模型。可以将JSON数据转换为协议缓冲区多路复用的双向流模型。网络传输的是二进制数据,比JSON等文本数据要轻。多语言支持

  00-1010最初,几乎所有的微服务都是通过JSON数据接口相互通信的。一个服务可能调用一个空服务或者多个服务,被调用的服务也可能调用其他服务。如果其中任何一个服务运行缓慢,都会影响整个系统的运行速度,因为RESTful(JSON) API不支持HTTP2的复用和双向流模型。传统的RESTful接口使用JSON、XML或其他格式作为数据载体,使得服务运行缓慢,占用内存量大,传输过程没有压缩。

  GRPC解决了所有这些问题,但是只用于微服务之间的通信,系统对外的服务接口仍然使用HTTP-JSON接口。这确保了对外部用户的技术堆栈开发没有影响。

  00-1010与传统的REST API相比,用gRPC创建的API可以给你的应用带来不可思议的性能提升。

  以上是使用gRPC微服务进行内部通信优化的细节。更多gRPC微服务内部沟通信息,请关注风行IT其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: