深入了解:gRPC

gRPC-Go 是自然执行 Go 语言中 gRPC 规范,具有丰富的功能和灵活的 API。要充分利用 gRPC-Go 的强大功能并能够调试问题,人们需要了解 gRPC-Go 的设计方式、它提供的各种支持以及它提供的自定义的灵活性。本次演示将深入探讨 gRPC-Go 的架构,主要是表面 (gRPC) 层、传输层、分析组件和平衡器组件。本次会议还将简要介绍关键 gRPC 功能,例如二进制日志、channelz(运行时环境调试)、服务配置和全程的 rpc 重试。
展开查看详情

1.

2.李雨璇

3. RPC framework Multi-Language Pluggable Multi-Platform Feature-rich

4.Java C++ Go Python ... ?

5. Microservices: in data centres Client Server communication/Internal APIs Streaming telemetry from network devices Mobile Apps

6.● C++, Python, Application Layer Ruby, C#, Obj-C, ... ● grpc-go grpc-java Framework Layer ● grpc-c-core Transport Layer

7.● C++, Python, Application Layer Ruby, C#, Obj-C, ... ● grpc-go grpc-java Framework Layer ● grpc-c-core Transport Layer This talk is about grpc-go

8. Alpha: Beta: GA: Join CNCF Now OpenSource Stable APIS Production ready 6732 grpc-go stars on Github 2835 1963 990 3 Feb Sep Aug Mar Nov 2015 2015 2016 2017 2018

9.

10.Client Server Client Head er Client Mess age Half Close er Server Head a ge Server Mess r Server Traile

11.Create a Channel to transmit the RPC

12. 1 6 grpc 2 5 3 4 resolver balancer

13.

14. Client Server grpc grpc 1 4 5 2 6 balancer 3 listener transport 4 transport

15.Create a RPC call on the Channel

16. 1 8 RPC grpc.ClientStream generate code transport.Stream 7 2 grpc 5 4 picker 3 transport 1 6 balancer

17. 5 generated code 4 grpc 3 2 transport 1 1 ... transport n transport

18.generated code generated code grpc grpc transport transport

19.● ○ ● ○ Binary Logging ○ Channelz ○ ○ ○ ○ Service Config

20. 2 3 1 4 5 load balancing Policy timeout max request message size (bytes) max response message size (bytes) retry configuration

21. Client Server Client Head er Client Mess age ● Half Close ... ● Cancel ● er Server Head ... age Server Mess iler Server Tra

22.● ● ● ●

23. Q&A http://http2.golang.o rg/gophertiles Twitter: @grpcio HTTP/1.1 HTTP/2 Site: http://grpc.io Group: grpc-io@googlegroups.com Repo: github.com/grpc

24.