SpringCloud高级(二) ——SpringCloud Alibaba Nacos篇三

Nacos集群和持久化配置(重要)

官网集群部署说明:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html
架构图:
在这里插入图片描述
官网说明:
https://nacos.io/zh-cn/docs/deployment.html
在这里插入图片描述

Nacos持久化配置解释

Nacos默认自带的是嵌入式数据库derbyhttps://github.com/alibaba/nacos/blob/develop/config/pom.xml

derby是nacos的内嵌数据库,如果集群的话,每个节点的数据都持久化到本地的数据库,可能会出现数据不一致的问题,解决方法,nacos集群一致不使用内置数据库,统一使用外置的mysql数据库,这样所有节点的数据来源于mysql,就不会存在数据不一致的问题了

  • nacos-server-1.1.4\nacos\conf目录下找到sql脚本,nacos-mysql.sql,执行脚本
  • nacos-server-1.1.4\nacos\conf目录下找到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=123456

启动nacos,可以看到是个全新的空记录界面,以前是记录进derby

Linux版Nacos+MySQL生产环境配置

按照上面的架构图搭建:预计需要,1个nginx+3个nacos注册中心+1个mysql
在这里插入图片描述
至少3个nacos节点。
1.下载nacoslinux版安装包nacos-server-1.1.4.tar.gz,放到linux下,解压。
2.conf目录下获取 nacos-mysql.sql文件。
3.新建一个数据库nacos_config,导入sql文件。
在这里插入图片描述
4.还是conf目录下,application.properties配置

spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://ip:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=12345678

5.好了,已经配置好了一台nacos,但是至少要3台。开始配置集群
6.conf目录下, cp cluster.conf.example cluster.conf
vi cluster.conf

#192.168.63.131本机ip  这个IP不能写127.0.0.1,必须是Linux命令hostname -i能够识别的IP
192.168.63.131:3333
192.168.63.131:4444
192.168.63.131:5555

7.编辑Nacos的启动脚本startup.sh,使它能够接受不同的启动端
在这里插入图片描述
vi start.sh
在这里插入图片描述
在这里插入图片描述

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 &

8.安装nginx。并且启动后能访问主页。然后才是来改配置
conf下,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;                                             
}

启动nginx./nginx -c /root/nginx/nginx-1.18.0/conf/nginx.conf
在这里插入图片描述
启动nacos:bin目录下

./startup.sh -p 3333
./startup.sh -p  4444
./startup.sh -p 5555
[root@localhost bin]# ps -ef|grep nacos|grep -v grep |wc -l
3

由于我的虚拟机内存只有1G,根本带不起来,我是修改了nacos的默认jvm参数后才起来的:
startup.sh
jvm参数:
在这里插入图片描述
可以看到集群时,这一上来就给我搞2G的内存,这个TM谁顶的住。
修改后适合我自己虚拟机的参数:
在这里插入图片描述
抠抠搜搜,哈哈哈!
不过终究是起来了,嘻嘻!

起完后再看一下内存:我的妈呀,就这么点了,刚刚好吧
在这里插入图片描述
访问nacos集群:
通过nginx转发访问

http://192.168.63.131:1111/nacos/#/login

查看集群信息:
在这里插入图片描述
添加一个配置文件,同时查看是否持久化到mysql里:
在这里插入图片描述
在这里插入图片描述
成功!
至此,1个Nginx+3个nacos注册中心+1个mysql的nacos集群搭建好了。

测试

模块:cloudalibaba-provider-payment9002修改
配置文件:
在这里插入图片描述
启动,查看是否注册到了nacos集群里:在这里插入图片描述
成功注册上了!

猜你喜欢

转载自blog.csdn.net/weixin_42412601/article/details/107240236