- Java219
- 数据库114
- 分布式82
- 设计81
- 框架75
- JavaCore65
- Spring64
- 工具53
- 笔记52
- 大数据32
- 分布式通信29
- 设计模式28
- Spring核心24
- 架构23
- 搜索引擎数据库22
- DevOps21
- 关系型数据库21
- 软件20
- KV数据库20
- 网络19
- Redis18
- 算法17
- MQ17
- 分布式协同16
- Elasticsearch16
- 操作系统15
- 列式数据库15
- 分布式理论15
- MySQL15
- 综合14
- 面试13
- 基础特性13
- HBase13
- 编程12
- 文档数据库12
- 中间件11
- Linux11
- IO11
- 并发11
- 其他11
- MongoDB11
- Spring数据10
- Kafka10
- Flink9
- Hive9
- JVM9
- 安全9
- 构建9
- 工作8
- 服务器8
- 编程语言8
- 解决方案8
- 分布式存储8
- SpringWeb8
- 重构7
- 分布式调度7
- 容器7
- 高级特性7
- ZooKeeper7
- Maven7
- 人工智能6
- JavaWeb6
- 网络分层6
- 网络协议6
- 分布式治理6
- 监控诊断6
- Python6
- Nginx6
- Hadoop5
- 缓存5
- 测试5
- Tomcat5
- 微服务5
- Docker5
- Elastic5
- RPC5
- UML4
- 网络技术4
- 数据库综合4
- 术4
- JavaBean4
- 模板引擎4
- ORM4
- IDE4
- SpringIO4
- Spring其他4
- Spring综合4
- Spring集成4
- 软件工程3
- 编程范式3
- 数据库中间件3
- 流量控制3
- Git3
- Kubernetes3
- RocketMQ3
- Spring安全2
- 健康1
- 器1
- 法1
可观测性
【简单】什么是可观测性?它包含哪三大支柱?⭐⭐
可观测性(Observability) 是指通过系统的外部输出(指标、日志、链路)来推断系统内部状态的能力。在云原生和微服务架构下,系统由众多分布式服务组成,传统监控已不足以应对复杂故障定位,可观测性应运而生。
可观测性三大支柱
可观测性由三大支柱构成,三者相互补充、协同定位问题:
| 维度 | Metrics(指标) | Logging(日志) | Tracing(链路追踪) |
|---|---|---|---|
| 核心作用 | 监控告警、趋势分析 | 故障定位、审计 | 请求级故障定位、性能分析 |
| 数据特征 | 数值型、时序、聚合 | 文本、离散事件 | 树形/DAG 结构、有因果关系 |
| 数据量 | 小(聚合后) | 大(每请求多条) | 中(采样后) |
| 成本 | 低 | 高(存储 + 检索) | 中 |
| 典型场景 | "CPU 使用率 90%" | "NullPointerException at line 42" | "请求 A→B→C 共耗时 500ms,B 占 400ms" |
| 代表工具 | Prometheus、Micrometer | ELK、Loki、Fluentd | Jaeger、Zipkin、SkyWalking |
什么是网关
网关的首要职责就是:作为统一的出口,对外提供服务;将外部访问网关地址的流量,根据适当的规则路由到内部集群中正确的服务节点之上。因此,微服务中的网关,也常被称为"服务网关"或"API 网关"。
网关首先应该是个路由器,在满足此前提的基础上,网关还可以根据需要作为流量过滤器来使用,提供某些额外的可选的功能。网关常见的能力如下:
- 动态路由:根据请求路由到对应的服务上去,如果服务不可用还会有重试机制
- 负载均衡:多服务器提供同一种服务,网关会从配置中心拉取各服务注册信息,然后将请求负载均衡风阀到这些服务器进行处理
- 流量控制:限制并发请求的流量,避免内部系统受到冲击
- 安全认证:网关对相关权限验证、脱敏和流量清洗、签名和黑名单功能
- 熔断降级:当服务不可用或者访问量过大,网关可以将请求做降级,将流量打到其他服务器或者做其他处理,提示用户暂时不可用
- 灰度发布:先进行小部分服务器升级,通过网关将少量的服务路由到已升级的服务器用来测试服务是否正常,大部分请求依旧在老版本服务器上处理
- 日志服务:服务访问情况监控和统计报表,请求的吞吐量、并发数、流量监控、性能监控和日常告警等
简介
在分布式系统中,服务之间通过网络进行远程调用,而网络本身的不可靠性、服务节点的故障、依赖资源的瓶颈等因素,都可能导致服务调用失败。如果缺少容错机制,一次局部的故障可能会沿着调用链向上传播,引发请求堆积、资源耗尽,最终演变为整个系统的雪崩。
服务容错的目标是在故障发生时,通过限流、降级、熔断、隔离、重试等手段,控制故障的影响范围,保障系统在部分组件异常的情况下仍能对外提供核心服务,提升系统的弹性和可用性。
链路追踪简介
什么是链路追踪
链路追踪系统广义的概念是:由数据采集、数据处理和数据展示三个相对独立的模块所构成的分布式追踪系统;链路追踪系统狭义的概念是:特指链路追踪的数据采集。譬如 Spring Cloud Sleuth 就属于狭义的链路追踪系统,通常会搭配 Zipkin 作为数据展示,搭配 Elasticsearch 作为数据存储来组合使用;而 Zipkin、Pinpoint、SkyWalking、CAT 都属于广义的链路追踪系统。
简介
当服务消费者与服务提供者之间建立了通信,作为管理者需要通过监控手段来观察服务是否正常,调用是否成功。服务监控是很复杂的,在微服务架构下,一次用户调用会因为服务化拆分后,变成多个不同服务之间的相互调用,这也就需要对拆分后的每个服务都监控起来。
服务监控是分布式系统可观测性的核心组成部分。它通过持续采集、存储、分析和展示系统运行时的各项指标数据,帮助运维和开发人员了解系统的实时状态,及时发现并定位问题,从而保证业务持续稳定运行。一个完善的监控体系通常涵盖基础设施、中间件、应用、业务等多个层级,形成从底向上的全栈监控能力。
在现代云原生架构下,服务规模动辄成百上千,单纯依赖人工巡检已经不可行,必须借助自动化的监控平台来完成故障发现、告警通知、根因分析等工作。监控与链路追踪、日志系统共同构成了系统的可观测性体系,三者相辅相成,是保障分布式系统高可用的基石。