一、 nacos数据源更换

  • nacos用的是自己当前节点内置的derby数据库来保存当前的数据文件;
  • 如果要设置nacos集群,则不能使用自己内部derby数据库,要替换为mysql,且目前只支持mysql;
  • 三个节点都配置到该数据库上,达到不同节点,共享同一个数据库文件;

1. 建数据库

  • 方式一: 直接下载对应的tar文件,可以从con目录下找到该sql,将sql在本地数据库运行;
  • 方式二: 如果安装的是docker,则容器中没有该文件,则只能从官网去找;
  • 官网:https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql;

2. 修改nacos默认数据源

  • 进入docker的nacos容器,修改conf/application.properties文件,将数据源从derby切换到mysql;
  • 具体的信息可以去官网查看;
<!--outter mysql datasource-->
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://60.205.229.31:3307/nacos_db?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=123456

修改前

nacos切换mysql数据库初始化_nginx


修改后

nacos切换mysql数据库初始化_nacos切换mysql数据库初始化_02

3. 重启nacos

  • 重启后,再在nacos页面中添加文件时候,就可以在对应的mysql的表config_info表中找到记录;

二、 nacos集群搭建

  • 当前使用一个nginx(标准为nginx集群),三个nacos,一个mysql(标准为高可用mysql集群)搭建环境;

1. 集群架构

nacos切换mysql数据库初始化_docker_03

2. 搭建三台nacos并共享同一个数据源

#  1. 将sql、初始化脚本在本地的mysql数据库运行;
#  2. 先以单节点模式启动三个nacos (官网要求:3个或以上);
#     2.1 其中MODE默认为Cluster集群,如果省略该配置,容器启动几秒后,发现没有集群配置,几秒后就退出了
#     2.2 1G1核的阿里云服务器表示启动起来: 半天才能访问到,太占用资源了
docker run --env MODE=standalone --name first_nacos -d -p 9001:8848 nacos/nacos-server
docker run --env MODE=standalone --name second_nacos -d -p 9002:8848 nacos/nacos-server
docker run --env MODE=standalone --name third_nacos -d -p 9003:8848 nacos/nacos-server
# 3. 修改每个nacos的默认数据源配置;
##  至此,每个nacos节点的数据同步了,并且每个节点展现或者删除的数据,都是对应的mysql数据库的数据;

#  4. 在三个docker中的nacos的conf目录下,增加cluster.conf文件,配置所有的集群节点( ip + 端口);

还需要配置cluster.conf吗?三个nacos已经单独启动且共享一份数据源了啊

3. 一个nginx作为请求负载均衡转发

nginx的地址

http://60.205.229.31:8081/

配置文件

<!--每次修改配置文件,启动docker中的nginx后,一定要检查是否真正启动了
     很有可能配置文件改错了,就启动不了了-->

http {


upstream szserver {
    server     120.79.28.20:9001;
    server     120.79.28.20:9002;
    server     120.79.28.20:9003;
   }


   server{
     listen         80;
     server_name    dreamer;

     location / {
       proxy_pass     http://szserver;
       root html;
       index     index.html        index.html;

     }
  }

4. 请求转发

  • 每次启动nacos后,都得服务器快三四分钟响应启动,才能正常的访问nacos
http://60.205.229.31:8081/nacos/#/login