上QQ阅读APP看书,第一时间看更新
2.11 跨服务故障排除
由于系统的大多数功能都涉及多个微服务之间的交互,因此能够跟踪所有这些微服务和各种数据存储中的请求很重要。实现这个需求的最佳方法之一是分布式跟踪,你可以标记每个请求并从头到尾对其进行跟踪。
调试分布式系统和基于微服务的系统需要大量的专业知识。可以从以下方面考虑单个请求在系统中的路径:
·处理请求的微服务可能使用不同的编程语言。
·微服务可能使用不同的传输协议来公开API。
·请求可能是异步工作流的一部分,该工作流涉及在队列中等待或定期处理。
·请求的持久化状态可能分布在由不同微服务控制的许多独立数据存储中。
当你需要调试系统中整个微服务群的问题时,每个微服务的自治性就会成为一个障碍。你必须建立显式支持,通过聚合来自多个微服务的内部信息来获得系统级的可见性。