参考博客: https://www.cnblogs.com/zhousjcn/p/15542327.html
一,集群结构
二,数据库配置
1,创建nacos数据库
create database nacos;
2,向该数据库中添加 nacos 提供的表,直接执行 nacos 提供的脚本即可 nacos-mysql.sql
三,nacos集群搭建
1,从github下载nacos包,上传到服务器,解压即可。
下载地址:https://github.com/alibaba/nacos/releases
2,修改nacos下的cluster.conf
1)将 cluster.conf.example 文件修改为 cluster.conf
2)然后在 cluster.conf 中添加 nacos 服务的 ip 和 端口,下面 ip 和 端口只是演示,个人根据实际情况修改,如果在一台机器上启动多个 nacos 服务需要注意端口冲突问题
3,修改apllication.properties
1)修改端口,此处端口与 cluster.conf 文件中服务的端口对应
2)添加数据库配置(根据实际情况修改)
4. 启动 nacos 服务集群
将已经配置好的 nacos 服务端分别在不同服务器上启动即可,注意这些服务器的 IP 地址与 cluster.conf 文件中配置的 IP 对应。
启动方式与单机启动不同,此处不需要启动参数,在 nacos 的 bin 目录下:
sh startup.sh
四,使用 Nginx 做负载均衡和反向代理
- 修改 nginx.conf 配置
1)向 conf/nginx.conf 文件添加配置如下(只需在 http{…} 中任意位置):
2,启动nginx
./nginx
五,集群部署验证
-
访问 nacos 控制台
地址:http://localhost/nacos -
添加配置
-
查看数据库
看数据库表中是否存在刚刚添加的配置
六、Java服务连接 nacos 集群
因为使用了 nginx 反向代理,所以直接在 application.yml 文件中,将原本配置 nacos 的地址修改为反向代理地址即可
spring:
cloud:
nacos:
server-addr: localhost:80 # Nacos地址
七、优化
实际部署时,需要给做反向代理的nginx服务器设置一个域名,这样后续如果有服务器迁移nacos的客户端也无需更改配置.
- Nacos的各个节点应该部署到多个不同服务器,做好容灾和隔离
参考博客: https://www.cnblogs.com/zhousjcn/p/15542327.html
八,部署时遇到的问题:
问题一,which: no javac in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
Error: Please set the JAVA_HOME variable in your environment,We need java(x64) !jdk8 or later is better!
问题描述: nacos所在服务器已配置jdk环境变量(移动平台安装的jdk),配置路径不正确。
解决办法: 1,自己重新下载一个免安装版的jdk,放在指定目录下,如/opt/nacos/jdk1.8
2,在nacos的启动文件startup.sh顶部加上环境变量 JAVA_HOME=”/opt/nacos/jdk1.8”
问题二:登录nacos后,新增文件提示 “发布失败。请检查参数是否正确。”
问题原因: nacos 初始化sql与nacos版本不一致
解决办法: sql文件直接采取容器默认自带的创建表,复制出来即可。
问题三:新下载的nginx没有sbin
问题原因: nginx解压后没有编译。。
参考博客:https://blog.csdn.net/AlbenXie/article/details/131841546