`

mq的部署方式

 
阅读更多

mq的部署方式

master-slave部署模式

  1)shared filesystem Master-Slave部署方式

  主要是通过共享存储目录来实现master和slave的热备,所有的ActiveMQ应用都在不断地获取共享目录的控制权,哪个应用抢到了控制权,它就成为master。

  多个共享存储目录的应用,谁先启动,谁就可以最早取得共享目录的控制权成为master,其他的应用就只能作为slave

  2)shared database Master-Slave方式

  与shared filesystem方式类似,只是共享的存储介质由文件系统改成了数据库而已

  3)Replicated LevelDB Store方式

  这种主备方式是ActiveMQ5.9以后才新增的特性,使用ZooKeeper协调选择一个node作为master。被选择的master broker node开启并接受客户端连接。其他node转入slave模式,连接master并同步他们的存储状态。slave不接受客户端连接。所有的存储操作都将被复制到连接至Master的slaves。

  如果master死了,得到了最新更新的slave被允许成为master。fialed node能够重新加入到网络中并连接master进入slave mode。所有需要同步的disk的消息操作都将等待存储状态被复制到其他法定节点的操作完成才能完成。所以,如果你配置了replicas=3,那么法定大小是(3/2)+1=2. Master将会存储并更新然后等待 (2-1)=1个slave存储和更新完成,才汇报success。至于为什么是2-1,熟悉Zookeeper的应该知道,有一个node要作为观擦者存在

  单一个新的master被选中,你需要至少保障一个法定node在线以能够找到拥有最新状态的node。这个node将会成为新的master。因此,推荐运行至少3个replica nodes,以防止一个node失败了,服务中断。

 

一、activeMQ主要的几类部署方式比较
1、默认的单机部署(kahadb)
activeMQ的默认存储的单机方式,以本地kahadb文件的方式存储,所以性能指标完全依赖本地磁盘IO,不能提供高可用。
 
2、基于zookeeper的主从(levelDB Master/Slave
5.9.0新推出的主从实现,基于zookeeper来选举出一个master,其他节点自动作为slave实时同步消息。
因为有实时同步数据的slave的存在,master不用担心数据丢失,所以leveldb会优先采用内存存储消息,异步同步到磁盘。所以该方式的activeMQ读写性能都最好,特别是写性能能够媲美非持久化消息。
优点:
实现高可用和数据安全
性能较好
缺点:
因为选举机制要超过半数,所以最少需要3台节点,才能实现高可用。
 

3、基于共享数据库的主从(Shared JDBC Master/Slave)

可以基于postgres、mysql、oracle等常用数据库(也可以缓存redis啊)。
每个节点启动都会争抢数据库锁,从而保证master的唯一性,其他节点作为备份,一直等待数据库锁的释放。
因为所有消息读写,其实都是数据库操作,activeMQ节点本身压力很小,性能完全取决于数据库性能。
优点:
实现高可用和数据安全
简单灵活,2台节点就可以实现高可用
缺点:
稳定性依赖数据库
性能依赖数据库
分享到:
评论

相关推荐

    MQ安装部署手册&配置&测试&常用命令

    MQ+for+Linux+安装配置手册.pdf mq安装手册1.doc WAS+6.1安装手册installation+guide.pdf WebShpere MQ 配置与测试.txt WebSphere MQ 常用命令.txt

    WebSphere MQ 多实例部署方案

    WebSphere MQ 多实例部署方案是一种高级别的高可用性(HA)配置,旨在增强消息中间件的稳定性,确保服务在单个实例失败时仍能继续运行。这一特性自MQV7.0.1版本开始引入,是WebSphere MQ产品的一个核心组件。多实例...

    WebSphere 集群部署(含MQ、Oracle和IHS配置)

    ### WebSphere 集群部署详解(含MQ、Oracle和IHS配置) #### 一、概述 本文将详细介绍如何在WebSphere环境下搭建集群,并配置相关的MQ、Oracle数据库以及IHS(IBM HTTP Server)等组件。这是一篇面向高级系统管理...

    Websphere MQ资料集合(包含精通mq、mq java编程、mq编程模式、mq for linux等)

    4. **Java编程接口(JMS)**:了解Java Message Service(JMS)API,它是Java开发人员与MQ交互的标准方式,学习发送和接收消息的代码示例。 5. **MQ编程模式**:探索各种MQ编程模式,如同步和异步消息处理,以及...

    MQ9.0全平台安装包,百度链接

    这款全平台安装包包含了MQ9.0在不同操作系统上运行所需的所有组件,旨在简化安装过程,便于用户在自己的环境中部署和配置MQ服务。 【标签】RabbitMQ 信息传输 RabbitMQ是另一种流行的消息队列系统,它是基于AMQP...

    MQ测试器-MQ分析

    在开发和部署MQ系统时,进行充分的测试至关重要,因为MQ作为异步通信的核心,其稳定性和效率直接影响到整个系统的性能。MQ测试器可以帮助开发者预防被“忽悠”,确保实际应用中的MQ服务达到预期标准。 3. **模拟...

    MQ最佳实践_MQ_

    **MQ最佳实践** 在IT行业中,消息队列(Message Queue,简称MQ)是分布式系统中的重要组件,用于处理异步通信、解耦组件以及提高系统的可...在实际工作中,不断优化和调整MQ的使用方式,以适应不断变化的业务需求。

    IBM MQ 7.5.0 windows版本-全部

    这个版本包含了所有必要的组件和工具,用户只需一次性下载即可开始使用,无需额外安装或配置,这大大简化了部署流程。 IBM MQ的核心功能是提供可靠的异步消息传递服务。它通过创建消息队列来实现应用程序间的通信,...

    IBM MQ jdk1.7以上

    5. **云集成**:IBM MQ支持云部署,可以在IBM Cloud或其他云平台上运行,实现混合云集成,使得本地和云端应用能够安全地交换信息。 6. **性能优化**:IBM MQ具备高效的内存管理和批处理能力,可以优化消息处理速度...

    IBM MQ资料集合

    这本书可能详细介绍了MQ的架构、工作原理、配置、管理和监控等方面,帮助读者掌握如何在企业环境中部署和管理MQ服务。 2. **MQ JAVA编程**:这部分资料可能涵盖了使用Java API进行IBM MQ编程的细节,包括JMS(Java ...

    远程测试MQ

    MQ远程测试的类

    MQ相关资料 内容齐全

    【MQ相关资料 内容齐全】 ...深入理解MQ的各个方面,无论是入门、集群部署、开发实践还是故障排查,都将对IT专业人员的技能树产生积极影响。通过学习和研究这些资料,你将能够构建和维护高效、稳定的MQ环境。

    MQ using java资料

    - 如果 Java 应用程序部署在 Web 服务器上,则还需要对 Web 服务器进行相应的配置,以支持 WebSphere MQ 的 Java 类。 #### 3.5 Java 2 安全管理器下的运行 - 在使用 Java 2 安全管理器时,可能需要额外的权限配置...

    精通WebSphere MQ标准 [ 直接下载 ]

    三、WebSphere MQ部署 1. 单机部署:适用于小型环境,所有组件都在一台服务器上运行。 2. 多机集群部署:通过集群技术提高可用性和性能,实现负载均衡。 3. 分布式部署:跨多个地理位置的服务器,确保数据在广域网中...

    Apache Active MQ 简单的示例

    这种方式下,Active MQ的生命周期与应用程序同步,当应用程序停止时,MQ服务也会随之关闭。 **对比与选择** 这两个示例展示了不同场景下的使用策略。独立运行MQ适用于需要多个应用程序共享消息队列的情况,它提供...

    IBM WebSphere MQ 7.5基本用法.docx

    IBM WebSphere MQ 7.5 是一款强大的中间件产品,用于在不同的应用程序之间可靠地传输数据,无论这些应用程序是否在同一时间运行或者在同一网络环境中。它提供了消息队列服务,确保了数据的稳定传输和系统的高可用性...

    Linux下MQ的安装及配置

    5. **64 位系统的影响**:如果是在 64 位 Linux 系统上部署 WebSphere MQ,则需要注意某些特定的配置项,如最大打开文件数量和最大进程数等。 6. **内核配置**:对于关键性能指标(如最大打开文件数和最大进程数)...

    IBM MQ 9 RedHat7安装说明

    ### IBM MQ 9 在 Red Hat 7 的安装与配置指南 #### 一、安装前的准备工作 ##### 1.1 安装 JDK 为了确保 IBM MQ 的顺利运行,首先需要安装 Java Development Kit (JDK)。以下是安装 JDK 的步骤: 1. **下载并安装...

Global site tag (gtag.js) - Google Analytics