Nacos2.1.1集群和持久化配置以及Nginx负载均衡分发(重点)

news2025/7/15 13:39:45

Nacos集群和持久化配置(重点)

1、官网说明

官网文档地址:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EEBssvgr-1668556332086)(image/128、nacos集群架构图.png)]

对如上图片进行翻译如下

根据下图,需要配置MySQL作为持久化保存Nacos的信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dh94uDuE-1668556332088)(image/129、架构图翻译.png)]

默认Nacos使用嵌入式数据库实现数据的存储。所以,如果启动多个默认配置下的Nacos节点,数据存储是存在一致性问题的。为了解决这个问题,Nacos采用了集中式存储的方式来支持集群化部署,目前只支持MySQL的存储

1.1、nacos三种部署环境

官网文档:https://nacos.io/zh-cn/docs/deployment.html

  • 单机模式 - 用于测试和单机试用。
  • 集群模式 - 用于生产环境,确保高可用。
  • 多集群模式 - 用于多数据中心场景。

单机模式支持mysql

在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力,具体的操作步骤:

  • 1.安装数据库,版本要求:5.6.5+
  • 2.初始化mysql数据库,数据库初始化文件:nacos-mysql.sql
  • 3.修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。
spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://xxx.xxx.xxx.xxx:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos_devtest
db.password=youdontknow

再以单机模式启动nacos,nacos所有写嵌入式数据库的数据都写到了mysql

2、Win版Nacos持久化配置解释

2.1、Nacos默认自带的是嵌入式数据库derby

GitHub查看官网地址:https://github.com/alibaba/nacos/blob/develop/config/pom.xml

自身的pom.xml依赖文件有derby配置,同样的也具有mysql的依赖,通过后面的配置可以结合mysql实现配置持久化

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>
<!--自身携带的小型数据库-->
<dependency>
    <groupId>org.apache.derby</groupId>
    <artifactId>derby</artifactId>
</dependency>

2.2、derby到mysql切换配置步骤

在存放nacos\nacos-server-2.1.1\nacos\conf路径下可以看到mysql的脚本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-djqDwNYj-1668556332088)(image/130、mysql数据库脚本.png)]

将上面的脚本在本地的mysql中创建一个新的数据库nacos_config,然后执行上面sql脚本生成数据库的具体内容

修改conf/application.properties文件

参考官网的手册【单机模式支持mysql】

在配置文件中添加如下的连接消息,改为自己的连接即可

spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://127.0.0.1:13306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=1234

重启Nacos

startup.cmd -m standalone

重新访问nacos可以看出之前的数据已经全部的清空的,是因为切换了数据库为mysql,下面通过新增一条配置列表数据,然后查看nacos_config数据库中是否持久化的保存

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7e63HNag-1668556332089)(image/131、持久化nacos数据到mysql.png)]

3、Linux版Nacos集群配置(2.1.1版本)+MySQL持久化配置+Nginx负载均衡

预计需要,1个Nginx+3个nacos注册中心+1个mysql

具体的单接节点的安装已经在第一篇的时候已经写过了,下面的就是编写集群的安装步骤

2.1、Linux版安装Nacos

2.2、集群配置步骤(重点)

1、Linux服务器上mysql数据库配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v0wuQeVp-1668556332089)(image/132、nacos的数据库脚本.png)]

将自带的sql脚本在自己的虚拟机Linux系统MySQL中运行,具体还是参考上面win版本的配置

2、application.properties 配置连接sql

位置:/nacos/conf/application.properties,在配置文件里面添加如下内容,指定自己虚拟机的数据库连接信息

spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://127.0.0.1:13306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=1234

启动项目sh startup.sh -m standalone测试是否可以正常的登录以及数据是否持久化的存储在MySQL数据库中,如上操作成功之后才进行下面的集群部署操作

对应新版本的nacos集群配置与之前的配置又有所不同了,需要查看具体的官网升级说明文档:https://nacos.io/zh-cn/docs/2.0.0-compatibility.html

如果启动日记出现Unable to start embedded Tomcat提示错误,基本都是配置连接mysql数据库的问题了,将项目的所有进程杀掉并重启虚拟机再运行查看

3、Linux服务器上nacos的集群配置cluster.conf

