Nacos注册中心
安装Nacos
-
下载安装包 https://nacos.io/
-
解压
-
配置端口
-
启动 startup.cmd -m standalone(windows) startup.sh -m standalone(Mac)
Nacos服务注册和发现
1. 父工程中导入管理依赖
2. 在服务中导入nacos依赖
3. 修改配置文件application.yml
Nacos服务多级存储模型
配置服务的集群:
Nacos NacosRule负载均衡
设置负载均衡的IRule为NacosRule
- 优先选择同集群实例列表
- 本地集群找不到提供者,才去其他集群寻找,并且会提示警告
- 确定了可用例列表后,采用随机负载均衡挑选实例
Nacos服务实例的权重设置
- Nacos控制台可以设置实例的权重值,0~1之间
- 同集群多个实例,权重越高被访问频率越高
- 权重设置为0则完成不会被访问
Nacos环境隔离
- namespace用来做环境隔离
- 每个namespace都有唯一ID
- 不同namespace下的服务不可见
配置namespace
- 在nacos页面创建新的命名空间
- 修改配置文件application.yml的命名空间
Nacos和Eureka对比
nacos原理
设置临时和非临时实例
共同点
- 都支持服务注册和服务拉取
- 都支持服务提供者心跳方式做健康检测
区别
- nacos支持服务端主动检测提供者状态,临时实例采用心跳模式,非临时实例采用主动检测模式
- 临时实例心跳不正常会被剔除,非临时实例则不会被剔除
- nacos支持服务列表变更的消息推送模式,服务列表更新更及时
- nacos集群默认采用AP方式(可用性),当集群中存在非临时实例时,采用CP方式(数据可靠性和一致性);Eureka采用AP方式
Nacos配置管理
Nacos实现配置管理
- nacos的配置列表中新建配置
- 填写配置文件ID,分组,配置文件格式,配置文件内容(热更新的内容)
微服务配置拉取
1. 在application.yml中引入nacos配置的依赖
2. 在服务的resource目录添加一个bootstrap.yml文件,这个文件是引导文件,优先级高于application.yml
配置热更新
- 通过@value注解注入,结合@RefreshScope来刷新
- 通过@Configuration Properties注入,自动刷新
不是所有配置都适合到配置中心,维护起来比较麻烦,建议将一些关键参数,需要运行时调整到参数放到nacos配置中心,一般是自定义配置
多环境配置共享
微服务从nacos读取配置文件
- 服务名- spring.profile.active.yaml环境配置
- 服务名.yaml默认配置,多环境共享
优先级:服务名-环境.yaml > 服务名.yaml > 本地配置
Nacos集群搭建
搭建集群基本步骤
- 搭建数据库,初始化数据库表结构
- 下载nacos安装包
- 配置nacos
进入nacos文件conf目录,修改配置文件cluster.conf.example,重命名为cluster.conf
修改集群IP地址和端口号
修改application.properties文件,添加数据库配置信息
4. 启动nacos集群
5. nginx反向代理
下载nginx安装包
找到conf目录
修改conf/nginx.conf文件配置
启动nginx