文章目录
1 Nacos简介2 安装并运行Nacos3 Nacos作为服务注册中心演示4 Nacos作为服务配置中心演示4.1 Nacos作为配置中心 - 基础配置4.2 Nacos作为配置中心 - 分类配置 5 Nacos集群和持久化配置(重要)5.1 官网说明5.2 Nacos持久化配置解释5.3 Linux版Nacos+MySQL生产环境配置5.3.1 准备5.3.2 Nacos下载Linux版5.3.3 集群配置步骤(重点)5.3.4 测试5.3.5 高可用小总结1 Nacos简介
为什么叫 Nacos
前四个字母分别为Naming和Configuration的前两个字母,最后的s为Service
是什么
一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台Nacos:Dynamic Naming and Configuration ServiceNacos就是注册中心 + 配置中心的组合
Nacos = Eureka + Config + Bus
能干嘛
替代Eureka做服务注册中心替代Config做服务配置中心
去哪下
/alibaba/Nacos
官网文档
https://nacos.io/zh-cn/index.html
https://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-cloud-alibaba.html#_spring_cloud_alibaba_nacos_discovery
各注册中心比较
2 安装并运行Nacos
1.本地Java8 + Maven 环境已经OK
2.先从官网上下载 Nacos
/alibaba/nacos/releases
3.解压安装包,直接运行 bin 目录下的 startup.cmd
4.命令运行成功后直接访问 http://localhost:8848/nacos
默认账户密码都是 nacos
5.结果页面
3 Nacos作为服务注册中心演示
1.官网文档
https://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-cloud-alibaba.html
2.基于Nacos的服务提供者
新建Module cloudalibaba-provider-payment9001
POM
父POM
本模块POM
YML
主启动
业务类
测试
http://localhost:9001/payment/nacos/1
nacos控制台
nacos服务注册中心 + 服务提供者9001都OK了
为了下一章节演示nacos的负载均衡,参照9001新建9002
新建cloudalibaba-provider-payment90029002其它步骤你懂得或者取巧不想新建重复体力劳动,直接拷贝虚拟端口映射
3.基于Nacos的服务消费者
新建Module cloudalibaba-consumer-nacos-order83
POM
为什么nacos支持负载均衡
YML
主启动
业务类
测试
nacos控制台
http://localhost:83/consumer/payment/nacos/13
83访问9001/9002,轮询负载OK
4.服务注册中心对比
各种注册中心对比
Nacos全景图所示
Nacos和CAP
切换
Nacos支持AP和CP模式的切换
4 Nacos作为服务配置中心演示
4.1 Nacos作为配置中心 - 基础配置
1.cloudalibaba-config-nacos-client3377
2.POM
3.YML
why配置两个YML
bootstrap
application
4.主启动
5.业务类
ConfigClientController
@RefreshScope
通过Spring Cloud原生注解@RefreshScope
实现配置自动更新
6.在Nacos中添加配置信息
Nacos中的匹配规则
理论 Nacos中的dataid的组成格式及与SpringBoot配置文件中的匹配规则官网
实操
配置新增
Nacos界面配置对应
设置DataId
历史配置
7.测试
启动前需要在nacos客户端-配置管理-配置管理栏目下有对应的yaml配置文件运行cloud-config-nacos-client3377的主启动类调用接口查看配置信息 http://localhost:3377/config/info
8.自带动态刷新
修改下Nacos中的 yaml配置文件,再次调用查看配置的接口,就会发现配置已经刷新
4.2 Nacos作为配置中心 - 分类配置
1.问题 多环境多项目管理
2.Nacos的图形化管理界面
配置管理
命名空间
3.Namespace + Group + DataId三者关系?为什么这么设计?
4.Case
三种方案加载配置
DataID方案 指定spring.profile.active和配置文件的DataID来使不同环境下读取不同的配置默认空间 + 默认分组 + 新建dev和test两个DataID
新建 dev 配置 DataID
新建 test 配置 DataID
通过spring.profile.active属性就能进行多环境下配置文件的读取
测试
http://localhost:3377/config/info
配置是什么就加载什么 test Group 方案
通过Group实现环境区分
在nacos图形界面控制台上面新建配置文件DataID
bootstrap + application
在config下增加一条group的配置即可。可配置为DEV_GROUP或TEST_GROUP
Namespace方案
新建 dev/test 的Namespace
回到服务管理-服务列表查看
按照域名配置填写
YML
5 Nacos集群和持久化配置(重要)
5.1 官网说明
https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html
官网结构图
上图官网翻译,真实情况
说明
官网说明:https://nacos.io/zh-cn/docs/deployment.html
重点说明:
5.2 Nacos持久化配置解释
Nacos默认自带的是嵌入式数据库 derby
/alibaba/nacos/blob/develop/config/pom.xml
nacos-server-1.1.4\nacos\conf目录下找到sql脚本derby到mysql切换配置步骤
1.nacos-mysql.sql
2.执行脚本nacos-server-1.1.4\nacos\conf目录下找到application.properties
启动Nacos,可以看到是个全新的空记录界面,以前是记录进derby
5.3 Linux版Nacos+MySQL生产环境配置
5.3.1 准备
预计需要,1个Nginx + 3个nacos注册中心 + 1个mysql
5.3.2 Nacos下载Linux版
/alibaba/nacos/releases/tag/1.1.4nacos-server-1.1.4.tar.gz解压后安装5.3.3 集群配置步骤(重点)
sql 脚本在哪里1.Linux服务器上mysql数据库配置
sql语句源文件
nacos-mysql.sql自己Linux机器上的Mysal数据库粘贴
位置2.application.properties配置
内容
梳理出3台nacos机器的不同服务端口号复制出cluster.conf3.Linux服务器上nacos的集群配置 cluster.conf
内容
这个IP不能写127.0.0.1,必须是Linux命令hostname -i
能够识别的ip
/mynacos/nacos/bin目录下有startup.sh在什么地方,修改什么,怎么修改思考4.编辑Nacos的启动脚本startup.sh,使它能够接受不同的启动端口
修改内容
执行方式
修改nginx的配置文件5.Nginx的配置,由它作为负载均衡器
nginx.conf
按照指定启动
6.截止到此处,1个Nginx+3个nacos注册中+1个mysql
测试通过 nginx 访问 nacos
http://192.168.111.144:1111/nacos/#/login
新建一个配置测试
linux服务器的mysql插入一条记录
5.3.4 测试
微服务 cloudalibaba-provider-payment9002启动注册进 nacos 集群
yml
结果