可观测性
【简单】什么是可观测性?它包含哪三大支柱?⭐⭐
🎯 目标等级:L2 | ⏱ 建议用时:5 min | 🏷 标签:可观测性 / 基本概念
💎 关键结论
可观测性就是通过系统的外部输出(指标、日志、链路)来推断系统内部状态的能力,由 Metrics、Logging、Tracing 三大支柱构成。因为微服务架构下单看任何一类数据都只能管中窥豹,三者协同才能定位复杂故障。
⚡记忆卡片
- 口诀:指标发现问题,链路定位范围,日志查明根因
- 关键词:Metrics/Logging/Tracing/TraceID
- 链路:指标告警触发 → TraceID 锁定链路 → 日志关联根因 → 故障闭环
什么是网关
网关的首要职责就是:作为统一的出口,对外提供服务;将外部访问网关地址的流量,根据适当的规则路由到内部集群中正确的服务节点之上。因此,微服务中的网关,也常被称为"服务网关"或"API 网关"。
网关首先应该是个路由器,在满足此前提的基础上,网关还可以根据需要作为流量过滤器来使用,提供某些额外的可选的功能。网关常见的能力如下:
- 动态路由:根据请求路由到对应的服务上去,如果服务不可用还会有重试机制
- 负载均衡:多服务器提供同一种服务,网关会从配置中心拉取各服务注册信息,然后将请求负载均衡风阀到这些服务器进行处理
- 流量控制:限制并发请求的流量,避免内部系统受到冲击
- 安全认证:网关对相关权限验证、脱敏和流量清洗、签名和黑名单功能
- 熔断降级:当服务不可用或者访问量过大,网关可以将请求做降级,将流量打到其他服务器或者做其他处理,提示用户暂时不可用
- 灰度发布:先进行小部分服务器升级,通过网关将少量的服务路由到已升级的服务器用来测试服务是否正常,大部分请求依旧在老版本服务器上处理
- 日志服务:服务访问情况监控和统计报表,请求的吞吐量、并发数、流量监控、性能监控和日常告警等
RabbitMQ 简介
【简单】RabbitMQ 是什么?⭐
🎯 目标等级:L2 | ⏱ 建议用时:5 min | 🏷 标签:RabbitMQ / 基础概念
💎 关键结论
RabbitMQ 是基于 AMQP 协议、用 Erlang 实现的开源消息中间件,由 Broker 通过「交换机 + 绑定 + 队列」完成消息的接收、路由与存储。选它是因为投递可靠(Confirm + 持久化 + 仲裁队列)、路由灵活、延迟低,适合解耦、削峰、异步化等业务消息场景。
简介
【简单】Dubbo 是什么?为什么使用 Dubbo?⭐⭐
🎯 目标等级:L2 | ⏱ 建议用时:5 min | 🏷 标签:Dubbo / 概述
💎 关键结论
Dubbo 是一款高性能、轻量级的开源 Java RPC 框架,核心提供三大能力:面向接口的 RPC、智能容错与负载均衡、服务自动注册与发现。理由:它以接口粒度屏蔽远程调用细节,并提供开箱即用的微服务治理能力。
⚡记忆卡片
口诀:调用靠代理、流量靠均衡、服务靠注册
关键词:RPC/负载均衡/服务发现
链路:接口代理屏蔽调用细节 → 注册中心连接提供者与消费者 → 容错与负载均衡保障高可用
服务注册和发现
【中等】什么是服务注册与发现?Dubbo 如何实现?⭐⭐⭐⭐
🎯 目标等级:L2 | ⏱ 建议用时:12 min | 🏷 标签:服务治理 / 注册发现
💎 关键结论
Dubbo 的服务注册与发现是 URL 驱动的:Provider 启动时把自身地址 URL 上报注册中心,Consumer 订阅地址列表并构建本地 Invoker 缓存,注册中心实时推送变更、Consumer 据此重建列表。本质是维护 Directory(服务目录)的新鲜度——调用永远走本地缓存,注册中心只是控制面。
开篇词 为什么要学习 Kafka?

消息引擎系统 ABC
设计消息引擎的关键点:
- 序列化:CSV、XML、JSON、Protocol Buffer、Thrift。Kafka 默认使用纯二进制字节序列
- 传输模型:同时支持点对点模型和发布/订阅模型

Kafka 简介
【简单】Kafka 是什么?⭐⭐⭐
🎯 目标等级:L2 | ⏱ 建议用时:8 min | 🏷 标签:Kafka / 基本概念
💎 关键结论
一句话:Kafka 是一个开源的分布式事件流平台,核心是「分区」这个有序不可变的日志单元。它快的根本原因是把消息系统做成了追加写的分布式日志,天然适合高吞吐场景。
⚡记忆卡片
- 口诀:平台靠分区,分区是日志,日志追加写,组来摊消费
- 关键词:事件流平台 / Topic / Partition / Offset / 消费者组
- 链路:Producer 发消息 → 按分区追加写入日志 → 副本同步保可靠 → Consumer 组按 Offset 分摊消费
RPC 简介
【简单】什么是 RPC?RPC 有什么用?⭐⭐⭐
🎯 目标等级:L1 | ⏱ 建议用时:5 min | 🏷 标签:分布式通信 / RPC 概念
💎 关键结论
RPC(Remote Procedure Call,远程过程调用)就是让你"像调用本地方法一样调用远程方法",把网络通信的复杂性藏起来。理由:它屏蔽了远程调用与本地调用的差异,开发者只需聚焦业务逻辑本身。
⚡记忆卡片
- 口诀:像调本地一样调远程,通信细节全屏蔽。
- 关键词:远程过程调用/本地化体验/微服务通信基石
- 链路:业务代码调用接口方法 → 框架接管并屏蔽网络细节 → 完成远程调用 → 开发者无感知、聚焦业务
缓存
【简单】什么是缓存?为什么需要缓存?⭐⭐
🎯 目标等级:L2 | ⏱ 建议用时:5 min | 🏷 标签:缓存 / 缓存基础
💎 关键结论
缓存就是数据交换的缓冲区,把频繁访问的数据暂存在更快的存储介质上。本质是空间换时间:牺牲一点实时性,换取更快、更近的访问,命中率是核心度量指标。
⚡记忆卡片
- 口诀:缓冲区存热数据,空间换时间,快近命中高
- 关键词:缓冲区/空间换时间/更快更近/命中率
- 链路:频繁访问 → 数据暂存高速介质 → 就近快速读取 → 命中率提升 → 访问加速