官网:https://nacos.io/zh-cn/docs/deployment.html
问题:nacos使用嵌入式数据库实现数据存储,所以,如果启动多个默认配置下的nacos,数据存储存在一致性问题的,为了解决这个问题,nacos采用了集中存储的方式来支持集群化部署,目前只支持Mysql的存储;
数据库切换步骤
第一步:到nacos\conf目录下找到sql脚本nacos-mysql.sql 执行脚本
第二步:在nacos\conf目录下找到application.properties 末尾添加
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
集群配置步骤:
第一步cp cluster.conf.example cluster.conf
内容:
192.168.111.11:3333
192.168.111.11:4444
192.168.111.11:5555
第二步修改startup.sh文件:
找到:while getopts ":m:f:s:"opt
do
case $opt in
m)
MODE=$OPTARG
f)
FUNCTION_MODE=$OPTARG
s)
SERVER=$OPTARG
?)
echo "Unknow parameter"
修改成:
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 "Unknow parameter"
找到#start
echo "$JAVA ${JAVA_OPT}" > ${BASE_DIR}/logs/start.out 2>&1 &
nohub $JAVA${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 &
echo "nacos is starting,you can check the ${BASE_DIR}/logs/start.out"
改成
echo "$JAVA ${JAVA_OPT}" > ${BASE_DIR}/logs/start.out 2>&1 &
nohub $JAVA -Dserver.port=${PORT} ${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 &
echo "nacos is starting,you can check the ${BASE_DIR}/logs/start.out"
分别启动:
./startup.sh -p 3333
Nginx配置 -负载均衡
修改Nginx.conf配置;
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;
location /{
proxy_pass http://cluster;
}
}
yml配置:
server:
port:9001
spring:
application:
name:nacos-payment-provider
cloud:
nacos:
discovery:
server-addr:192.168.111.144:1111
management:
endpoints:
web:
exposure:
include: "*"