- gPRC 介绍
- gPRC 介绍 - 资料收集整理
- gPRC 介绍 - Protocol Buffer 3
- gPRC文档
- gPRC文档 - gRPC官方文档(中文版)
- gPRC文档 - gRPC动机和设计原则
- gPRC文档 - 源码导航
- 基础 - NameResolver
- NameResolver - URI术语
- NameResolver - 类NameResolver
- NameResolver - 类DnsNameResolver
- NameResolver - 类DirectAddressNameResolver
- NameResolver - NameResolver的用法
- 基础 - Metadata
- Channel层
- Channel设计与代码实现 - 类Channel
- Channel设计与代码实现 - 类ManagedChannel
- 类ManagedChannelImpl - 空闲模式
- 类ManagedChannelImpl - InUseStateAggregator
- 类ManagedChannelImpl - Name Resolver
- 类ManagedChannelImpl - Load Balancer
- 类ManagedChannelImpl - Transport
- 类ManagedChannelImpl - Executor
- 类ManagedChannelImpl - 关闭
- Channel层 - Channel Builder设计与代码实现
- Channel Builder设计与代码实现 - 类ManagedChannelBuilder
- Channel Builder设计与代码实现 - 类AbstractManagedChannelImplBuilder
- Channel Builder设计与代码实现 - 类NettyChannelBuilder
- Channel层 - Channel Provider设计与代码实现
- Channel Provider设计与代码实现 - 类ManagedChannelProvider
- Channel Provider设计与代码实现 - 类NettyChannelProvider
- Channel层 - 类CallOptions
- Stub层 - 类DemoServiceBlockingStub
- Stub层 - 类AbstractStub
- 客户端流程
- 状态 - 类Status
- 状态 - 状态码详细定义
- 状态 - 类StatusException
- 状态 - 异常处理的流程分析
- 实践 - 集成Spring Boot
- 实践 - 文档生成
- 文档生成 - 支持proto3
- 文档生成 - build插件
- 文档生成 - 使用模板定制输出
- 实践 - 代理
- 实践 - 超时
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
gPRC文档 - 源码导航
注:内容翻译自grpc-java首页的 Navigating Around the Source。
从高水平上看,类库有三个不同的层: Stub/桩, Channel/通道 & Transport/传输.
Stub
Stub层暴露给大多数开发者,并提供类型安全的绑定到正在适应(adapting)的数据模型/IDL/接口。gRPC带有一个protocol-buffer编译器的 插件用来从.proto
文件中生成Stub接口。当然,到其他数据模型/IDL的绑定应该是容易添加并欢迎的。
关键接口
Channel
Channel层是传输处理之上的抽象,适合拦截器/装饰器,并比Stub层暴露更多行为给应用。它想让应用框架可以简单的使用这个层来定位横切关注点(address cross-cutting concerns)如日志,监控,认证等。流程控制也在这个层上暴露,容许更多复杂的应用来直接使用它交互。
Common
Client
Server
Transport
Transport层承担在线上放置和获取字节的繁重工作。它的接口被抽象到恰好刚刚够容许插入不同的实现。Transport被建模为Stream
工厂。server stream和client stream之间在接口上的存在差别以整理他们在取消和错误报告上的不同语义。
注意transport层的API被视为gRPC的内部细节,并比在package io.grpc
下的core API有更弱的API保证。
gRPC带有三个Transport实现:
- 基于Netty 的transport是主要的transport实现,基于Netty. 可同时用于客户端和服务器端。
- 基于OkHttp 的transport是轻量级的transport,基于OkHttp. 主要用于Android并只作为客户端。
- inProcess transport 是当服务器和客户端在同一个进程内使用使用。用于测试。
Common
Client
Server
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论