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

3.3.6 理解客户端

在第2章中,我们讨论了微服务的客户端库原则。微服务与另一个微服务进行通信时,理想情况下会使用由接口公开的客户端库。Go kit为编写这类客户端库提供了出色的支持和指导。看起来微服务工作时只是简单地收到一个接口请求,实际上,它完全不知道它正在与另一个服务对话,很有可能两个服务是在同一进程中运行的。这对于测试或服务重构以及将较大的服务拆分为两个单独的服务对象是很有帮助的。

Go kit的客户端端点与服务端点相似,但工作方向相反。服务端点对请求解码,将工作委托给服务,并对响应进行编码,客户端端点对请求进行编码,通过网络调用远程服务,并对响应进行解码。

客户端的Follow()方法如下所示: