
106
|
第
11
章
•
延迟时间激增。从接入层开始;对服务节点进行分组;计算平均、
90%
和
99%
的延
迟。请注意,如果发现独立部署的写入服务节点突然变慢了,则按照数据库的服务
主机进行分组,会发现慢查询分布在个别数据库的主实例上。对于这些主实例,只
是在一些特定数据库实例或特定机房的实例中出现问题。所以可以断定,这不是代
码的问题,而是基础设施的问题。
11.4 微服务时代的调试
从这个角度来看,关于微服务的兴起和可观测性的兴起如此紧密地联系在一起的原
因,就变得显而易见了。过去,软件系统的组件较少,所以比较容易判断哪里出现了问
题。工程师可以通过只使用少数的几个指标就对所有可能出现的问题进行观察。然后,他
们可以简单地打开调试器或者
IDE
,搞清楚代码的逻辑。但是,一旦单体架构被分解成
许多分布式的微服务,调试器的方法就不是那么有效了,因为这种方法不能跨网络进行
调试。
作为历史的旁白,在“可观测性”这个词适配生产软件系统可以自观测之前,
“微服务链路追踪”这个说法是描述这种理解系统内幕新方式的一种尝试。
一旦服务请求开始跨网络的调用,各种额外的运维、架构、基础设施和其他各种复杂度
就会与各种业务上的逻辑问题交织在一起。
在单体架构中,如果在某个函数发布之后系统立刻变慢,那么可以用调试器来快速发
现。但现在,这种问题可能要采用多种方式才能发现。你可能会注意到某个特定的服务
越来越慢,或者一组互相依赖的服务越来越慢,或者在业务高峰期,你会发现有超时的
现象
—
或者唯一的表现可能是用户的抱怨。总之,防不胜防。
不管服务缓慢是如何表现出来的,根据你的监控工具 ...