微服务治理-服务发现

一、介绍

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 KVKV 存储 + 配置
EtcdKV 存储

Nacos最常用

四、最佳实践

4.1 配置与代码分离

4.2 配置按环境隔离

4.3 敏感配置加密

4.4 配置修改要审核

4.5 配置更新不能影响业务