ActiveMq学习⑨__基于zookeeper和LevelDB搭建ActiveMQ集群

news2024/11/25 20:38:10

引入消息中间件后如何保证其高可用?
基于zookeeper和LevelDB搭建ActiveMQ集群。集群仅提供主备方式的高可用集群功能,避免单点故障
http://activemq.apache.org/masterslave
在这里插入图片描述
LevelDB,5.6版本之后推出了LecelDB的持久化引擎,它使用了自定义的索引代替常用的BTree索引,其持久化性能高于KahaDB,虽然默认的持久化方式还是KahaDB,但是LevelDB可能会是趋势。
在5.9版本还提供了基于LevelDB和Zookeeper的数据复制方式,作为Master-Slave方式的首选数据复制方案。

Zookeeper+LevelDB的Master-Slave

从ActiveMQ5.9开始,ActiveMQ的集群实现方式取消了传统的Masster-Slave方式。增加了基于Zookeeper+LevelDB的Master-Slave实现方式,从5.9版本后也是官网的推荐。
基于Zookeeper和LevelDB搭建ActiveMQ集群,集群仅提供主备方式的高可用集群功能,避免单点故障。
官网:http://activemq.apache.org/replicated-leveldb-store

Replicated LevelDB Store使用Apache ZooKeeper从一组配置为复制LevelDB存储的代理节点中选择一个master。然后将所有从LevelDB存储与主机同步,通过从主机复制所有更新来保持它们的最新状态。
Replicated LevelDB Store使用与LevelDB存储相同的数据文件,因此您可以随时在已复制和未复制之间切换代理配置。

官网集群原理图

在这里插入图片描述
节点仲裁是什么
ActiveMQ节点仲裁是指在ActiveMQ集群中,当某个节点失效时,其他节点需要通过选举产生一个新的主节点来保证集群的正常运行。
集群中仲裁节点的作用
节点仲裁的作用是确保集群中只有一个主节点,避免出现多个主节点导致消息重复消费或消息丢失等问题。节点仲裁通常是通过ZooKeeper来实现的,ZooKeeper会监控ActiveMQ集群中各个节点的状态,并在节点失效时进行选举产生新的主节点。

