Nacos集群部署
集群部署架构图
因此开源的时候推荐用户把所有服务列表放到一个vip下面,然后挂到一个域名下面
http://ip1:port/openAPI 直连ip模式,机器挂则需要修改ip才可以使用。
http://SLB:port/openAPI 挂载SLB模式(内网SLB,不可暴露到公网,以免带来安全风险),直连SLB即可,下面挂server真实ip,可读性不好。
http://nacos.com:port/openAPI 域名 + SLB模式(内网SLB,不可暴露到公网,以免带来安全风险),可读性好,而且换ip方便,推荐模式。
这张图有点难以理解,可以看下面的:
默认Nacos使用嵌入式数据库实现数据的存储。所以,如果启动多个默认配置下的Nacos节点,数据存储是存在一致性问题的。
为了解决这个问题,Nacos采用了集中式存储的方式来支持集群化部署,目前只支持MySQL的存储。
Nacos支持三种部署模式
单机模式 - 用于测试和单机试用。
集群模式 - 用于生产环境,确保高可用。
多集群模式 - 用于多数据中心场景。
实操的话都是集群模式,所以这里继续练习将以集群模式练习
单机模式支持mysql
在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力,具体的操作步骤:
1.安装数据库,版本要求:5.6.5+
2.初始化mysql数据库,数据库初始化文件:nacos-mysql.sql
3.修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。
之前那么多配置能保存下来(持久化)是因为nacos自带数据库derby,需要自行换成mysql
到D:\nacos-server-1.1.4\nacos\conf找到nacos-mysql.sql,复制粘贴到自己的数据库生成相关内容(需先创建nacos_config数据库)
接着在application.properties添加以下内容,需要修改数据库用户和密码
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=root
db.password=root
再次启动nacos(startup.cmd -m standalone),输入http://localhost:8848/nacos ,登录即可看到之前的记录没有了,这时自行创建配置,可以在config-info里面找到新创建的配置
现在进行linux版Nacos+MySQL生产环境配置,预计需要一个nginx, 3个nacos注册中心和一个mysql
首先确保linux下有安装mysql
CentOS7安装MySQL(完整版)_Y.zh的博客-CSDN博客_centos7安装mysql
Mysql安装失败-GPG验证不通过_yaoyaozaiye的博客-CSDN博客
安装完毕后,去Release 1.1.4(Oct 24th, 2019) · alibaba/nacos · GitHub 下载nacos-server-1.1.4.tar.gz
在linux下的opt文件夹下创建mynacos文件夹,把下载的文件解压
控制台下:
systemctl start mysqld.service
mysql -uroot -p 输入密码
创建nacos_config数据库
将opt/mynacos/nacos/conf/ nacos-mysql.sql的内容执行一遍即可
推荐使用远程连接到windows下数据库的方式操纵:
linux安装mysql及navicat连接 - 斗战圣猿 - 博客园
还是conf文件夹下,对application.properties进行备份application.properties.init
接下来对application.properties操作,和windows的操作一模一样
接下来复制一份cluster.conf.example为cluster.conf
输入内容:
192.168.174.128:3333
192.168.174.128:4444
192.168.174.128:5555
/mynacos/nacos/bin 目录下有startup.sh
平时单机版的启动,都是./startup.sh即可。
但是集群启动,我们希望可以类似其它软件的shell命令,传递不同的端口号启动不同的nacos实例。
命令:./startup.sh -p 3333 表示启动端口号为3333的nacos服务器实例,和上一步的cluster.conf配置的一致。
打开文件,定位到:while getopts ":m:f:s:" opt
改成:
while getopts ":m:f:s:p:" opt
do
case $opt in
m)
MODE=$OPTARG;;
f)
FUNCTION_MODE=$OPTARG;;
s)
SERVER=$OPTARG;;
p)
PORT=$OPTARG;;
?)
echo "Unknown parameter"
exit 1;;
esac
done
接着到底部,进行修改:
nohup $JAVA-Dserver.port=${PORT} ${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 &
接着在bin目录下打开控制台,输入:
./startup.sh -p 3333
输出得到:/java/jdk1.8.0_311/bin/java -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/mynacos/nacos/logs/java_heapdump.hprof -XX:-UseLargePages -Djava.ext.dirs=/java/jdk1.8.0_311/jre/lib/ext:/java/jdk1.8.0_311/lib/ext:/opt/mynacos/nacos/plugins/cmdb:/opt/mynacos/nacos/plugins/mysql -Xloggc:/opt/mynacos/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dnacos.home=/opt/mynacos/nacos -Dloader.path=/opt/mynacos/nacos/plugins/health -jar /opt/mynacos/nacos/target/nacos-server.jar --spring.config.location=classpath:/,classpath:/config/,file:./,file:./config/,file:/opt/mynacos/nacos/conf/ --logging.config=/opt/mynacos/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288
nacos is starting with cluster
nacos is starting,you can check the /opt/mynacos/nacos/logs/start.out
即代表启动成功,4444和5555也是这么启动的
接着就是配置nginx,首先要确定是否安装了nginx
Linux安装nginx - star-xin - 博客园
安装完毕后,到/usr/local/nginx/conf的nginx.conf进行修改,定位到#gzip on;
#gzip on;
upstream cluster{
server 127.0.0.1:3333;
server 127.0.0.1:4444;
server 127.0.0.1:5555;
}
server {
listen 1111;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#root html;
#index index.html index.htm;
proxy_pass http://cluster;
}
全部配置完毕,启动3333,4444,5555
输入以下内容:
[root@localhost bin]# pwd
/opt/mynacos/nacos/bin
[root@localhost bin]# ./startup.sh -p 3333
[root@localhost bin]# ./startup.sh -p 4444
[root@localhost bin]# ./startup.sh -p 5555
[root@localhost bin]# ps -ef|grep nacos|grep -v grep|wc -l
3
再换个位置
[root@localhost sbin]# pwd
/usr/local/nginx/sbin
[root@localhost sbin]# ./nginx -c /usr/local/nginx/conf/nginx.conf
[root@localhost sbin]# ps -ef|grep nginx
进入网页,输入http://192.168.174.128:1111/nacos/#/login,进入NACOS发布一个配置
Idea启动9003,修改yml中:
server-addr: 192:168:174:128:1111
访问网页能看到配置信息即可
以上为106-110集的内容