构建分布式服务:服务发现与数据复制
1. 系统可观测性基础
在深入探讨服务发现之前,先了解系统可观测性是很有必要的。可观测性是指通过系统的外部输出来理解其内部行为和状态的能力。为了实现系统的可观测性,我们主要使用三种遥测数据:指标(Metrics)、结构化日志(Structured Logs)和跟踪(Traces)。
1.1 指标(Metrics)
指标用于随时间测量数值数据,例如请求失败的数量或每个请求所花费的时间。指标有助于定义服务级别指标(SLI)、目标(SLO)和协议(SLA),可以用来报告系统的健康状况、触发内部警报,并在仪表板上进行图形化展示。
指标主要分为以下三种类型:
- 计数器(Counters) :跟踪事件发生的次数,如失败的请求数量或处理的字节数。通常会用计数器来计算速率,即事件在某个时间间隔内发生的次数。
- 直方图(Histograms) :展示数据的分布情况,主要用于测量请求持续时间和大小的百分位数。
- 仪表盘(Gauges) :跟踪某个事物的当前值,可以完全替换该值,适用于饱和度类型的指标,如主机的磁盘使用率百分比。
此外,Google提出了四个重要的黄金信号来衡量系统:
| 黄金信号 | 描述 | 应对措施 |
| ---- | ---- | ---- |
| 延迟(Latency) | 服务处理请求所需的时间 | 当延迟飙升时,可垂直扩展系统(更换内存、CPU或IOPS更高的实例)或水平扩展(向负载均衡器添加更多实例) |
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



