主题
后端微服务架构(SpringCloud Alibaba 为主)
整理自笔记。SpringCloud Netflix(Eureka/Ribbon/Hystrix 等)已于 2019 年底进入维护模式,新项目以 SpringCloud Alibaba 为主流,由阿里云维护,持续迭代。
一、SpringCloud Alibaba 核心组件
| 组件 | 作用 |
|---|---|
| Nacos | 服务注册发现 + 配置中心(比 Eureka 强:临时实例/异常剔除/主动检测;配置格式校验) |
| OpenFeign | 声明式调用,内置负载均衡、整合 Sentinel 容错 |
| Sentinel | 限流、熔断降级(轻量级,阿里开源) |
| SpringCloud Gateway | API 网关,路由转发、统一入口 |
| SkyWalking / Micrometer Tracing | 链路追踪(Sleuth+ZipKin 已停止维护) |
| RocketMQ | 消息队列(阿里开源,持久化) |
| Seata | 分布式事务(阿里开源) |
| XXL-Job / SchedulerX | 分布式调度(XXL-Job 社区主流,SchedulerX 阿里出品) |
二、网关 Gateway
- HTTP 请求路由到不同微服务,安全控制与监控。
- 集成 Spring Cloud LoadBalancer(原 Ribbon 已弃用);用 Nacos/Eureka 动态路由。
- 断言工厂:按请求时间/头/域名/参数转发。
- Sentinel 限流;Spring Security 安全;Actuator 监控。
三、服务监控
- Spring Boot Actuator + Prometheus + Grafana 组合是当前主流。
- SpringBoot Admin Server(单体监控面板,小项目可用)。
四、注册中心(解耦提供者与消费者)
| 组件 | 特点 |
|---|---|
| Eureka(维护模式) | Netflix 经典方案,30s 心跳,已停止迭代 |
| Nacos(推荐) | 更强:临时实例、异常剔除、主动检测、配置中心一体化 |
| Consul / etcd | 云原生方案,Kubernetes 生态常用 |
五、配置中心
| 组件 | 特点 |
|---|---|
| Spring Cloud Config | 依赖 Git,支持灰度,官方方案 |
| Nacos(推荐) | 配置格式校验,配置+注册中心一体化,国内最受欢迎 |
| Apollo | 携程开源,专业配置中心 |
六、消息队列 MQ(异步 / 解耦 / 消峰 / 持久化)
| 组件 | 特点 |
|---|---|
| RocketMQ | 阿里开源,内存 + 磁盘双份持久化,事务消息强 |
| RabbitMQ | 主流,非 Java 开发,协议级路由灵活 |
| Kafka | 高吞吐分布式发布订阅,日志/大数据场景首选 |
| Pulsar | 云原生多租户,存储计算分离 |
七、分布式事务
- CAP:保证 P+A,舍 C 强一致,保最终一致。
- Seata(阿里开源,推荐):AT/TCC/Saga 多模式。
- 2PC / TCC / Saga 常见模式。
八、分布式调度(定时任务)
| 组件 | 说明 |
|---|---|
| quartz | 老牌调度框架(单机) |
| elastic-job | 基于 Zookeeper 的分布式调度 |
| XXL-Job(推荐) | 轻量分布式任务调度平台,社区活跃 |
| SchedulerX | 阿里出品,功能最强大 |
九、认证中心
| 组件 / 协议 | 说明 |
|---|---|
| OAuth 2.0 / OAuth 2.1 | 授权第三方访问资源,基于 token |
| JWT | 基于 JSON 的开放标准,signature 保护 API |
| Spring Security | 身份验证与授权主流框架 |
| Keycloak / Casdoor | 开源统一认证平台(SSO/OIDC) |
十、缓存 / 检索 / 存储
| 组件 | 说明 |
|---|---|
| Redis | 键值对内存库,快读写、高并发(7.x 支持函数/JSON) |
| MongoDB | 非结构化(图片视频),支持事务/复杂查询 |
| Elasticsearch | 分布式全文检索(本质分布式 NoSQL) |
| MinIO | 主流对象存储(高性能可拓展、容器化、有 UI、开源);fastDfs 已停更 |
| TOS / OSS / COS | 云厂商对象存储 |
十一、链路监控 / 日志
| 组件 | 说明 |
|---|---|
| Micrometer Tracing + Zipkin / Jaeger | 新一代 Spring 官方方案(Sleuth 已停止维护) |
| ELK / EFK | Elasticsearch(检索)+ Logstash/Fluent Bit(收集)+ Kibana(界面) |
| Loki + Grafana | 轻量级日志方案(云原生) |
十二、概念映射
| 关系型数据库 | Elasticsearch |
|---|---|
| 数据库 Database | 索引 Index |
| 表 Table | 类型 Type |
| 行 Row | 文档 Document |
| 列 Columns | 字段 Fields |