Go Micro
Go Micro 是一个可插拔的 RPC 框架,提供了以下功能:
- 服务发现:程序自动注册到服务发现系统。
- 负载均衡:它提供了客户端负载均衡。
- 同步通信:提供 Request/Response Transport。
- 异步通信:具有内置的发布和订阅功能。
- 消息编码:可以利用 header 中 Content-Type 进行编码和解码
- RPC 客户端/服务器端:利用上述功能并提供构建微服务需要的接口。
Go Micro 架构由三层组成:
- 服务层。
- C/S 模型层:Serrver 用于编写服务的块组成;而 Client 为我们提供接口,向 Server Model 中编写的服务发出请求。
- 第三层有以下类型的插件:
- Broker:在异步通信中为 Message Broker(消息代理)提供接口。
- Codec:用于加密或解密消息。
- Registry:提供服务搜索功能。
- Selector:在 Register 上构建了负载均衡。
- Transport:是服务与服务之间进行同步 Request/Response 的通信接口。
它还提供了一个名为 Sidecar(边车)的功能。Sidecar 能够集成以 Golang 以外的语言编写的服务。它还为我们提供了 gRPC 编码/解码、服务注册和 HTTP 请求处理。