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

这篇具有很好参考价值的文章主要介绍了ActiveMq学习⑨__基于zookeeper和LevelDB搭建ActiveMQ集群。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引入消息中间件后如何保证其高可用?
基于zookeeper和LevelDB搭建ActiveMQ集群。集群仅提供主备方式的高可用集群功能,避免单点故障
http://activemq.apache.org/masterslave
ActiveMq学习⑨__基于zookeeper和LevelDB搭建ActiveMQ集群,activemq,学习,zookeeper
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学习⑨__基于zookeeper和LevelDB搭建ActiveMQ集群,activemq,学习,zookeeper
节点仲裁是什么
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。但是我们还要学习
ActiveMq学习⑨__基于zookeeper和LevelDB搭建ActiveMQ集群,activemq,学习,zookeeper文章来源地址https://www.toymoban.com/news/detail-744691.html

到了这里,关于ActiveMq学习⑨__基于zookeeper和LevelDB搭建ActiveMQ集群的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Zookeeper之基于Docker搭建集群

    搭建ZK分布式模式,由2n+1台服务器组成。 搭建集群有两种方式: 单机多服务: 不同服务使用不同的配置文件,配置不同的端口号等。 使用同一个配置不同的server.id,即IP相同,但是端口不同。 多机多服务:各自配置zoo.cfg文件,互相加入各自的服务器列表。 Loader 主节点 :

    2024年02月04日
    浏览(46)
  • 基于Zookeeper搭建Kafka高可用集群(实践可用)

    目录 一、Zookeeper集群搭建 1.1 下载  解压 1.2 修改配置 1.3 标识节点 1.4 启动集群 1.5 集群验证 二、Kafka集群搭建 2.1 下载解压 2.2 拷贝配置文件 2.3 修改配置 2.4 启动集群 2.5 创建测试主题 2.6 写入数据测试 为保证集群高可用,Zookeeper 集群的节点数最好是奇数,最少有

    2024年02月09日
    浏览(42)
  • 【ActiveMQ】Failed to start Apache ActiveMQ (localhost, ID_XXX)

    在尝试使用\\\"binwin64activemq.bat\\\"启动apache-activemq-5.18.2时,出现了以下错误: 错误原因是由于ActiveMQ无法将mqtt://0.0.0.0:1883端口绑定,因为该端口已经被其他进程占用。但是在命令行中输入以下命令并没有返回结果: 解决方法是修改 confactivemq.xml 文件,找到以下部分: 将端口号

    2024年02月10日
    浏览(35)
  • python接收activemq服务器的消息,转发到另外两个activemq服务器消息中

    要使用Python接收ActiveMQ服务器的消息并将其转发到另外两个ActiveMQ服务器,您可以使用Python的pika库。pika是一个流行的AMQP(高级消息队列协议)客户端库,可以与ActiveMQ等消息代理进行交互。 以下是一个简单的示例,演示如何使用pika从ActiveMQ服务器接收消息,并将其转发到另外

    2024年01月19日
    浏览(47)
  • Zabbix监控ActiveMQ

    当我们在线上使用了 ActiveMQ 后,我们需要对一些参数进行监控,比如 消息是否有阻塞,哪个消息队列阻塞了,总的消息数是多少等等。下面我们就通过 Zabbix 结合 Python 脚本来实现对 ActiveMQ 的监控。 一、创建 Activemq Python 监控脚本 因为 CentOS 系统默认安装的是 Python2.7 ,为了

    2024年02月14日
    浏览(41)
  • Activemq存储KahaDb详解

    ActiveMQ在不提供持久化的情况下,数据保存在内存中,一旦应用崩溃或者重启之后,数据都将会丢失,这显然在大部分情况下是我们所不希望的。对此ActiveMQ提供了两种持久化方式以供选择。 kahaDB是一个基于文件,支持事务的、可靠,高性能,可扩展的消息存储器,目前是a

    2024年02月04日
    浏览(33)
  • SpringBoot整合ActiveMQ

    🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开心好久好久😎 📚系列专栏:Java全栈,计算机系列(火速更新中) 💭 格言:种一棵树最好的时间是十年前,其次是现在 🏡动动小手,点个关注不迷路,感

    2024年02月19日
    浏览(35)
  • 如何使用ActiveMQ

    ActiveMQ是Apache的一款开源消息总线,主要用来做消息的分发。使用ActiveMQ,通常需要以下步骤: 一、启动ActiveMQ 首先需要下载ActiveMQ,然后进行启动。启动后,可以在控制台创建队列,初始用户名和密码通常为admin/admin。 二、编写生产者代码 创建一个ConnectionFactory对象,需要指

    2024年01月17日
    浏览(33)
  • ActiveMQ 02 常用API

    事务 用来提交/回滚事务 Purge 清理消息 签收模式 签收代表接收端的session已收到消息的一次确认,反馈给broker ActiveMQ支持自动签收与手动签收 Session.AUTO_ACKNOWLEDGE 当客户端从receiver或onMessage成功返回时,Session自动签收客户端的这条消息的收条。 Session.CLIENT_ACKNOWLEDGE 客户端通过

    2024年04月16日
    浏览(61)
  • ActiveMQ面试题(一)

    什么是ActiveMQ ActiveMQ 服务器宕机怎么办? 丢消息怎么办 持节化消息非常慢 消息的不均匀消费 activeMQ 是一种开源的,实现了 JMS1.1 规范的,面向消息(MOM)的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信 这得从 ActiveMQ 的储存机制说起。 在通常的

    2024年02月07日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包