最近在学习nacos,在本地搭建nacos集群环境。因为电脑配置低,所以没有使用vmware虚拟机,而是用docker中搭建的。仅是简单的笔记供自己复习查看。
nacos相关配置 数据源配置vim conf/application.properties
主要内容如下:
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
db.url.0=jdbc:mysql://172.17.0.4:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123456
踩坑: 单节点运行与集群方式运行不能共用同一个数据库。如果你一开始使用单节点运行的方式,创建集群的时候,要重新创建一个数据库。数据初始化脚本在nacos/conf/nacos-mysql.sql
复制nacos/conf/cluster.conf.example
为nacos/conf/cluster.conf
我此次的配置内容如下:
172.17.0.5:8848
172.17.0.6:8848
172.17.0.7:8848
创建虚拟机
Nacos需要JDK才可以使用,我这里使用的是JDK1.8由主机提供-v /home/.share/.cache/apex/.soft/jdk:/home/jdk
。
docker run --name Nacos-Cluster-A -it -m 1024M --memory-swap -1 -v /home/.share/.cache/apex/.soft/jdk:/home/jdk ubuntu bash
封装镜像
docker commit -p 3bd9881d4423 nacos-cluster
启动节点
利用刚才创建的镜像,启动节点Nacos-Cluster-B
docker run --name Nacos-Cluster-B -it -m 1024M --memory-swap -1 -v /home/.share/.cache/apex/.soft/jdk:/home/jdk nacos-cluster bash
利用刚才创建的镜像,启动节点Nacos-Cluster- C
docker run --name Nacos-Cluster-C -it -m 1024M --memory-swap -1 -v /home/.share/.cache/apex/.soft/jdk:/home/jdk nacos-cluster bash
启动nacos服务节点
启动服务
/root/nacos/bin/startup.sh
日志查询
tail -f /root/nacos/logs/start.out
docker查IP地址
docker inspect --format '{{ .NetworkSettings.IPAddress }}' 3bd9881d4423
nginx配置
nacos集群的管理控制台的代理。
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
# multi_accept on;
}
http {
server_names_hash_bucket_size 64;
upstream nacoscluster {
server nacos-cluster-a:8848 weight=3 ;
server nacos-cluster-b:8848 weight=1 ;
server nacos-cluster-c:8848 weight=2 ;
}
server {
listen 8848;
server_name nacos-proxy;
location / {
proxy_pass http://nacoscluster;
root /nacos/;
}
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
server {
listen 80;
server_name consumer-springboot-80;
# Nginx config example
location / {
proxy_pass http://127.0.0.1:12306;
proxy_http_version 1.1;
proxy_read_timeout 300;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-PORT $remote_port;
}
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
}
参考
《P36 0402_【掌握】Nacos服务集群-李兴华》https://www.bilibili.com/video/BV1e44y1C7CQ?p=36