梳理出3台nacos集器的不同服务端口号,以及对nacos进行分组

  1. 复制cluster.conf保留原来的备份

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DeNSDsm7-1668556332090)(image/133、复制备份cluster.png)]

  1. 编写clister.conf文件端口

注释原来的内容,一定要使用自己虚拟机的网卡地址【ip addr查看】,如果不使用不同的端口,nacos都是8848导致集群启动失败

# 查看虚拟机的IP
hostname -I

#2022-09-27T19:20:05.572
192.168.26.131:8851
192.168.26.131:8861
192.168.26.131:8871

==注意:==这里没有使用连续端口,因为Nacos2.0以后启动一个Nacos就会占用连续的两个端口。

如果使用连续的端口,当启动第二个Nacos集群节点时,会报如下错误:

Address already in use: bind
  1. 复制两份内容修改启动端口号后再进行分别启动

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yvUlh1V9-1668556332090)(image/137、复制Nacos.png)]

【application.properties】下的nacos端口号需要对应,不需要再修改【cluster.conf】

  1. server.port=8851
  2. server.port=8861
  3. server.port=8871
执行的方式

根据官网给出的集群启动命令,需要进入到每一个/bin文件里面执行

# 集群启动,使用外置数据源
sh startup.sh

当启动nacos10秒后查看/nacos8851/logs/start.out启动配置文件的最后面出现如下命令即可视为集群启动成功

2022-09-27 20:18:53,465 INFO The server IP list of Nacos is [xxx.xxx.xxx.xxx:8851, xxx.xxx.xxx.xxx:8861, xxx.xxx.xxx.xxx:8871]
2022-09-27 20:15:39,892 INFO Nacos is starting...

2022-09-27 20:15:40,894 INFO Nacos is starting...

2022-09-27 20:15:41,897 INFO Nacos is starting...

2022-09-27 20:15:42,904 INFO Nacos is starting...

2022-09-27 20:15:43,914 INFO Nacos is starting...

2022-09-27 20:15:44,163 INFO Nacos started successfully in cluster mode. use external storage

8851/8861/8871启动完成后查看启动的nacos集群数据

ps -ef|grep nacos|grep -v grep|wc -l
  1. 通过指定的端口号访问Nacos查看是否正常的连接和登录进去

需要注意的是改为主机的虚拟机IP地址

http://xxx.xxx.xxx.xxx:8851/nacos/index.html
http://xxx.xxx.xxx.xxx:8861/nacos/index.html
http://xxx.xxx.xxx.xxx:8871/nacos/index.html

UP代表启动正常,DOWN代表该节点并不在线。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wQSbycVg-1668556332091)(image/138、Nacos集群节点.png)]

  1. Nginx的配置,由它作为负载均衡器

虚拟机需要安装有Nagix环境,找到自己的配置文件/root/nginx-1.22.0/conf/nginx.conf备份并修改里面的内容实现负载均衡

# 备份配置文件
cp nginx.conf nginx.conf.bk

修改后的内容

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p4Hau8Mq-1668556332091)(image/134、修改nginx.png)]

后面指定配置nginx.conf配置文件的启动

  1. 截止到此处,1个Nginx+3个nacos注册中心+1个mysql

在上面已经启动了集群Nacos集群三个,这里就不再赘述了

  • 进入安装Nginx的目录,指定启动配置文件
# 启动Nginx,-c 指定启动配置文件
./nginx -c /opt/nginx/conf/nginx.conf

# 查看指定访问情况
ps -ef | grep nginx

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HelYd5zs-1668556332092)(image/136、启动nginx.png)]

4、通过Nginx负载均衡访问Nacos集群

根据上图修改nginx.conf配置文件可以得知拦截的是启动访问的80端口,如下

需要使用自己虚拟机的IP地址进行访问

http://xxx.xxx.xxx.xxx/nacos/#/login

在Nacos配置中心中添加配置查看Linux系统中的数据库是否出现添加的内容,如果说明Linux的Nacos持久化就完成了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GOyI5Fuw-1668556332092)(image/139、添加Nacos配置文件.png)]

查看数据库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UAZPCLZH-1668556332093)(image/140、虚拟机nacos持久化.png)]

4、微服务cloudalibaba-provider-payment9002启动注册进nacos集群

4.1、修改9002服务提供者YAML配置文件

需要注意的是,下面的配置使用到了虚拟机的端口,一定需要配置成自己的虚拟机IP地址,否则会连接不上

