gRPC 模型

IDL gRPC的采用protobuf 作为IDL来描述服务接口和消息结构,如果需要,也可以使用其他替代方案。以下示例引用在gRPC concept gRPC定义了4中可用的服务方法: 代码生成器 gRPC 提供protocol buffer compiler 插件产生Server端和Client端的代码: 序列化协议 gRPC采用Protobuf作为序列化协议,client和server端进行数据交互的时候都回将数据序列化成protobuf格式进行传输,具体参考protobuf Transport协议 基于HTTP2的二进制传输(通过HTTP2 frame传输protobuf序列化后的二进制数据) gRPC 处理框架 Java 实现 https://github.com/grpc/grpc-java gRPC的Java实现是基于Netty,对于Java开发者来说这个框架会非常熟悉,这里不做多介绍。示例代码可以参考https://grpc.io/docs/tutorials/basic/java/ 基本类图 注意下午只画了用户在使用时需要接触的主要类,并没有列出框架实现的核心类,Server段主要通过实现*ImpleBase来实现真是的业务逻辑,而Client通过*Grpc来创建合适的*Stub调用定义的服务接口  Server 启动流程 下图描述了Server在初始化的时候的基本流程,服务端的实现类通过addService方法添加到gRPC的逻辑中提供接口的实现逻辑  Client 启动流程 下图描述了Client在使用的时候后的基本流程,Client通过gRPC生成的*Stub(Proxy)类来调用请求Server调用  基于Netty的实现分析 Golang 实现 更多实现 用到的时候在分析了... Read more