1.写 proto文件,定义接口和服务
2.实现 接口,注册 handle
3.调用服务:直接用rpc 客户端调用,或者用 api http web等调用
api http web 等服务可以对客户端请求做转发,将请求转向到 srv
在传统的应用中,所有的功能都是存在于单一的代码库(Monotholic Code Base)中。在表面上看,代码库中的代码可以有几种聚合方式。可能会按照其类型分割,比如controllers, entity, factories,也有可能按照其功能拆分成几个包,比如auth, articles等等。但无论如何,整个应用是建立在一个单一代码库上的。
微服务是对于上述第二种聚合方式的拓展。我们依旧将应用按照其功能拆分成几个包,但不同的是,这些功能包现在都是一个可独立运行的代码库。
何为protobuf/gRPC
由于每个微服务对应一个独立运行的代码库,一个很自然的问题就是如何在这些微服务之间通信。gRPC使用protobuf来描述数据格式。使用Protobuf,你可以清晰的定义一个微服务的接口。gRPC支持全新的HTTP 2协议,正好可以使用二进制数据。gRPC甚至可以建立双向的流数据。HTTP 2是gRPC的基础
message
由protobuf处理,而service
则是由protobuf的grpc插件处理。这个grpc插件使我们定义的service
能使用message
protoc自动生成的,它将proto文件中的service
转化成了需要我们在Golang代码中需要编写的interface
来源:https://www.cnblogs.com/winyh/p/11462846.html