Spring Cloud Alibaba Nacos学习笔记
Nacos提供服务注册与发现,也是配置中心。
一、环境准备
-
官网下载nacos;
点进去后,找到最下面
-
解压后进入bin目录;
-
启动nacos(默认使用外置数据源集群启动)
sh startup.sh
单机启动nacos
sh startup.sh -m standalone
集群模式启动(使用内置数据源)
sh startup.sh -p embedded
-
web页面
可以通过查看启动日志得到web页面地址。linux启动日志文件在nacos/logs/start.out
注:远程访问linux时需要开放端口或关闭防火墙 -
登录web页面http://192.168.10.128:8848/nacos/index.html,默认账号密码都是nacos
二、注册中心
- 引入依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
- 配置文件
server:
port: 80
spring:
application:
name: service-consumer
cloud:
nacos:
discovery:
server-addr: 192.168.10.128:8848
- 启动类添加注解开启nacos
@EnableDiscoveryClient
- 查看
三、配置中心
1、基础配置
- 引入依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
- 配置文件bootstrap添加配置
spring:
cloud:
nacos:
config:
server-addr: 192.168.10.128:8848
file-extension: yaml # 指定配置文件格式
- 启动类添加注解开启nacos
@EnableDiscoveryClient
- 在nacos创建配置文件service-consumer.yaml(服务名.文件格式)
- 如果在nacos创建的配置文件不是以服务名为前缀,则需要特别配置指明
spring:
cloud:
nacos:
config:
prefix: nacos-config # 配置文件名称
注:文件格式不能写yml
2、动态刷新
在使用配置文件属性的类上加上注解
@RefreshScope
只需要加上注解,不用刷新服务。
3、Data ID
可以通过配置Data ID达到切换环境的效果。
只需要修改spring.profiles.active的配置。
-
在nacos创建配置文件service-consumer-dev.yaml(服务名-环境.文件格式);
-
在项目配置文件添加环境配置
spring:
profiles:
active: dev
4、group
可以通过配置group达到切换环境的效果。
可对配置文件进行分组,默认使用的是 DEFAULT_GROUP,不同组可以存在Data Id相同的文件。自定义分组后需要在bootrap配置文件添加配置
spring:
cloud:
nacos:
config:
group: DEVELOP_GROUP
当不同环境为不同的分组时,可以通过切换group配置,来达到切换环境的作用。
5、namespace
用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。
所以,不同命名空间之间的服务不能相互效用。
Namespace 默认public
- 创建
在nacos创建
id不填会自动根据UUID生成
2.在bootstrap文件中配置
spring:
cloud:
nacos:
config:
namespace: `b3404bc0-d7dc-4855-b519-570ed34b62d7
6、关闭配置中心
默认开启,可配置关闭
spring:
cloud:
nacos:
config:
enabled: false
四、持久化
nacos内置数据库为嵌入式数据库Derby,可切换为外置数据库mysql(目前只支持mysql)。
- 安装数据库MySQL,版本要求:5.6.5+;
- 创建并切换数据库:
CREATE DATABASE IF NOT EXISTS nacos_config;
use nacos_config;
- 执行数据库初始化脚本:/nacos/conf/nacos-mysql.sql;
source nacos-mysql.sql;
-
修改配置文件:/nacos/conf/application.properties,配置数据源信息
去掉注释并修改为自己数据库的IP以及用户名密码等信息。 -
重启nacos。
五、集群
- 环境准备
jdk1.8+、maven3.2.x+ - 配置集群配置文件
修改或添加/nacos/conf/cluster.conf,添加nacos节点的IP和port;
IP通过 hostname -i 命令获取 - 切换数据源为mysql
- 启动服务器