springcloud(十五Ⅱ)--SpringCloud Alibaba Nacos集群和持久化配置

一、官网说明

官网: https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html
在这里插入图片描述
在这里插入图片描述

默认Nacos使用嵌入式数据库实现数据的存储。所以,如果启动多个默认配置下的Nacos节点,数据存储是存在一致问题的。
为了解决这个问题,Nacos采用了集中式存储的方式来支持集群化部署,目前只支持MySQL的存储。

在这里插入图片描述

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=nacos_devtest
db.password=youdontknow

二、Nacos持久化配置解释

1、Nacos默认自带的嵌入式数据库derby

源码网址: https://github.com/alibaba/nacos/blob/develop/config/pom.xml

在这里插入图片描述

2、derby到mysql切换配步骤

1、在nacos/conf目录下找到sql脚本:nacos-mysql.sql
在这里插入图片描述
然后在本地mysql数据库执行脚本

在这里插入图片描述
用户名和密码
在这里插入图片描述

2、在nacos/conf目录下找到application.properties文件
在这里插入图片描述
打开文件 添加mysql数控库连接
bl80MjQ2OTA3MA==,size_16,color_FFFFFF,t_70)

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

启动nacos,可以看到是一个全新的空记录界面,以前是记录进derdy
在这里插入图片描述
在界面上添加一条配置,然后查看数据库是否有存储数据
在这里插入图片描述
在这里插入图片描述
数据库查看
在这里插入图片描述
以前的nacos的嵌入式的derby切换mysql数据库成功

三、Linux版Nacos+MySQL生产环境配置

预计需要,1个Nginx + 3个nacos注册中心 + 1个mysql

1、Nacos下载Linux版本

官网文档
在这里插入图片描述
到 https://github.com/alibaba/nacos/releases/tag/1.1.4
下载 nacos-server-1.1.4.tar.gz
解压安装
在这里插入图片描述

上传到虚拟机上

mv nacos-server-1.1.4.tar.gz /usr/local/src/

解压

tar -zxvf nacos-server-1.1.4.tar.gz
cd nacos/

在这里插入图片描述

cd bin/
在这里插入图片描述
window系统下 启动命令是:startup.cmd
linux系统下 启动命令是 :./startup.sh -m standalone 或者 sh startup.sh -m standalone 高版本: nohup sh startup.sh -m standalone & (注:这是单机版启动)
备份启动命令
cp startup.sh startup.sh.bak

2、集群配置步骤

预备环境:mysql5.7 jdk1.8+ maven tomcat

①Linux服务器上mysql数据库配置

在 /usr/local/src/nacos/conf/

cd /usr/local/src/nacos/conf/

在这里插入图片描述

找到nacos-mysql.sql文件来创建数据库表

在这里插入图片描述

②application服务器上mysql数据库配置

位置

cd /usr/local/src/nacos/conf/
在这里插入图片描述
cp application.properties application.properties.init
vi application.properties

在这里插入图片描述
在这里插入图片描述

mysql数据库最后是5.7版本的 如果mysql8.0版本以上启动会报错
查看启动日记

cat /usr/local/src/nacos/logs/nacos.log

在这里插入图片描述

数据库配置内容:

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

③Linux服务器上nacos的集群配置cluster.conf

(1)梳理出3台nacos集器的不同服务端口号

一个nacos: startup 8848
三个naocs: 3333 4444 5555

(2)复制出cluster.conf

cp cluster.conf.example cluster.conf

在这里插入图片描述

(3)内容

vi cluster.conf

添加内容

192.168.18.131:3333
192.168.18.131:4444
192.168.18.131:5555

注意:这个IP不能写127.0.0.1,必须是Linux命令hostname -I 或者ifconfig -a 能够识别的IP

④编辑nacos的启动脚本startup.sh,使它能够接受不同的启动端口

在 /usr/local/src/nacos/bin 目录下有startup.sh

集群启动,我们希望可以类似其它软件的shell命令,传递不同的端口启动不同的nacos实例

命令:./startup.sh -p 3333 表示启动端口号为3333的nacos服务器实例,和上一步cluster.conf配置的一致

vi startup.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 &

先启动mysql

service mysql start

执行方式:

./startup.sh -p 3333
./startup.sh -p 4444
./startup.sh -p 5555

在这里插入图片描述
查看nacos数量

ps -ef| grep nacos|grep -v grep | wc -l
在这里插入图片描述

访问集群nacos网址:
http://192.168.18.131:3333/nacos/#/login
http://192.168.18.131:4444/nacos/#/login
http://192.168.18.131:5555/nacos/#/login

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

⑤Nginx的配置,由它作为负载均衡器

修改nginx的config目录下nginx.conf配置文件
在这里插入图片描述

vi nginx.conf
在这里插入图片描述

修改内容:


    #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;
        }

启动nginx

cd /usr/local/nginx/sbin # 进入目录
./nginx -c /usr/local/nginx/conf/nginx.conf #启动

测试通过nginx访问nacos
http://192.168.18.131:1111/nacos/#/login

在这里插入图片描述
在这里插入图片描述
新增一条配置:
在这里插入图片描述

在这里插入图片描述

登录数据库查看是否存储

在这里插入图片描述

3、测试

把微服务cloudalibaba-provider-payment-9002启动注册进nacos集群
修改application.yml配置文件:

spring:
  application:
    name: nacos-payment-provider # 微服务名称
  cloud:
    nacos:
      discovery:
#        server-addr: 127.0.0.1:8848 # 配置Nacos地址
        # 换成nginx的1111端口,做集群
        server-addr: 192.168.18.131:1111

启动9002,查看nacos界面

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值