Nacos2.0.3集群搭建
集群搭建
前置條件
- JDK 1.8
- MySQL 5.7.29
- Nacos 2.0.3
搭建過程
首先在MySQL中新建一個數據庫(nacos_config)
nacos的腳本存放位置: nacos/conf/nacos-mysql.sql
將nacos腳本導入到新建的數據庫中,導入成功后如下。
將數據連接改為mysql ,配置數據庫的連接驅動,賬號密碼等
確定好三個端口號(注意三個端口不要連著,下面會說原因)
把conf文件下cluster.conf.example文件重命名,去掉.example cp cluster.conf.example cluster.conf
修改文件內容,vim cluster.conf,注意:這個IP不能寫127.0.0.1,必須是Linux命令hostname -i能夠識別的IP
將nacos復制三份,在nacos/conf/application.properties中修改端口號(端口號不要連著)
啟動服務:三臺服務器依次啟動。
nginx 反向代理
- nacos2.x有個大坑,現在即使是搭建nacos集群成功了,但是java程序注冊服務進nacos集群中,啟動時報錯Connection is unregistered.或Client not connected,current status:STARTING.
- 原因如下:一個nacos啟動默認端口是8848,那么nacos同時也會啟動9848這個grpc端口。 grpc端口 (9848)= 啟動端口(8848) + 1000,同理我nacos集群啟動了三個nacos 端口分別為8847,8852,8858,那么這三個nacos也會啟動 9847,9852,9858.,因為我們已經用nginx代理服務器的8848反向代理 三個nacos 端口分別為8847,8852,8858。但是我們還沒有 代理三個nacos端口9847,9852,9858.
- 我采用的解決辦法是,用nginx代理他的grpc端口,但是因為Nginx對于gRPC不適合長連接的操作。所以更好的解決方法為:用nginx來帶來nacos的8848端口,用haproxy來代理9848的grpc端口。本文沒有實現,想實現可以參考https://blog.csdn.net/qq_39009944/article/details/123634837?spm=1001.2014.3001.5502
Nginx 相關命令:
啟動nginx命令(指定配置文件啟動)
nginx/sbin/nginx -c /nginx/conf/nginx.conf
關閉
nginx/sbin/nginx -s stop
重啟
nginx/sbin/nginx -s reload
啟動效果
問題總結
集群配置連續端口時端口占用問題
順序啟動8848則連帶啟動9848與9849端口。再啟動8849則需連帶啟動9849與9850,9849端口沖突。
解決未授權訪問漏洞
修改application.properties配置項
### If turn on auth system: nacos.core.auth.enabled=true- 這樣修改后項目連接中需要增加訪問的賬號密碼
總結
以上是生活随笔為你收集整理的Nacos2.0.3集群搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: avro java_avro序列化框架实
- 下一篇: ofo打响共享单车广告战第一枪,单车大战