NACOS
1. NACOS注册中心
1.1 启动
windows启动
进入项目bin文件夹,使用cmd命令窗口启动。
startup.cmd -m standalone
-m模式的意思,standalone为单机启动
1.2 配置
nacos用于springcloud中,pom文件中引入
# 配置信息介绍
spring.boot.nacos.server-addr: # nacos服务地址
spring.boot.nacos.discovery.cluster-name: # 集群名称
spring.boot.nacos.discovery.namespace # 命名空间 用于隔离
spring.boot.nacos.discovery.ephemeral # 设置是否是临时实例,默认是true
1.3 细节分析
1.服务消费者向nacos注册中心
定时拉取服务pull,服务提供者向nacos注册中心
注册服务信息。
2.对于服务提供者临时实例默认为临时实例
,采用💓心跳检测💓和eureka一样;对于非临时实例不做心跳检测,注册中心会主动向服务提供者进行询问。相对于eureka的区别就是eureka都是临时实例没有非临时实例。
nacos与eureka区别
共同点:都支持服务注册和服务拉取;都支持服务提供者心跳方式做健康检测
不同点:
- nacos支持服务端主动检测服务提供者:临时实例采用心跳模式,非临时实例采用注册检测模式
- 临时实例心跳不正常会被剔除,非临时实例则不会被剔除
- nacos支持服务列表变更的信息图送模式,服务列表及时更新
- nacos集群模式默认采用AP方式,当集群中存在非临时实例时采用CP模式,eureka只有AP模式。
2. Nacos配置管理
2.1 热部署使用
- 配置自动刷新注解在类上使用@RefreshScope
- 向属性注入配置信息使用注解@value(${xxx.xxx})
- 向属性注入还可以使用在类上添加@ConfigurationProperties(prefix = “XXX”),XXX为配置文件中前缀,属性名称与配置文件结尾名称一样即可注入配置信息属性,还要将此类注入bean使用@Component,此方法也会实现热更新。
2.2 多环境配置
优先级:服务名-active.yml > 服务名.yml > 本地配置
2.3 nacos集群搭建步骤
- 搭建数据库,初始化数据库表结构
- 下载nocos安装包
- 配置nacos
- 将conf文件夹下的
cluster.conf.example
的后缀名.example
删除变成cluster.conf
在cluster.conf
文件中添加各个nacos的服务地址。 - 修改appliaction.properties的信息,
spring.datasource.platform
配置数据源类型;db.num
配置数据库数量;db.url.index
db.name.index
db.password.index
配置各个数据库的链接信息;server.port
配置nacos端口号
- 将conf文件夹下的
- 启动nacos集群
- nginx反向代理
# 修改conf/nginx.conf文件,配置如下
upstream nacos-cluster{
server xxx.xxx.xxx.xxx:xxx;
server xxx.xxx.xxx.xxx:xxx;
}
server{
listen 80;
server_name localhost;
//访问/nacos路径时,代理到所配置的nacos-cluster服务中
location /nacos {
proxy_pass http://nacos-cluster;
}
}