Kubernetes微服务实战
上QQ阅读APP看书,第一时间看更新

3.3.2 理解传输

微服务最大的问题之一是它们通过网络与彼此和客户端进行交互,也就是说,这至少要比在同一进程中调用方法复杂一个数量级。Go kit通过传输的概念为微服务的网络方面提供了明确的支持。

Go kit传输层封装了所有复杂性,并与其他Go kit结构体(例如请求、响应和端点)集成。目前支持以下传输方式:

·HTTP

·gRPC

·Thrift

·net/rpc

在GitHub上还有其他几种传输方式,包括用于消息队列和发布/订阅的AMQP和NATS[1]传输方式。Go kit传输层有一个很酷的地方是,你可以通过多个传输层公开相同的服务,而无须更改代码。

[1] 请参考https://nats.io/。——译者注