第一种方式:
集群节点(Nacos内存占用默认2G)
106.15.38.88:8848(mysql + nacos)
106.15.38.88:8858 (nacos)
106.15.38.88:8868 (nacos)
我这里是用一台云服务器通过docker来搭建,如果是多台服务器,IP、端口修改即可,通用。
1.MySQL(支持8.0)
Docker搭建MySQL
注:需要提前创建nacos_config数据库并导入SQL文件,创建连接用户nacos
SQL文件地址: https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql
2.启动各Nacos节点
下载镜像
docker search nacos
docker pull nacos/nacos-server
运行镜像
106.15.38.88:8848
docker run -d \
--net=host \ #这里设置了网络模式,如果单台部署三个nacos,后面几台去掉或修改
--restart=unless-stopped \
--name nacos-server \
--env PREFER_HOST_MODE=hostname \
--env MODE=cluster \
--env NACOS_SERVERS=106.15.38.88:8848,106.15.38.88:8858,106.15.38.88:8868 \
--env NACOS_SERVER_IP=106.15.38.88 \
--env SPRING_DATASOURCE_PLATFORM=mysql \
--env MYSQL_SERVICE_HOST=106.15.38.88 \
--env MYSQL_SERVICE_DB_NAME=nacos_config \
--env MYSQL_SERVICE_USER=nacos \
--env MYSQL_SERVICE_PASSWORD=nacos \
-p 8848:8848 \
nacos/nacos-server
## 注意\前的空格
106.15.38.88:8858
docker run -d \
--restart=unless-stopped \
--name nacos-server8858 \
--env PREFER_HOST_MODE=hostname \
--env MODE=cluster \
--env NACOS_SERVERS=106.15.38.88:8848,106.15.38.88:8858,106.15.38.88:8868 \
--env NACOS_SERVER_IP=106.15.38.88 \
--env SPRING_DATASOURCE_PLATFORM=mysql \
--env MYSQL_SERVICE_HOST=106.15.38.88 \
--env MYSQL_SERVICE_DB_NAME=nacos_config \
--env MYSQL_SERVICE_USER=nacos \
--env MYSQL_SERVICE_PASSWORD=nacos \
-p 8858:8848 \
nacos/nacos-server
##注意 我去掉了 --net=host,如果是多台服务器,不用去掉
## 注意name 命名、端口号
单台启动第二个,如果不去掉了 --net=host 报:
WARNING: Published ports are discarded when using host network mode
这台是无法正常运行的,也可以使用docker的其他网络模式,例如--network=bridge;
docker的网络模式:
bridge模式: Docker的默认设置
host模式
none模式
container模式: 使用时要指定容器名
overlay模式
106.15.38.88:8868
docker run -d \
--restart=unless-stopped \
--name nacos-server8868 \
--env PREFER_HOST_MODE=hostname \
--env MODE=cluster \
--env NACOS_SERVERS=106.15.38.88:8848,106.15.38.88:8858,106.15.38.88:8868 \
--env NACOS_SERVER_IP=106.15.38.88 \
--env SPRING_DATASOURCE_PLATFORM=mysql \
--env MYSQL_SERVICE_HOST=106.15.38.88 \
--env MYSQL_SERVICE_DB_NAME=nacos_config \
--env MYSQL_SERVICE_USER=nacos \
--env MYSQL_SERVICE_PASSWORD=nacos \
-p 8868:8848 \
nacos/nacos-server
##注意 我去掉了 --net=host,如果是多台服务器,不用去掉
## 注意name 命名、端口号
3.搭建完成
默认账号密码是nacos/nacos
访问任意节点地址:http://ip:8848/nacos
第二种方式:配置文件
这次以三台服务器来配置(也可以在一台服务器上配置,文件可以共用)
106.15.38.88:8848
106.15.38.89:8848
106.15.38.90:8848
1、每个节点创建Nacos的工作目录,路径自定
mkdir -p /root/dev/docker/nacos-server
mkdir -p /root/dev/docker/nacos-server/env
mkdir -p /root/dev/docker/nacos-server/logs
mkdir -p /root/dev/docker/nacos-server/init.d
2、配置custom.properties,vim /root/dev/docker/nacos-server/init.d/custom.properties
#spring.security.enabled=false
#management.security=false
#security.basic.enabled=false
#nacos.security.ignore.urls=/**
#management.metrics.export.elastic.host=http://localhost:9200
# metrics for prometheus
management.endpoints.web.exposure.include=*
# metrics for elastic search
#management.metrics.export.elastic.enabled=false
#management.metrics.export.elastic.host=http://localhost:9200
# metrics for influx
#management.metrics.export.influx.enabled=false
#management.metrics.export.influx.db=springboot
#management.metrics.export.influx.uri=http://localhost:8086
#management.metrics.export.influx.auto-create-db=true
#management.metrics.export.influx.consistency=one
#management.metrics.export.influx.compressed=true
3、配置nacos-hostname.env , vim /root/dev/docker/nacos-server/env/nacos-hostname.env
#nacos dev env
# 首选主机模式
PREFER_HOST_MODE=hostname
# 当前主机的IP,注意修改
NACOS_SERVER_IP=106.15.38.88
# 集群的各个节点
NACOS_SERVERS=106.15.38.88:8848 106.15.38.89:8848 106.15.38.90:8848
# 数据库的配置
MYSQL_SERVICE_HOST=106.15.38.88
MYSQL_SERVICE_DB_NAME=nacos
MYSQL_SERVICE_PORT=3306
MYSQL_SERVICE_USER=nacos
MYSQL_SERVICE_PASSWORD=nacos
# 从节点 这里就使用单节点测试,因此就不配置从节点
#MYSQL_SLAVE_SERVICE_HOST=xxx
#MYSQL_SLAVE_SERVICE_PORT=3306
# JVM参数 默认是2G 如果使用虚拟机,内存没有2G,就需要调整这里的参数,否则将无法启动
JVM_XMS=256m
JVM_XMX=256m
JVM_XMN=256m
4、将配置文件拷贝到其他两台机器,注意修改nacos-hostname.env文件的主机IP
scp -r /root/dev/docker/nacos-server/env/nacos-hostname.env root@106.15.38.89:/root/dev/docker/nacos-server/env/nacos-hostname.env
scp -r /root/dev/docker/nacos-server/env/nacos-hostname.env root@106.15.38.90:/root/dev/docker/nacos-server/env/nacos-hostname.env
scp -r /root/dev/docker/nacos-server/init.d/custom.properties root@106.15.38.89:/root/dev/docker/nacos-server/init.d/custom.properties
scp -r /root/dev/docker/nacos-server/init.d/custom.properties root@106.15.38.90:/usr/local/docker/nacos-server/init.d/custom.properties
5、docker启动(3个节点)
docker run \
-p 8848:8848 \
--restart=always \
--name nacos-server \
--env-file=/root/dev/docker/nacos-server/env/nacos-hostname.env \
-v /root/dev/docker/nacos-server/logs:/home/nacos/logs \
-v /root/dev/docker/nacos-server/init.d/custom.properties:/home/nacos/init.d/custom.properties \
-d nacos/nacos-server
启动完成。