首页 > 其他分享 >gRpc

gRpc

时间:2024-03-28 10:56:17浏览次数:25  
标签:服务 服务器端 gRpc 通信 gRPC RPC 客户端

一、gRpc是什么

gRPC是一个开源的高性能远程过程调用(RPC)框架,调用远程服务可像调用方法一样简单,适用于多种环境和多种语言。gRPC基于HTTP/2协议标准,并使用Protobuf序列化机制,gRPC基于接口定义语言(IDL)进行定义,允许用户定义服务及其能够被远程调用的方法,gRPC框架支持多种开发语言,gRPC客户端和服务端可以在多种环境中运行和交互。

二、gRpc应用场景

  • 微服务架构:gRPC非常适合用于微服务架构中,可以用于服务之间的通信,提供高性能、类型安全和易于维护的通信机制。它支持多种编程语言,使得不同微服务可以使用不同的编程语言实现。
  • 跨语言通信:gRPC支持多种编程语言,因此可以轻松地在不同的技术栈中进行通信。这对于跨团队协作、不同技术栈的应用程序集成以及构建多语言系统非常有用。
  • 移动应用通信:gRPC的轻量级性能使其成为移动应用与后端服务器之间进行高效通信的理想选择。它可以用于移动应用与云服务或后端API之间的通信,以获取数据或执行操作。
  • 实时数据流:gRPC支持双向流和服务器端流式处理,这使得它非常适合构建实时应用程序,如聊天应用、在线游戏、股票市场数据传输等。
  • 分布式系统通信:gRPC可以用于分布式系统中不同节点之间的通信,包括数据同步、任务分发和集群管理等场景。
  • 容器化环境:由于其轻量级性能和支持多语言的特性,gRPC在容器化环境中非常流行,如Docker和Kubernetes。它可以用于微服务在容器之间的通信以及容器编排中的服务发现和通信。
  • API后端服务:许多大型互联网公司使用gRPC来构建其API后端服务,因为它提供了高性能、可扩展性和易于维护的方式来处理客户端请求。
  • IoT设备通信:gRPC的低资源消耗和高效性能使其成为连接IoT设备和传感器的理想通信协议。它可以用于实时监控、数据采集和设备控制。
    原文链接:https://blog.csdn.net/WuLex/article/details/132888824

三、gRpc的四种模式

gRPC支持四种通信模式,这些模式分别对应不同的数据流方式和服务需求:

  • 简单RPC(Unary RPC)。这是最传统的RPC调用方式,涉及客户端发送一个请求对象到服务器端,然后服务器端返回一个响应结果。在这种模式下,客户端发送单个请求并等待单个响应,适用于如函数调用般同步的请求。
  • 服务器端流RPC(Server-side streaming RPC)。在这种模式下,客户端发送一个请求给服务器端,而服务器端可以随后发送多个响应流回客户端。这适用于服务器端需要主动推送数据到客户端的场景,例如股票实时数据的推送。
  • 客户端流RPC(Client-side streaming RPC)。在这种模式下,客户端发送多个请求对象到服务器端,然后服务器端返回一个单独的响应结果。这适用于客户端需要向服务器端发送大量数据,而服务器端处理后返回单一结果的场景,如物联网设备上传大量数据到服务器。
  • 双向流RPC(Bidirectional streaming RPC)。这种模式结合了上述两种流式RPC的特点,允许客户端和服务器端同时发送数据流。这适用于需要双向数据交换的场景,如实时聊天或游戏。

标签:服务,服务器端,gRpc,通信,gRPC,RPC,客户端
From: https://www.cnblogs.com/lixiang1998/p/18101057

