美文网首页
基于gRPC使用的思考

基于gRPC使用的思考

作者: Software泥瓦匠 | 来源:发表于2022-01-29 13:38 被阅读0次

    一、gRPC简介

          gRPC(Remote Produce Call)是google开发的一个高性能、开源的通用的RPC框架。

    二、gRPC特点

        高性能:

            基准测试:

                    在Java到Java的通信中,使用Protobuf能够在25毫秒内处理5万个对象实例,而JSON需要150毫秒,性能是6倍(AuthO的基准

                    gRPC速度快了10倍(go基准测试

                    gRPC速度快10倍(ASP.NET Core WebAPI基准测试

            Protocol buffers

                    gRPC默认使用Protocol buffers作为接口定义语言,protocol buffers是google用于序列化结构化数据的语言中立、平台中立、可扩展,相比XML,它更小、更快、更简单。

                    protocol,json.xml对比

            Http/2:

                 特点:Header压缩、多路复用、使用二进制格式传输(http 1.x文本格式)、服务器主动推送,减少请求的延迟。

                 帧:HTTP/2数据通信的最小单位消息:指HTTP/2中逻辑上的HTTP消息。例如请求和响应等,消息由一个或多个帧组成。

                  流:存在于连接中的一个虚拟通道。流可以承载双向消息,每个流都有一个唯一的整数ID。

                  http1.1与http2对比 :Akamai

        开源:

            gitee:https://gitee.com/mirrors/grpc-framework

            github:https://github.com/grpc/grpc

            C#包:https://github.com/grpc/grpc/tree/master/src/csharp

        通用:

            支持:C,C++,Node.js,Python,Ruby,Objective-C,PHP,C#,go,java

    三、API类型

        一元:rpc GetFeature(Point) returns (Feature){}   特点:传入一个对象,返回一个对象

        客户端流:rpc RecordRoute(stream Point) returns (RouteSummary){}  特点:传入多个对象,返回一个对象

        服务端流:rpc  ListFeatures(Rectangle) returns (stream Feature){}  特点:传入一个对象,返回多个对象

        双向流:rpc RouteChat(stream RouteNote) returns(stream RouteNote){}  特点:传入多个对象,返回多个对象

    四、RPC架构

        RPC工作原理

    五、gRPC使用场景

        1.低延迟,高可用的分布式系统

        2.移动端与云服务端的通讯

        3.使用protobuf,独立语言的协议,支持多语言之间的通讯

        4.可以分层扩展,如:身份验证,负载均衡,日志记录,监控等

    六、Q&A

    1.RPC和http的区别

        最本质区别,RPC主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的,HTTP协议是在传输协议TCP之上的。

    2.gRPC,Http/2,ProtoBuf三者之间有什么区别

        gRPC是一种通信框架,http/2是通信协议,gRPC是基于HTTP/2协议标准而设计。ProtoBuf是由Google开发的一种数据序列化协议(类似xml,json),gRPC使用ProtoBuf来定义服务。

    相关文章

      网友评论

          本文标题:基于gRPC使用的思考

          本文链接:https://www.haomeiwen.com/subject/zzltkrtx.html