Nacos2.0.3集群搭建

news2024/10/5 13:49:28

集群搭建

前置条件

  • 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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/62362.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

爆肝!阿里最新版的Spring Security源码手册,强行霸占GitHub榜首

写在前面 Spring Security 的前身是 Acegi Security,在被收纳为Spring 子项目后正式更名为Spring Security。在笔者成书时,Spring Security已经升级到5.1.3.RELEASE版本,加入了原生OAuth2.0框架,支持更加现代化的密码加密方式。 …

你入职的时候一定要问领导要的maven私服配置文件,它是什么?Nexus入门使用指南

上一篇教大家如何在Linux搭建Nexus Linux安装Nexus(图文解说详细版) 文章目录🙋登录Nexus👰在maven中配置自己的私服地址🙇在idea中使用nexus作为maven私服💑 引用nexus里面的jar包💇配置maven文…

【NLP】自然语言处理的语料库与词库

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

双十二有哪些实用性强的数码好物?值得入手的实用数码好物推荐

赶在年末的双十二快来了,大家有没有心仪的数码好物正在购物车里蠢蠢欲动呢?入手数码产品最重要的还是要看其实用性强不强,下面,我整理了一份值得入手的实用数码好物清单,希望能给大家有个参考。 一、蓝牙耳机 蓝牙耳…

10、Springboot整合Security很全

1.什么是Security SpringSecurity是基于Spring AOP和Servlet过滤器的安全框架。 它提供全面的安全性解决方案,同时在Web 请求级和方法调用级处理身份确认和授权。 2.Spring Security核心功能? (1)认证(你是谁&…

Java集合容器面试题(2023最新版)

集合容器概述 什么是集合 集合框架:用于存储数据的容器。 集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。 任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。 接口:表示集合的抽象数据类型。接口…

王洪伟:流体力学与微积分方法求解水池进排水问题

作者 | 王洪伟 北京航空航天大学副教授,仿真秀专栏作者 导 读:经过了几篇略显烧脑的文章后,来一篇轻松一点的,经典的小学数学应用题。 1、问题分析 题:一个水池有一个进水管和一个排水管。只开进水管,2个…

Linux常用命令总结

目录和文件命令 (1)用户目录:位于/home/user,称之为用户工作目录; (2)ls:是英文单词list的简写,其功能为列出目录的内容; ls -a 列出隐藏文件,文…

CAS号:67131-52-6, 三肽Ala-Ala-Tyr

H-Ala-Ala-Tyr-OH 用于合成突变型多肽。H-Ala-Ala-Tyr-OH can be synthesized mutant peptides[1][2]. 编号: 193893中文名称: 三肽Ala-Ala-TyrCAS号: 67131-52-6单字母: H2N-AAY-OH三字母: H2N-Ala-Ala-Tyr-COOH氨基酸个数: 3分子式: C15H21N3O5平均分子量: 323.34精确分子量:…

Vue学习:分析hello案例

一个vue实例&#xff0c;接管不了两个容器 和 多个实例&#xff0c;一个容器都不允许 容器实例必须一对一 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" conten…

Nexus存储库管理器搭建-Maven私服

写在前面 &#x1f341;个人主页&#xff1a;微枫Micromaple ✨本期专栏&#xff1a;《0到1项目搭建》欢迎订阅学习~ &#x1f4cc;源码获取&#xff1a;GitCode、GitHub、码云Gitee 持续更新中&#xff0c;别忘了 star 喔~ 在企业开发过程中&#xff0c;就比如说我们Java程序员…

Linux内核中ideapad-laptop.c文件全解析10

接前一篇文章《Linux内核中ideapad-laptop.c文件全解析9》&#xff0c;地址为&#xff1a; Linux内核中ideapad-laptop.c文件全解析9_蓝天居士的博客-CSDN博客 本文针对于上一篇文章提到的配置选项"CONFIG_LEDS_BRIGHTNESS_HW_CHANGED"进行详细分析。在make menuco…

python -- PyQt5(designer)中文详细教程(五)对话框

对话框 对话框是⼀个现代GUI应用不可或缺的⼀部分。对话是两个人之间的交流&#xff0c;对话框就是⼈与电脑之 间的对话。对话框用来输⼊数据&#xff0c;修改数据&#xff0c;修改应用设置等等。 输入文字 QInputDialog 提供了⼀个简单方便的对话框&#xff0c;可以输入字符…

SpringBoot 玩一玩代码混淆,防止反编译代码泄露!

编译 简单就是把代码跑一哈&#xff0c;然后我们的代码 .java文件 就被编译成了 .class 文件 反编译 就是针对编译生成的 jar/war 包 里面的 .class 文件 逆向还原回来&#xff0c;可以看到你的代码写的啥。 比较常用的反编译工具 JD-GUI &#xff0c;直接把编译好的jar丢进…

深度学习 LSTM长短期记忆网络原理与Pytorch手写数字识别

深度学习 LSTM长短期记忆网络原理与Pytorch手写数字识别一、前言二、网络结构二、可解释性三、记忆主线四、遗忘门五、输入门六、输出门七、手写数字识别实战7.1 引入依赖库7.2 加载数据7.3 迭代训练7.4 数据验证八、参考资料一、前言 基本的RNN存在梯度消失和梯度爆炸问题&am…

毕业设计-基于机器视觉的深蹲检测识别-TensorFlow-opencv

目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 &#x1f4c5;大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科…

LeetCode刷题复盘笔记—一文搞懂完全背包之377. 组合总和 Ⅳ问题(动态规划系列第十二篇)

今日主要总结一下动态规划完全背包的一道题目&#xff0c;377. 组合总和 Ⅳ 题目&#xff1a;377. 组合总和 Ⅳ Leetcode题目地址 题目描述&#xff1a; 给你一个由 不同 整数组成的数组 nums &#xff0c;和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的…

[附源码]计算机毕业设计基于web的羽毛球管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Python软件编程等级考试一级——20220915

Python软件编程等级考试一级——20220915理论单选题判断题实操第一题第二题理论 单选题 1、表达式len(“学史明理增信 &#xff0c;读史终生受益”) > len(" reading history will benefit you ")的结果是&#xff1f; A、0 B、True C、False D、1 2、表达…

SLMi333国内首款兼容光耦带DESAT保护功能的隔离式栅极驱动器

SLMi333国内首款兼容光耦带DESAT保护功能的隔离式栅极驱动器,内置快速去饱和&#xff08;DESAT&#xff09;故障检测功能&#xff0c;米勒钳位功能&#xff0c;漏极开路故障反馈&#xff0c;软关断功能以及可选择的自恢复模式&#xff0c;兼容光耦隔离驱动器&#xff0c;一款高…