This blog is about learning gRPC
You are welcomed to chat about it and if you like this blog, do not forget to give me a like.
Welcome to see my homepage and contact me: NicholasYe’s Homepage.
0. Before study
- All the information comes from gRPC website, and I strongly recommend you to read it by yourself.
1. Introduction
- An overview
- gRPC is a kind of tool which you can create a server and many client, while the server handle every call of the client and respond them.
- You can easily create your server in Java with client in Go, Python and so on, which is a huge advantage.
- gRPC use protocol buffers to transmit the message.
2. What is protocol buffers?
-
Introduction
- Protocol buffers provide a language-neutral, platform-neutral, extensible mechanism for serializing structured data in a forward-compatible and backward-compatible way.
- It’s like JSON, except it’s smaller and faster, and it generates native language bindings.
-
Workflow:

-
A very simple example
- In
.protodefinition, use Java to write down:message Person { optional string name = 1; optional int32 id = 2; optional string email = 3; } - After compiling this, you will get a
Builderclass:Person john = Person.newBuilder() .setId(1234) .setName("John Doe") .setEmail("jdoe@example.com") .build(); output = new FileOutputStream(args[0]); john.writeTo(output); - Then you can deserialize the data and use the methods protocol buffers creates in other languages, like C++:
Person john; fstream input(argv[1], ios::in | ios::binary); john.ParseFromIstream(&input); int id = john.id(); std::string name = john.name(); std::string email = john.email();
- In
3. Core concept
-
In this section I will show you an simple but complete gPRC service, and explain what they mean:
service HelloService { rpc SayHello (HelloRequest) returns (HelloResponse); } message HelloRequest { string greeting = 1; } message HelloResponse { string reply = 1; }service: Define what your server want to receive and what to reply according to the message.message: Define every message detail information.
-
gPRC let you define four kinds of service method(you can also see the website for more detailed information):
rpc SayHello(HelloRequest) returns (HelloResponse);rpc LotsOfReplies(HelloRequest) returns (stream HelloResponse);rpc LotsOfGreetings(stream HelloRequest) returns (HelloResponse);rpc BidiHello(stream HelloRequest) returns (stream HelloResponse);
4. A guidance of gPRC in python
- See the website by yourself~
Please clearly mark the source of the article in the process of reproducing it! Respect for originality and intellectual property rights, thanks!
这篇博客介绍了gRPC的基本概念和工作流程,包括使用Protocol Buffers进行数据序列化,以及gRPC服务定义和核心概念。通过一个简单的例子展示了如何创建和解析Protocol Buffers消息。此外,还提到了gRPC支持的不同服务方法类型,并提供了一个Python的gRPC入门指南。
4606

被折叠的 条评论
为什么被折叠?



