grpc for golang简明小记
Contents
[NOTE] Updated May 20, 2025. This article may have outdated content or subject matter.
proto文件是服务端和客户端的共用的服务定义文件,
举个最简单的小例子
|
|
要用新版 protoc 生成 pb文件
|
|
这里-I 是如何你的proto引用了别的proto才需要, 本文这个简单的小例子不需要用
这样这里会生成 2 个 pb 文件,product_info.pb.go 和 product_info_grpc.pb.go
pb.go 相当于 entity, 处理的都是 req resp 数据结构
_grpc.pb.go 相当于 handler, 处理的都是服务调用的
同一个proto生成的文件会完全相同, client/server不必引用相同的生成文件, 完全可以把proto 拷过来, 自己生成自己的文件
2个pb文件怎么用呢
1 client
有了自己的pb文件之后如何接上? 3 steps
- conn = grpc.Dail(address, options…)
- client = pb.NewClient(conn)
- client.CallYourMethod
2 server
有了自己的pb的文件之后如何创建服务? 4 steps
- listener = net.listen(address)
- server = grpc.NewServer()
- pb.RegisterYourServer(server)
- server.Serve(listener)
Author [Lin Chen]
LastMod 2025-05-20 (3c1783f)