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

3.3.5 理解中间件

如图3-1所示,Go kit是可组合的。除了强制性的传输、端点和服务之外,Go kit还使用装饰器模式选择性地包装带有横切关注点的服务和端点,例如:

·弹性(例如,使用指数回退的重试)

·身份验证和授权

·日志

·指标收集

·分布式跟踪

·服务发现

·速率限制

这种具有少量抽象(例如传输、端点和服务)的SOLID方法[1]很容易理解和使用,还可以使用统一的中间件机制对其进行扩展。Go kit在为中间件提供足够的内置功能与满足你的需求之间保持平衡。例如,程序在Kubernetes上运行时,Go kit来处理服务发现,在这种情况下,你不需要绕过Go kit。不需要的特性和功能也是可选的。

[1] 请参考3.8节继续阅读中的链接。——译者注