Nacos是阿里開源的一個統一配置/注冊中心的開源軟件。
官網:https://nacos.io/
代碼:https://github.com/alibaba/nacos
阿里雲官網有一個現成版本可以免安裝直接用(缺點:每個空間限制200個key) https://acmnext.console.aliyun.com/public
注意:nacos>=1.3.1的版本才開始支持mysql 8.0.x
配置建議:實際運行內存預計使用1.2G左右,建議選擇內存大一點的服務器(2G+)。
實測2G內存的服務器裝了其他的東西,安裝nacos 2.0導致CPU跑滿,主要卡在GC這,換個內存大的服務器(8G)正常運行
一、說明下2.0和1.4版本的的差異(有升級需求的關注下,沒有忽略)
1.1 SQL數據結構上,時間類型的默認值有調整,如下圖(左邊是2.0右邊是1.4)
1.2 索引有變化
1.3 docker容器里的配置文件application.properties
對比沒有變化
二、創建nacos存儲的數據庫
sql鏈接地址:nacos-db.sql ,也可在github發布的壓縮包 路徑nacos\conf\nacos-mysql.sql
里找到
執行sql腳本后如下圖:
三、創建宿主機掛載目錄
主要用於存放nacos日志
mkdir -p /data/nacos/logs/
四、獲取nacos鏡像
docker search nacos
指定版本拉取鏡像的,查看tag
https://hub.docker.com/r/nacos/nacos-server/tags?page=1&ordering=last_updated
docker pull nacos/nacos-server:2.0.0
五、運行容器
官方docker參考:https://nacos.io/zh-cn/docs/quick-start-docker.html
注意:不同nacos版本可能參數有變化,進入容器docker exec -it nacos bash
查看cat /home/nacos/conf/application.properties
里的參數名
MYSQL_SERVICE_DB_PARAM:數據庫鏈接字符串后的參數,默認值:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
傳環境變量運行nacos單機模式(修改下面的數據庫鏈接):
docker run -d \
-v /data/nacos/logs:/home/nacos/logs \
-e TZ="Asia/Shanghai" \
-e PREFER_HOST_MODE=hostname \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=數據庫IP地址 \
-e MYSQL_SERVICE_PORT=數據庫端口 \
-e MYSQL_SERVICE_USER=數據庫賬戶 \
-e MYSQL_SERVICE_PASSWORD=數據庫密碼 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_DB_PARAM= \
-e NACOS_APPLICATION_PORT=8848 \
-p 8848:8848 \
--name nacos \
--restart=always \
nacos/nacos-server:2.0.0
查看運行的nacos容器docker ps -a
如果發生錯誤,無法啟動nacos,查看容器日志docker logs -f --tail=50 nacos
或者查看start.outcat /data/nacos/logs/start.out
查看docker運行狀態docker stats
,下圖第一個nacos是2.0的版本,下面是1.4的版本
配置好數據庫存儲,即使刪除docker容器再重開,配置依然在,便於后續升級nacos版本!!!
六、配置域名 nginx等
nginx參考配置如下,默認賬號密碼:nacos
server {
listen 80;
server_name config.yuming.com; # 綁定域名
location / {
rewrite ^ http://$server_name/nacos redirect;
}
location /nacos {
proxy_pass http://localhost:8848; #反向代理地址+端口
proxy_set_header Host $http_host; #設置Host
proxy_set_header X-Real-Ip $remote_addr; #設置客戶端遠程地址
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
}
}
六、sdk接入說明
鏈接:https://github.com/nacos-group/