本篇文章为系列文章,未读第一集的同学请猛戳这里:微服务系列之Nacos注册中心(一)
本篇文章讲解 Nacos 注册中心集群环境搭建。
Nacos 集群环境搭建
集群模式跟我们平时进行扩容是一样的,可以通过 Nginx 转发到多个节点,如下图:
![403c08e8822f66b589529443b70f6dd9.png](https://i-blog.csdnimg.cn/blog_migrate/c955b5d9ca2e5ae0c4f57b0aa4d9275e.jpeg)
如果为了方便省事,可以使用直连 ip 模式,配置中按如下编写即可:
spring: # 配置 Nacos 注册中心 cloud: nacos: discovery: enabled: true # 如果不想使用 Nacos 进行服务注册和发现,设置为 false 即可 server-addr: 192.168.10.101:8848,192.168.10.102:8848,192.168.10.103:8848 # Nacos 服务器地址
PS:如果只是为了学习的话直接在本地启动 3 个实例,通过修改端口的方式即可。本文使用三台服务器的方式带大家搭建环境,其实这种方式反而更简单。
环境准备
Nacos 单节点,也就是我们刚才使用的 standalone 模式,默认使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况,0.7 版本以后增加了支持 MySQL 数据源能力。集群搭建的时候我们需要将 Nacos 对接 Mysql 进行数据存储。如果要搭建高可用的集群环境,至少要满足以下条件:
- JDK 1.8+;
- Maven 3.2.x+;
- MySQL 5.6.5+(生产使用建议至少主备模式,或者采用高可用数据库);
- 3个或3个以上Nacos节点才能构成集群。
下载源码或者安装包
可以通过源码和发行包两种方式来获取 Nacos。
源码方式
从 Github 上下载源码方式。
git clone https://github.com/alibaba/nacos.git cd nacos/ mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U ls -al distribution/target/ // change the $version to your actual path cd distribution/target/nacos-server-$version/nacos/bin
发行包方式
您可以从 https://github.com/alibaba/nacos/releases 下载最新稳定版本的 nacos-server 包。
配置集群配置文件
将安装包解压。
tar -zxvf nacos-server-1.2.1.tar.gz -C /usr/local/ # 解压文件至 local 目录
在 Nacos 的解压目录 nacos/conf 目录下,复制配置文件 cluster.conf.example 并重命名为 cluster.conf,每行配置成 ip:port。(请配置3个或3个以上节点)
192.168.10.101:8848 192.168.10.102:8848 192.168.10.103:8848
配置 MySQL 数据库
Nacos 在 0.7 版本之前,默认使用的是嵌入式数据库 Apache Derby 来存储数据(内嵌的数据库会随着 Nacos 一起启动,无需额外安装);0.7 版本及以后,增加了对 MySQL 数据源的支持。
MySQL数据源
环境要求:MySQL 5.6.5+(生产使用建议至少主备模式,或者采用高可用数据库);
初始化 MySQL 数据库
创建数据库 nacos_config。
SQL源文件地址:https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql ,或者在 nacos-server 解压目录 conf 下,找到 nacos-mysql.sql 文件,运行该文件,结果如下:
![25c2a099bc41589e9852b9dcb966e79d.png](https://i-blog.csdnimg.cn/blog_migrate/54e8f5490f97cb0b4249c6fa2f0d2b11.jpeg)
application.properties 配置
修改 nacos/conf/application.properties 文件的以下内容。
![53b262b39214ea9632ff793c4ea3b10e.png](https://i-blog.csdnimg.cn/blog_migrate/d5c24d1edfba96b4e2d6265a17790615.jpeg)
最终修改结果如下:
#*************** Config Module Related Configurations ***************# ### If user MySQL as datasource: # 指定数据源为 MySQL spring.datasource.platform=mysql ### Count of DB: # 数据库实例数量 db.num=1 # 数据库连接信息,如果是 MySQL 8.0+ 版本需要添加 serverTimezone=Asia/Shanghai ### Connect URL of DB: db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=Asia/Shanghai db.user=root db.password=1234
如果你和我一样使用的是 MySQL 8.0+ 版本,那么启动 Nacos 时肯定会报错。莫慌,在 Nacos 安装目录下新建 plugins/mysql 文件夹,并放入 8.0+ 版本的 mysql-connector-java-8.0.xx.jar,重启 Nacos 即可,启动时会提示更换了 MySQL 的 driver-class 类。
![56dc94d241311dbd0b57b8a8335783ce.png](https://i-blog.csdnimg.cn/blog_migrate/2de91031c64d676ba83eb3cfef6d8b81.jpeg)
启动服务器
Linux/Unix/Mac
在 Nacos 的解压目录 nacos/bin 目录下启动。
启动命令(在没有参数模式,是集群模式):
sh startup.sh
查看启动记录
可通过 /nacos/logs/nacos.log(详细日志)或 /nacos/conf/start.out(启动记录)的输出内容查看是否启动成功。
查看命令:
tail -f /usr/local/nacos/logs/start.out
启动成功输出结果:
2020-04-29 22:47:56,204 INFO Nacos is starting... 2020-04-29 22:47:56,556 INFO Nacos logs files: /usr/local/nacos/logs/ 2020-04-29 22:47:56,556 INFO Nacos conf files: /usr/local/nacos/conf/ 2020-04-29 22:47:56,556 INFO Nacos data files: /usr/local/nacos/data/ 2020-04-29 22:47:56,556 INFO Nacos started successfully in cluster mode.
访问
访问以下链接,默认用户名/密码是 nacos/nacos :
- http://192.168.10.101:8848/nacos/
- http://192.168.10.102:8848/nacos/
- http://192.168.10.103:8848/nacos/
![9b89156606ba71cd522b6bc4dc66bf26.png](https://i-blog.csdnimg.cn/blog_migrate/842f9a69a810887b22952c4c8656d6d0.jpeg)
关闭服务器
Linux/Unix/Mac
sh shutdown.sh
测试
直连 ip 模式
商品服务 application. yml 配置文件。
server: port: 7070 # 端口spring: application: name: product-service # 应用名称 # 配置 Nacos 注册中心 cloud: nacos: discovery: enabled: true # 如果不想使用 Nacos 进行服务注册和发现,设置为 false 即可 server-addr: 192.168.10.101:8848,192.168.10.102:8848,192.168.10.103:8848 # Nacos 服务器地址,集群版直连 ip 模式
订单服务 application. yml 配置文件。
server: port: 9090 # 端口spring: application: name: order-service # 应用名称 # 配置 Nacos 注册中心 cloud: nacos: discovery: enabled: true # 如果不想使用 Nacos 进行服务注册和发现,设置为 false 即可 server-addr: 192.168.10.101:8848,192.168.10.102:8848,192.168.10.103:8848 # Nacos 服务器地址,集群版直连 ip 模式
启动 Nacos 集群,从下图可以看到集群节点共有三个,其中 192.168.10.101:8848 为 leader。
![b67ba86c4bc15e1108fbcdc0b781e7a9.png](https://i-blog.csdnimg.cn/blog_migrate/08e1a45f69cdaaadf2586d52684b69ae.jpeg)
通过服务列表可以看到服务已注册至 Nacos。
![e9bc01968d2a8e0a8f2e4d0ac05a881a.png](https://i-blog.csdnimg.cn/blog_migrate/e0dac767b08e47074d26eca101e296d2.jpeg)
![ec4b585aaec52194a2c85b17d6bb7265.png](https://i-blog.csdnimg.cn/blog_migrate/41e361dc299fc65e720e21d5022f0d90.jpeg)
访问:http://localhost:9090/order/1 结果如下:
![a1caed55fb41730f97b11b7390e9a7ca.png](https://i-blog.csdnimg.cn/blog_migrate/a5df49e186d94b0ec85256b2e52ebcc6.jpeg)
Nginx 转发
再启动一台服务器 192.168.10.100,安装 Nginx,配置代理转发规则。
upstream nacos { server 192.168.10.101:8848; server 192.168.10.102:8848; server 192.168.10.103:8848;}
![ea72d02fd04b596c837688761a0f5676.png](https://i-blog.csdnimg.cn/blog_migrate/0b238db6ab9004458cfec02f6ebba9a1.jpeg)
商品服务 application. yml 配置文件。
server: port: 7070 # 端口spring: application: name: product-service # 应用名称 # 配置 Nacos 注册中心 cloud: nacos: discovery: enabled: true # 如果不想使用 Nacos 进行服务注册和发现,设置为 false 即可 server-addr: 192.168.10.100:80 # Nacos 服务器地址,集群版 Nginx 转发
订单服务 application. yml 配置文件。
server: port: 9090 # 端口spring: application: name: order-service # 应用名称 # 配置 Nacos 注册中心 cloud: nacos: discovery: enabled: true # 如果不想使用 Nacos 进行服务注册和发现,设置为 false 即可 server-addr: 192.168.10.100:80 # Nacos 服务器地址,集群版 Nginx 转发
启动 Nacos 集群,从下图可以看到集群节点共有三个,其中 192.168.10.101:8848 为 leader。
![b67ba86c4bc15e1108fbcdc0b781e7a9.png](https://i-blog.csdnimg.cn/blog_migrate/08e1a45f69cdaaadf2586d52684b69ae.jpeg)
通过服务列表可以看到服务已注册至 Nacos。
![171d8262ad970f07750cf8cf43154e22.png](https://i-blog.csdnimg.cn/blog_migrate/1f796737e1f6d0ebfb58b355f016ea22.jpeg)
访问:http://localhost:9090/order/1 结果如下:
![85e4382b402ab791d62f4a7d1250a7d7.png](https://i-blog.csdnimg.cn/blog_migrate/c118fcf9356ba9492355a49b2f7d64c1.jpeg)
至此 Nacos 注册中心所有的知识点就讲解结束了。
![0d9cb8cc4780fda7b7e0cd176c4f6954.gif](https://i-blog.csdnimg.cn/blog_migrate/92eb1650d80167af92c3f59a603a2d53.gif)
您的 点赞 和 转发 是对我最大的支持。
扫描下方二维码关注 哈喽沃德先生「文档 + 视频」每篇文章都配有专门视频讲解,学习更轻松噢 ~
![d329430a54c7a48a767c625a3957096c.gif](https://i-blog.csdnimg.cn/blog_migrate/2348711eaa5834986ce19b3b32eeb2e9.gif)
![6be079c28ef2a0a25de39710d1671abd.png](https://i-blog.csdnimg.cn/blog_migrate/40d10dec9fa27a891f47b219411d73f5.jpeg)