spring:
  application:
    name: nacos-payment-provider
  cloud:
    nacos:
      discovery:
        server-addr: xxx.xxx.xxx.xxx:80 # 修改为Nginx访问地址,通过负载均衡分发到虚拟机的nacos
      # server-addr: localhost:8848 # win配置Nacos地址

4.2、启动9002访问提供者查看Nacos服务注册列表

启动项目后,后端没有出现错误就可以查看前端的nacos查看是否有注册到列表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CZmC9uaU-1668556332093)(image/141、nginx注册服务实例.png)]

5、总结图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cch7hlpN-1668556332094)(image/142、nacos总结图.png)]

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

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

相关文章

如何在 Visual Paradigm 中创建流程图丨使用教程

让我们看看如何在 Visual Paradigm 中绘制流程图。我们将在这里使用一个非常简单的流程图示例。完成本教程后&#xff0c;您可以扩展示例。 1.从主菜单中选择图表 > 新建。 2.在New Diagram窗口中&#xff0c;选择Flowchart并单击Next。 3.您可以从空图表开始&#xff0c;…

股价暴跌了74.5%后,乐信第三季度财报可能会低于市场预期

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 乐信2022年第三季度财报前瞻 此前&#xff0c;乐信(LX)曾在2022年11月10日宣布&#xff0c;公司将于2022年11月16日发布2022年第三季度财报。 猛兽财经认为&#xff0c;乐信2022年第三季度的实际财务业绩可能会令市场失望。…

最佳使用案例NO.1–干涉测量

为了营造今年的节日气氛&#xff0c;我们决定发布4份特别的新闻通讯展示我们的“2019最佳使用案例” 在VirtualLab Fusion中所实现的快速物理光学技术为著名的干涉仪的快速仿真提供了强有力的工具&#xff0c;从而使我们能够研究干涉图样中的相干和色散效应。 基于物理光学的Vi…

webpack5 Css 兼容性处理postcss-loader

postcss-loader | webpack 中文文档webpack 是一个模块打包器。它的主要目标是将 JavaScript 文件打包在一起&#xff0c;打包后的文件用于在浏览器中使用&#xff0c;但它也能够胜任转换&#xff08;transform&#xff09;、打包&#xff08;bundle&#xff09;或包裹&#xf…

震撼来袭,最具中国特色的微服务组件:新一代SpringCloud Alibaba

都说程序员工资高、待遇好&#xff0c; 2022 金九银十到了&#xff0c;你的小目标是 30K、40K&#xff0c;还是 16薪的 20K&#xff1f;作为一名 Java 开发工程师&#xff0c;当能力可以满足公司业务需求时&#xff0c;拿到超预期的 Offer 并不算难。然而&#xff0c;提升 Java…

【嵌入式 · 机器人】在 Linux 下安装 ROS2(机器人操作系统)

安装要求 安装 ROS2 需要保证 Linux 系统的发行版是 Ubuntu&#xff0c;并且不同版本的 Ubuntu 只能安装对应版本的 ROS2。 系统不是 Ubuntu 怎么办&#xff1f; 系统是 Mac OS 或 Windows&#xff1a;安装一个 Ubuntu 的虚拟机&#xff0c;在虚拟机里安装 ROS2。&#xff08;…

【深入浅出Spring6】第三期——作用域和工厂模式

一、Bean 的作用域 作用域以下用 scope 代替&#xff0c;在不同的应用情景下可以使用的参数值下是不同的我们以普通 Java 工程为例&#xff1a;可选的参数值有两个 singleton、prototype $ singleton 默认情况下&#xff0c;scope 的属性值就为 singleton,当然我们也可以显式…

一种清洁机器人设计及仿真

目 录 第1章 绪论 1 第2章 清洁机器人路径规划方法的分类及现状 5 2.1 基于事例的学习规划方法 5 2.2 基于环境模型的规划方法 6 2.3 基于行为的结构 7 第3章 清洁机器人的设计任务及方案分析 10 3.1 清洁机器人竞赛介绍 10 3.2 设计任务分解 11 3.3 清洁机器人任务分析及基于行…

Unity和UE4两大游戏引擎,你该如何选择?

