微服务治理-服务发现
一、介绍
1.1 什么是配置中心
在单体应用时代,我们通常这样管理配置: .env文件
但是进入微服务以后。
现在:每个服务都有自己的配置
比如REDIS_HOST需要修改,几十个服务的.env都要修改
于是就需要:
配置中心(Configuration Center)
1.2 配置中心解决什么问题?
一句话总结:
统一管理所有配置。
二、原理
2.1 配置中心整体架构
典型架构:
Config Center
(Nacos / Apollo)
▲
│
Read Config│
┌────────┬─────────┼──────────┐
▼ ▼ ▼ ▼
Gateway User Order Payment
服务:启动
读取:配置。
运行:
监听:配置变化。
2.2 配置加载流程
User Service为例
启动
↓
读取配置中心
↓
下载配置
↓
缓存到本地
↓
程序启动
2.3 动态刷新
配置修改时: 配置中心通知各个服务,自动刷新,无需重启
2.4 配置版本管理
如果修改错误:可以恢复上一版本
2.5 环境隔离
比如 开发环境DEV、测试环境TEST、预发布UAT、生产环境PROD 配置分别管理
三、主流配置中心
| 产品 | 特点 | 是否支持动态刷新 |
|---|---|---|
| Nacos | 注册中心 + 配置中心 | ✅ |
| Apollo | 配置中心 | ✅ |
| Consul KV | KV 存储 + 配置 | ✅ |
| Etcd | KV 存储 | ✅ |
Nacos最常用