相关文章

  • 谈tcp,http,socket,rpc,grpc
    谈tcp,http,socket,rpc,grpc简介:计算机网络的五(七)层协议:物理层、数据链路层、网络层、传输层、(会话层、表示层)和应用层。tcp:是传输层协议,主要解决数据如何在网络中传输。http:是应用层协议,主要解决如何包装数据(文本信息),是建立在tcp协议之上的应用。tcp协议是以二进制数据流的形......
  • gRPC简单示例
    gRPC概述gRPC是一种跨语言的RPC框架,之所以它能跨语言,是因为它基于protobuf描述对象实体和方法,最后通过protobuf编译器生成指定语言的代码。这样,就能通过一套protobuf声明生成多种语言的相同API,对于实现跨语言的RPC通信非常便利,同时也使用protobuf作为通信的序列化协议。如下通......
  • ProtoBuf-gRPC实践
    目录介绍01.gRPC学习背景1.1为什么要学RPC1.2RPC是什么1.3网络库收益分析1.4学习计划说明1.5学习问题思考02.ProtoBuf的介绍2.1ProtoBuf是什么2.2ProtoBuf和json2.3ProtoBuf问题思考2.4ProtoBuf特点2.5ProtoBuf存储格式2.6ProtoBuf优缺点2.7创建pr......
  • 解决go项目引进etcd/clientv3的一个报错grpc版本过高的两个方法
    在使用etcd做服务注册和发现,编译时提示下列错误:#github.com/coreos/etcd/clientv3/balancer/pickerF:\Go\pkg\mod\github.com\coreos\[email protected]+incompatible\clientv3\balancer\picker\err.go:37:44:undefined:balancer.PickOptionsF:\Go\pkg\mod\github.com\coreos\e......
  • gRPC的负载均衡
    目录一、什么是负载均衡1.1负载均衡软件1.2七层和四层负载二、负载均衡策略2.1轮循2.2加权轮循2.3最少连接数2.4最少连接数慢启动时间2.5加权最少连接2.6基于代理的自适应负载均衡2.7固定权重2.8加权响应2.9源IP哈希三、go-rpc负载均衡演示3.1proto3.2生成go文件3.......
  • ASP.NET Web Api 中 Grpc 的简单使用
    服务端添加Nuget包dotnetaddpackageGrpc.AspNetCore编写Protobuf文件syntax="proto3";optioncsharp_namespace="GrpcGreeter";packagegreet;//Thegreetingservicedefinition.serviceGreeter{//SendsagreetingrpcSayHello(Hell......
  • protobuf和gRPC
    目录一、grpc介绍1.1RPC介绍1.2Protobuf介绍null二、下载生成proto工具三、下载go的依赖包四、快速使用4.1编写proto4.2生成go脚本4.3编写main.go4.4修改proto,加入更多参数4.5重新生成4.6修改代码五、完整的客户端服务端5.1proto文件5.2生成go脚本5.3server.go5.4cl......
  • gRPC的四种通信模式
    目录gRPC的四种通信模式一、RPC(UnaryRPC)二、服务端流RPC三、客户端流RPC四、双向流RPC五、综合案例5.1新建streamdemo.proto5.2执行命令,生成go文件5.3客户端5.4服务端六、总结gRPC的四种通信模式gRPC有四种通信⽅式,分别是:简单RPC(UnaryRPC)、服务端流式RPC(Serverstrea......
  • gRPC进阶
    目录一、grpcmetadata机制1.1proto1.2生成go文件1.3服务端1.4客户端二、grpc拦截器interceptor2.1服务端拦截器grpc.UnaryInterceptor(interceptor)2.2客户端拦截器2.3开源拦截器三、通过metadata+拦截器实现认证3.1自定义(1)服务端(2)客户端(3)proto3.2WithPerRPCCredential......
  • gRPC重试与接口幂等性
    目录一、gRPC超时重试1.1客户端1.2服务端1.3proto二、接口幂等性2.1什么是幂等性2.2什么情况下需要幂等2.3如何保证幂等(1)token机制(2)关键点先删除token,还是后删除token(3)token机制缺点(4)乐观锁机制(5)唯一主键(6)防重表(7)唯一ID(8)唯一ID机制一、gRPC超时重试使用开源的;https://g......