说明:
使用Zookeeper集群注册所有的ActiveMQ Broker但`只有其中一个Broker可以提供服务,它将被视为Master,其他的Broker处于待机状态被视为Slave。
如果Master因故障而不能提供服务,Zookeeper会从Slave中选举出一个Broker充当Master。Slave连接Master并同步他们的存储状态,Slave不接受客户端连接。所有的存储操作都将被复制到连接至Maste的Slaves。
如果Master宕机得到了最新更新的Slave会变成Master。故障节点在恢复后会重新加入到集群中并连接Master进入Slave模式。

所有需要同步的消息操作都将等待存储状态被复制到其他法定节点的操作完成才能完成。
所以,如给你配置了replicas=3,name法定大小是(3/2)+1 = 2。Master将会存储更新然后等待(2-1)=1个Slave存储和更新完成,才汇报success,至于为什么是2-1,阳哥的zookeeper讲解过自行复习。
有一个node要作为观察者存在。当一个新的Master被选中,你需要至少保障一个法定node在线以能够找到拥有最新状态的node,这个node才可以成为新的Master。

因此,推荐运行至少3个replica nodes以防止一个node失败后服务中断。

部署规划和步骤

警告

LevelDB已经被官方废弃,不再受到支持。这是因为LevelDB的维护者已经不再维护该项目,而且LevelDB在某些情况下可能会出现数据损坏的问题。因此,官方建议使用更稳定的存储引擎,例如JDBC或KahaDB。但是我们还要学习
在这里插入图片描述

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

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

相关文章

css-inpu边框

效果图: input {width: 225px;height: 25px;background-color: #1469bd00;border: #aca9a97d solid 1px;color: white;font-size: 15pt;box-sizing: conte-box; }input:focus {border-style: solid;border-color: #03a9f4;box-shadow: 0 0 15px #03a9f4;outline: …

基于分钟级降水预报API 的智能农业水资源管理探究

前言 随着农业现代化的发展,越来越多的农业生产活动需要依赖于科学技术的支持。其中,智能农业水资源管理就是依托新型技术手段,实现对水资源的更加精准预报、科学调度的一种管理模式。而基于分钟级降水预报API的智能农业水资源管理&#xff…

【elasticsearch+kibana基于windows docker安装】

创建网络:es和kibana容器互联 docker network create es-net加载镜像 docker pull elasticsearch:7.12.1运行 docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" -e ES_JAVA_OPTS"-Xms512m -Xmx512m" -v $…

有趣的数学 sign是什么函数

在数学中&#xff0c;函数sign指的是符号函数&#xff0c;它的定义如下&#xff1a;对于任意实数x&#xff0c;若x>0&#xff0c;则sign(x)1&#xff1b;若x0&#xff0c;则sign(x)0&#xff1b;若x<0&#xff0c;则sign(x)-1&#xff1b;简单来说&#xff0c;sign函数就…

node版本管理神器|nvm安装使用教程

文章目录 导文安装前提下载安装包进行安装第一步&#xff0c;下载安装包&#xff0c;[nvm下载地址](https://github.com/coreybutler/nvm-windows/releases)第二步&#xff0c;进行安装&#xff0c;点击nvm-setup.exe文件&#xff0c;接受用户协议第三步&#xff0c;选择安装目…

是时候扔掉你的密码了

引言 “密码是人类历史的不朽篇章&#xff0c;它的早期迹象几乎与文字的诞生同期”。正如密码史学家乔尔里维尔所说&#xff0c;密码&#xff0c;作为信息的保护工具&#xff0c;已经存在了数千年。古代人类早期就开始认识到信息的重要性&#xff0c;同时也意识到了保护这些信息…

Win11安装网络打印机

https://support.microsoft.com/zh-cn/windows/%E5%9C%A8-windows-%E4%B8%AD%E5%AE%89%E8%A3%85%E6%89%93%E5%8D%B0%E6%9C%BA-cc0724cf-793e-3542-d1ff-727e4978638b

辐射骚扰整改思路及方法:辐射超标与问题定位 ?

某产品首次EMC测试时&#xff0c;辐射、静电、浪涌均失败。本篇文章就“辐射超标与问题定位”问题进行详细讨论。 一、辐射超标 50MHz 、100MHz 、130MHz 、200MHz&#xff0c;4个频点明显超标&#xff0c;其中130MHz 左右最明显&#xff0c;超出 19dB&#xff1b;后将电路板…

CRM软件:打造高效率团队

对于一家企业来说团队配合紧密&#xff0c;沟通无障碍是业绩增长的基础&#xff0c;要做到高效率团队协作除了需要管理者制定策略还要依赖数字化工具的加成&#xff0c;比如利用CRM软件打造高效团队。 直观展示工作进度 大多数企业每个月都要制作工作报告、频繁召开会议不断的…

plt.imshow()的用法和参数介绍

函数说明 plt.imshow()是Matplotlib中的一个函数&#xff0c;用于显示图像。它可以传递一个二维或三维数组作为image参数&#xff0c; 并将图像数据显示为图形&#xff0c;并对图像进行不同的可视化设置。 关于二维/三维数组的解释说明 image支持的数组形状包括&#xff1a;…

马斯克的AI大模型登场

(有兴趣的可以直接访问官网&#xff1a;Announcing Grok (x.ai)) 对于大火的人工智能&#xff0c;一向冲锋在前的马斯克却表现得慎之又慎。今年4月&#xff0c;马斯克成立xAI&#xff0c;加入AI大战。经过半年多的酝酿&#xff0c;当地时间11月4日&#xff0c;马斯克旗下社交媒…

如何使用 Loadgen 来简化 HTTP API 请求的集成测试

引言 在编写 HTTP 服务的过程中&#xff0c;集成测试 1 是保证程序正确性的重要一环&#xff0c;如下图所示&#xff0c;其基本的流程就是不断向服务发起请求然后校验响应的状态和数据等&#xff1a; 为大量的 API 和用例编写测试是一件繁琐的工作&#xff0c;而 Loadgen 2 正…

-- Could NOT find livox_ros_driver (missing: livox_ros_driver_DIR)

原因 缺少livox_ros_driver 包 解决办法如下 livox_ros_driver 地址 https://github.com/Livox-SDK/livox_ros_driver 下载下来放入ros的工作目录

pyspark连接mysql数据库报错

使用pyspark连接mysql数据库代码如下 spark_conf SparkConf().setAppName("MyApp").setMaster("local")spark SparkSession.builder.config(confspark_conf).getOrCreate()url "jdbc:mysql://localhost:3306/test?useUnicodetrue&characterE…

嵌套合并视频:高效技巧,让您成为视频剪辑大师

随着数字媒体的普及&#xff0c;视频剪辑已经成为一项必备的技能。在众多视频剪辑技巧中&#xff0c;嵌套合并视频是一项核心技能&#xff0c;它可以将多个视频片段合并成一个完整的视频。本文将介绍一些高效技巧&#xff0c;帮助您轻松掌握嵌套合并视频的方法&#xff0c;成为…

Excel中截取特殊字符之前、之间、之后的数据

1、第一个数据&#xff0c;“*” 之前的数据&#xff0c; 公式 &#xff1a;LEFT(J2,FIND("*",J2)-1) 2、第二个数据&#xff0c;两个 “*” 之中的数据&#xff0c; 公式 &#xff1a;MID(J2,FIND("*",J2)1,FIND("*",J2,FIND("*",…

vue项目npm install报错解决

一、报错信息 node-sass4.14.1 postinstall: node scripts/build.js 二、解决方式 &#xff08;1&#xff09;删除未成功安装的 node_modules 文件&#xff1b; &#xff08;2&#xff09;为 node-sass 单独设置镜像源&#xff1b; npm config set sass_binary_sitehttps:/…

构建数字孪生的四大挑战

如果不能解决由数字孪生带来的开发难题&#xff0c;那么企业就无法享受这种技术便利。 数字孪生已经成为企业当前面对的一大机遇&#xff0c;其核心在于利用虚拟副本中的分析数据对未来业务事件开展预测。这不仅能够大大降低决策难度&#xff0c;同时也有助于提升决策效果。 然…

即拼七人团模式让传统企业快速拥有百万用户

​小编介绍&#xff1a;10年专注商业模式设计及软件开发&#xff0c;擅长企业生态商业模式&#xff0c;商业零售会员增长裂变模式策划、商业闭环模式设计及方案落地&#xff1b;扶持10余个电商平台做到营收过千万&#xff0c;数百个平台达到百万会员&#xff0c;欢迎咨询。 七人…

特征漂移指标 PSI

特征漂移指标 PSI 背景描述 稳定性指的是参与对比两者相同指标差异性很小。机器学习使用训练数据&#xff08;训练集和验证集&#xff09;建模&#xff0c;使用测试数据模拟生产环境数据测试模型结果&#xff0c;其建模的假设是&#xff1a;训练数据涵盖了该问题所有的案例数…