赞
踩
前言:(有一点要注意SpringCloudAlibaba版本到了2.2.7RElEASE版本之上后服务端也至少得使用2.x以上的版本,这里使用nacos2.1.1版本)
本项目代码与笔记已存放在Gitee仓库 地址:代码,笔记
官方文档: nacos集群搭建官方文档
集群部署结构图:
SLB:负载均衡,通常使用nginx这个中间层来分别分发到我们的nacos服务器,分别给不同的服务器部署nacos。
请确保是在环境中安装使用: 各种安装方式可以查看我的其他博客的详细讲解
下载源码编译:https://github.com/alibaba/Nacos/releases 可以用迅雷下载
这里直接在linux里使用wget下载
cd /usr/local
mkdir nacos-2.1.1
cd nacos-2.1.1
wget https://github.com/alibaba/nacos/releases/download/2.1.1/nacos-server-2.1.1.tar.gz
tar -zxvf nacos-server-2.1.1.tar.gz
分别重命名为nacos8870,nacos8872,nacos8874
最好不要使用连续的端口 ,不然可能出现地址已在使用报错。
mv nacos nacos8870
...
...
rm -rf nacos-server-2.1.1.tar.gz
分别配置nacos的/conf/application.properties的配置,使用外置数据源(配置数据源为mysql,因为它的默认的数据源是内嵌的数据源,默认存在内存中的,三个进程各有各的进程,到时候服务注册会注册到各自的nacos服务器中,为了保证数据一致性,这里使用mysql数据源,需下载配置mysql5.7+)
这里以修改8870为例子,后面再修改其他两个nacos服务配置
cd nacos8870/conf
vim application.properties
- 修改对应的端口比如8870
- 取消数据源注释·,修改数据源为mysql
- 数据的连接数量打开
```java
server.port=8870
spring.datasource.platform=mysql
db.num=1
##注意改成自己的mysql用户名密码
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReConnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.usr.0=root
db.password.0=123456
在windows版本的nacos/conf下有一个mysql的脚本 用navicat连接上我们的linux的mysql执行脚本创建数据库
将conf/cluster.conf.example改为cluster.conf 。添加节点配置
cp cluster.conf.example cluster.conf
#编辑 cluster.conf
vim cluster.conf
#ip:port
192.168.116.100:8870
192.168.116.100:8872
192.168.116.100:8874
如果出现内存不足:修改脚本(bin\startup.sh)的jvm参数
cd /usr/local/nacos-2.1.1/nacos8870/bin
vim startup.sh
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m"
cd /usr/local/nacos-2.1.1/nacos8870/bin
./startup.sh
#查看自己的javahome
vim /etc/profile
#我的如下
export JAVA_HOME=/usr/local/jdk1.8/jdk1.8.0_333
# 编辑开机自启脚本
vim /lib/systemd/system/nacos8870.service
# 添加以下内容 注意自己的javahome和nacos的服务路径
[Unit]
Description=nacos
After=network.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/jdk1.8/jdk1.8.0_333"
# 启动后面可以加上 -m standalone/cluster 表示以单机/集群方式启动,默认为集群
ExecStart=/usr/local/nacos-2.1.1/nacos8870/bin/startup.sh
ExecReload=/usr/local/nacos-2.1.1/nacos8870/bin/shutdown.sh
ExecStop=/usr/local/nacos-2.1.1/nacos8870/bin/shutdown.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
#重新加载服务
systemctl daemon-reload
#启用服务
systemctl enable nacos8870.service
#启动服务
systemctl start nacos8870.service
#重启虚拟机
reboot
#进入包含三个安装包的目录
cd /usr/local/nacos-2.1.1
#复制application.properties 到8872
cp ./nacos8870/conf/application.properties ./nacos8872/conf/application.properties
cp:是否覆盖"./nacos8872/conf/application.properties"? y
#复制application.properties 到8874
cp ./nacos8870/conf/application.properties ./nacos8874/conf/application.properties
cp:是否覆盖"./nacos8874/conf/application.properties"? y
#复制集群配置文件到8872
cp ./nacos8870/conf/cluster.conf ./nacos8872/conf/cluster.conf
#复制集群配置文件到8874
cp ./nacos8870/conf/cluster.conf ./nacos8874/conf/cluster.conf
vim nacos8872/conf/application.properties
#修改端口为8872
vim nacos8874/conf/application.properties
#修改端口为8874
nacos8872开机自启
# 编辑开机自启脚本
vim /lib/systemd/system/nacos8872.service
# 添加以下内容 注意自己的javahome和nacos的服务路径
[Unit]
Description=nacos
After=network.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/jdk1.8/jdk1.8.0_333"
# 启动后面可以加上 -m standalone/cluster 表示以单机/集群方式启动,默认为集群
ExecStart=/usr/local/nacos-2.1.1/nacos8872/bin/startup.sh
ExecReload=/usr/local/nacos-2.1.1/nacos8872/bin/shutdown.sh
ExecStop=/usr/local/nacos-2.1.1/nacos8872/bin/shutdown.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
#重新加载服务
systemctl daemon-reload
#启用服务
systemctl enable nacos8872.service
#启动服务
systemctl start nacos8872.service
8874开机自启
# 编辑开机自启脚本
vim /lib/systemd/system/nacos8874.service
# 添加以下内容 注意自己的javahome和nacos的服务路径
[Unit]
Description=nacos
After=network.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/jdk1.8/jdk1.8.0_333"
# 启动后面可以加上 -m standalone/cluster 表示以单机/集群方式启动,默认为集群
ExecStart=/usr/local/nacos-2.1.1/nacos8874/bin/startup.sh
ExecReload=/usr/local/nacos-2.1.1/nacos8874/bin/shutdown.sh
ExecStop=/usr/local/nacos-2.1.1/nacos8874/bin/shutdown.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
#重新加载服务
systemctl daemon-reload
#启用服务
systemctl enable nacos8874.service
#启动服务
systemctl start nacos8874.service
#重启虚拟机
reboot
下面我会介绍如何在cloudalibaba框架中使用nacos集群,前面的基础框架搭建过程以及代码在我的SpringCloudAlibaba专栏有详细介绍
这里已经提前安装好了nginx
cd nginx/conf
vim nginx.conf
如果访问的是虚拟机的localhost:8089/nacos 就会负载均衡访问我们的nacos集群地址http://nacoscluster/nacos/
upstream nacoscluster {
server 127.0.0.1:8870;
server 127.0.0.1:8872;
server 127.0.0.1:8874;
}
server {
listen 8089;
server_name localhost;
location /nacos/ {
proxy_pass http://nacoscluster/nacos/;
}
}
修改配置,保存退出,重启虚拟机
reboot
具体的版本问题我也并不知为何,只是做了简单的测试,现在采用的版本如下
好啦以上就是我亲自测试搭建的SpringCloudAlibaba整合nacos集群,后续的其他组件手把手整合会继续在我的专栏SpringCloudAlibaba持续更新。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。