Nacos是阿里发布的注册中心及配置中心组件,提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。本文主要介绍Nacos结合Spring Cloud的使用,文中使用到的软件版本:Nacos 1.3.2、Spring Boot 2.2.5.RELEASE、Spring Cloud Hoxton.SR3、Java 1.8.0_191。
1、简介
官网地址为:https://nacos.io/zh-cn/docs/what-is-nacos.html,可以查看详细介绍。
1.1、特性
a、服务发现和服务健康监测
b、动态配置服务
c、动态DNS服务
d、服务及其元数据管理
1.2、架构
2、安装
2.1、单机模式
2.1.1、使用嵌入式数据库
下载nacos的安装包(https://github.com/alibaba/nacos/releases),解压,运行
startup.sh -m standalone
2.1.2、使用mysql
单机模式默认使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况;可以使用mysql来保存数据:
a、创建nacos的数据库,并执行nacos-mysql.sql脚本
b、修改conf/application.properties文件,增加支持mysql数据源配置
spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://localhost:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=admin db.password=Root_123!
再以单机模式启动nacos,nacos所有写嵌入式数据库的数据都写到了mysql
2.2、集群模式
2.2.1、部署架构图
http://ip1:port/openAPI 直连ip模式,机器挂则需要修改ip才可以使用。
http://VIP:port/openAPI 挂载VIP模式,直连vip即可,下面挂server真实ip,可读性不好。
http://nacos.com:port/openAPI 域名 + VIP模式,可读性好,而且换ip方便,推荐模式。
2.2.2、配置集群地址
复制conf/cluster.conf.example为conf/cluster.conf,修改其内容为:
10.49.196.10:8848
10.49.196.11:8848
10.49.196.12:8848
2.2.3、配置数据源
2.2.3.1、使用内置数据源
无需进行任何配置
2.2.3.2、使用外置数据源
修改conf/application.properties文件,增加MySQL配置:
spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://10.49.196.10:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=admin db.password=Root_123!
2.2.4、启动
2.2.4.1、使用内置数据源
./startup.sh -p embedded
2.2.4.2、使用外置数据源
./startup.sh
2.3、控制台
http://localhost:8848/nacos
用户名/密码默认为:nacos/nacos
3、SpringCloud中使用Nacos
3.1、作为注册中心
3.1.1、引入依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.2.3.RELEASE</version> </dependency>
3.1.2、增加配置
spring:
cloud:
nacos:
discovery:
server-addr: 10.49.196.10:8848
如果是集群的话可以用nginx来负载,这边配置代理地址。
3.1.3、启动类增加@EnableDiscoveryClient
启动服务后就可以进行服务的注册和发现,在控制台可以看到已注册的服务:
3.2、作为注册中心
3.2.1、引入依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>2.2.3.RELEASE</version> </dependency>
3.2.2、增加配置
在resources目录下新建bootstrap.yml文件:
spring: cloud: nacos: config: server-addr: 10.49.196.10:8848 prefix: scdemo-server file-extension: yaml #group: DEFAULT_GROUP #namespace: public
3.2.3、在控制台新建配置
scdemo-server内容如下:
3.2.4、启动服务
在服务可以获取到在nacos中定义的配置项。