Nacos2.0.3集群搭建
创始人
2024-03-18 21:59:44

集群搭建

前置条件

  • JDK 1.8
  • MySQL 5.7.29
  • Nacos 2.0.3

搭建过程

  1. 将Nacos安装包上传至三个服务器,本次搭建使用三个端口来模拟三个不同的主机
  2. 解压: tar -zvxf nacos-server-2.0.3.tar.gz
  3. Nacos持久化,首先确保服务器已经安装MySQL(Nacos持久化要求MySQL版本在5.6.5以上),如果不持久化,会造成Nacos重启后,配置文件丢失,无法持久化
    1. 首先在MySQL中新建一个数据库(nacos_config)

    2. nacos的脚本存放位置: nacos/conf/nacos-mysql.sql

       

    3. 将nacos脚本导入到新建的数据库中,导入成功后如下。

 

  1. 修改Nacos的配置文件,配置mysql持久化,位置位于nacos/conf/application.properties​​​​​​​

将数据连接改为mysql ,配置数据库的连接驱动,账号密码等

 

### If use MySQL as datasource:
spring.datasource.platform=mysql### Count of DB:
db.num=1### Connect URL of DB:
db.url.0=jdbc:mysql://你的数据库ip:3306/nacos_dev?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user.0=用户名
db.password.0=密码
  1. 配置cluster.conf
    1. 确定好三个端口号(注意三个端口不要连着,下面会说原因)

    2. 把conf文件下cluster.conf.example文件重命名,去掉.example cp cluster.conf.example cluster.conf

       

    3. 修改文件内容,vim cluster.conf,注意:这个IP不能写127.0.0.1,必须是Linux命令hostname -i能够识别的IP​​​​​​​

       

XX.XXX.XXX.XX:XXXX # 节点1
XX.XXX.XXX.XX:XXXX # 节点2
XX.XXX.XXX.XX:XXXX # 节点3
  1. 将nacos复制三份,在nacos/conf/application.properties中修改端口号(端口号不要连着)​​​​​​​

  2. 启动服务:三台服务器依次启动。

     

    1. 进入nacos/bin
    2. 执行 ./startup.sh

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

 

# nacos服务器grpc相关地址和端口,需要nginx已经有stream模块
stream {upstream nacos-server-grpc {server 127.0.0.1:9847;server 127.0.0.1:9852;server 127.0.0.1:9858;}server {listen 9888;proxy_pass nacos-server-grpc;}
}http {upstream cluster {server 127.0.0.1:8847;server 127.0.0.1:8852;server 127.0.0.1:8858;}server {listen       8888;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {#root   html;#index  index.html index.htm;proxy_pass http://cluster;}}

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

  • 这样修改后项目连接中需要增加访问的账号密码

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...