一、分布式基础概念与环境准备
(一)核心技术术语
- 基础概念:域名、IP、节点、单体架构、副本
- 分布式关键概念:集群、负载均衡、微服务、远程调用
- 服务治理概念:注册中心、配置中心、服务熔断、链路追踪
(二)开发环境搭建
- 版本适配要求
- SpringBoot 与 SpringCloud Alibaba 版本强绑定,例如:
- SpringBoot 3.2.x-3.3.x → SpringCloud 2023.0.x → SpringCloud Alibaba 2023.0.*
- 完整适配表如下:
- SpringBoot 与 SpringCloud Alibaba 版本强绑定,例如:
SpringBoot 版本 | SpringCloud 版本 | SpringCloud Alibaba 版本 |
---|---|---|
3.4.x+ | 2024.0.x | 未适配 |
3.2.x-3.3.x | 2023.0.x | 2023.0.* |
3.0.2-3.2.x | 2022.0.x | 2022.0.* |
- 推荐生产版本
- SpringBoot:3.3.4
- SpringCloud:2023.0.3
- SpringCloud Alibaba:2023.0.3.2
- 组件版本:Nacos 2.4.3、Sentinel 1.8.8
二、Nacos 核心功能详解
(一)Nacos 基础定位
- 双重角色:既是服务注册中心,又是分布式配置中心
- 核心价值:动态服务发现、配置管理、服务治理
(二)注册中心功能实现
-
安装与启动
- 下载地址:官网提供 2.4.3 版本安装包
- 单机启动命令:
startup.cmd -m standalone
-
服务注册流程
- 引入依赖:
spring-cloud-starter-alibaba-nacos-discovery
- 配置注册中心地址:
spring.cloud.nacos.server-addr=127.0.0.1:8848
- 启动微服务后,可通过
http://localhost:8848/nacos
查看注册状态
- 引入依赖:
-
服务发现机制
- 注解开启:
@EnableDiscoveryClient
- 接口调用:通过
DiscoveryClient
或NacosServiceDiscovery
获取服务实例
- 注解开启:
(三)远程调用基础
-
调用流程
- 订单服务从注册中心获取商品服务地址列表→负载均衡选择地址→发送 HTTP 请求
- 典型场景:下单时远程查询商品信息
-
技术实现
- 负载均衡依赖:
spring-cloud-starter-loadbalancer
- 核心组件:
RestTemplate
+@LoadBalanced
注解实现调用
- 负载均衡依赖:
-
面试关键问题
- 注册中心宕机时远程调用是否可用?
- 已调用过的服务:依赖本地缓存地址可继续调用
- 首次调用的服务:无法获取地址,调用失败
- 注册中心宕机时远程调用是否可用?
(四)配置中心功能
-
基本使用步骤
- 引入依赖:
spring-cloud-starter-alibaba-nacos-config
- 配置 Nacos 地址与数据集:
yaml
spring.cloud.nacos.server-addr=127.0.0.1:8848 spring.config.import=nacos:service-order.properties
- 在 Nacos 控制台创建
service-order.properties
数据集,示例内容:properties
order.timeout=10min order.auto-confirm=7d
- 引入依赖:
-
动态刷新机制
- 方式一:
@Value("${xx}")
+@RefreshScope
注解组合 - 方式二:
@ConfigurationProperties
实现无感自动刷新
- 方式一:
-
配置数据隔离
- 多环境隔离:通过 Namespace 区分 dev/test/prod 环境
- 多服务隔离:利用 Group 区分不同微服务(如 order/group、user/group)
- 配置优先级:Nacos 配置 > 本地 application.properties 配置
(五)典型配置结构示例
plaintext
namespace/dev
├─ group/order
│ ├─ database.properties
│ └─ common.properties
└─ group/user
├─ database.properties
└─ common.properties
四、核心知识总结
- Nacos 双重角色:注册中心解决服务发现问题,配置中心实现分布式配置管理
- 服务注册与发现核心步骤:依赖引入→地址配置→注解开启→API 调用
- 配置中心关键能力:动态刷新、多环境隔离、服务级配置隔离