目录 游戏引擎 2 ——> 难易区别 编程语言 3 ——> 游戏产品 UE4制作的游戏产品 Unity制作的游戏产品 产品类型 5 ——> 资源商店 6 ——> 人才需求 平均薪资 总结 游戏引擎 Unity和UE4都是游戏引擎&#xff0c;所谓游戏引擎就是集成了复杂功能的游戏…

短视频/直播+教育成为教育新常态

互联网时代&#xff0c;网络视听应用已经成为吸引新网民的主要力量&#xff0c;2020年&#xff0c;在新增的3625万网民中&#xff0c;有23.9%是为了使用网络视听应用而来。网络视听应用中&#xff0c;最受欢迎的当属短视频&#xff0c;已然成为新的国民级应用行业。 如今&…

Excel之数据透视NotePad之列编辑

在日常工作中&#xff0c;经常有数据处理的需求&#xff0c;要统计个数&#xff0c;这里就可以使用到工具的一些功能&#xff0c;如 Excel、Notepad&#xff0c;记录下来&#xff0c;分享功能。 一、Excel 软件 Excel 功能过于强大&#xff0c;下面只是简单分享下日常使用到的…

【附源码】计算机毕业设计JAVA大数据文章发布系统

【附源码】计算机毕业设计JAVA大数据文章发布系统 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JAVA …

C++ Reference: Standard C++ Library reference: Containers: deque: deque: begin

C官网参考链接&#xff1a;https://cplusplus.com/reference/deque/deque/begin/ 公有成员函数 <deque> std::deque::begin C98 iterator begin(); const_iterator begin() const; C11 iterator begin() noexcept; const_iterator begin() const noexcept;返回指向开始…

基于五等均分法和Bob Stone法衡量RFM顾客价值

最近学习了衡量RFM模型的两种顾客价值的方法&#xff0c;即五等均分法和Bob Stone法。仅以此博客记录我的学习过程&#xff0c;后序学习到了其他方法再来补充。关于RFM实战案例可参考我的其他文章大数据分析案例-基于RFM模型对电商客户价值分析 大数据分析案例-用RFM模型对客户…

p53 与铁死亡有关?Nature 解锁新机制

众所周知&#xff0c;p53 是一种肿瘤抑制基因&#xff0c;被广泛称为“基因组的守护者”。自 1979 年被发现至今&#xff0c;p53 基因一直是分子生物学和肿瘤学的研究热门。据 Elie Dolgin 在 Nature 上发表的 “The most popular genes in the human genome” 统计&#xff0c…

wpf Viewport3D 学习

呈现 Viewport3D 元素的 2-D 布局范围内包含的 3-D 内容。就是3D画布&#xff0c; 继承 Object DispatcherObject DependencyObject Visual UIElement FrameworkElement Viewport3D 从FrameworkElement继承&#xff0c;FrameworkElement继承自UIElement&#xff1b; 该 V…

(五)Spring之Bean的作用域

文章目录环境单例的&#xff08;singleton&#xff09;多例的&#xff08;prototype&#xff09;其它scope自定义scope上一篇&#xff1a;&#xff08;四&#xff09;Spring对IoC的实现 环境 spring6里程碑版本的仓库 依赖&#xff1a;spring context依赖、junit依赖、log4j2…

【单片机基础】单片机中断和定时

中断什么是中断&#xff1f;中断IE寄存器中断查询次序例程定时器/计数器实现定时的方法&#xff1f;定时计数的概念什么是单片机定时器/计数器&#xff1f;定时器/计数器内部结构定时器的相关寄存器51单片机定时器初值计算方法详解例程中断 什么是中断&#xff1f; 中断是为使…

VINS学习(二)IMU预积分原理与实现

VINS学习&#xff08;二&#xff09;IMU预积分原理与实现一、连续时间下的IMU积分二、连续时间下的IMU预积分三、离散时间下的IMU预积分1. 欧拉法2. 中值法四、连续时间下的IMU状态误差传递五、离散时间下的IMU状态误差传递六、预积分量关于零偏的雅克比七、VINS代码实践1.预积…

【文末福利】半导体封装率先国产化,400+封装厂商最新名单汇总

根据我国国民经济“九五”计划至“十四五”规划&#xff0c;可窥见多方政策都在积极支持我国集成电路的发展&#xff0c;近几年更是强调突破集成电路关键技术&#xff0c;集中力量发展集成电路。其中封测技术作为集成电路制造的后道工艺&#xff0c;在整个集成电路产业链中扮演…