activemq集群搭建

Goun Goun     2022-10-08     446

关键词:

集群搭建

一:静态网络集群

1.简介

? 当ActiveMQ面对大量消息存储和大量Client交互时,性能消耗将会达到单个broker极限,此时我们需要对ActiveMQ进行水平扩展。ActiveMQ提供了“network”机制,可以把多个broker实例“串联”一起,形成“Forward Bridge”模型(转发桥)。这些Broker通过有向网络(networker Connector)链接在一起,组成broker集群,任何一个Borker都可以与Client数据交互,消息也将在Broker网络中“流动”直到被消费,之所以“流动”,因为“producer”和“consumer”会与不同的broker建立链接,我们认为“转发桥”架构模式是“较大”集群数据的解决方案。

2.拓扑图

技术分享图片

3.配置示例

在activemq.xml配置文件中加入

<beans
    <networkConnectors>
        <networkConnector   uri="static:(tcp://172.22.30.17:61616,tcp://172.22.30.18:61616)" duplex="true"/>
    </networkConnectors>
<eans
  • url 对端mq的连接地址,如果有多台,以","为分隔符
  • duplex true为双向订阅,两台mq之间互为消费者和生产者,如果为false,即配置主机为消费者,远端主机为生产者

二:主从集群

1.简介

? 在master-slave模式中,消息将会在多个broker上备份,即集群中每个broker上消息都一样,在故障转移时不会发生消息丢失的问题(持久化消息)。

2.拓扑图

技术分享图片

目前mq支持三种持久化方式,如下:

  • kahadb:以本地的数据库形式存储,速度没有AMQ快,扩展性好,目前mq默认的持久化方式。
  • AMQ:文件存储方式,写入速度快和容易恢复,默认文件大小为32M,5.3版本以前默认支持。
  • JDBC:使用外置数据库的形式存储消息。

特性对比:

  • AMQ/kahadb:读写性能一般
  • jdbc:受限于数据库性能,也比较一般
  • zookeeper:性能比较好

3.配置示例

修改activemq.xml文件,更改kahadb持久化方式为mysql

修改activemq.xml文件,更改kahadb持久化方式为mysql
        <persistenceAdapter>
            <jdbcPersistenceAdapter  dataDirectory="${activemq.base}/data" dataSource="#mysql-ds" useDatabaseLock="true"/>
            <!--
            <kahaDB directory="${activemq.data}/kahadb"/> 
            -->
        </persistenceAdapter>

修改activemq,在后添加数据库连接信息

<bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://192.168.30.130:3306/activemq?relaxAutoCommit=true"/>
        <property name="username" value="root"/>
        <property name="password" value="p3temp_S"/>
        <property name="poolPreparedStatements" value="true"/>
</bean>

4.切换说明

  1. 当master启动后,会自动在activemq中创建三个表

ACTIVEMQ_ACKS 为第三张表的外键连接 ACTIVEMQ_LOCK master锁定,保证只有一个master ACTIVEMQ_MSGS 存储消息

  1. 优先读取到db的ACTIVEMQ_LOCK的为master

  2. 处于slave状态的Broker,服务端口(61616)和manage(6181)端口是没有启动的。

  3. 处于slave状态的Broker,会定时去读取MySQL,如果发现已经被锁了,则继续等待

shell 2018-01-03 11:10:53,698 | INFO | Failed to acquire lock. Sleeping for 1000 milli(s) before trying again... | org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main 2018-01-03 11:11:45,715 | INFO | Failed to acquire lock. Sleeping for 1000 milli(s) before trying again... | org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main 2018-01-03 11:12:37,735 | INFO | Failed to acquire lock. Sleeping for 1000 milli(s) before trying again... | org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main 2018-01-03 11:13:29,751 | INFO | Failed to acquire lock. Sleeping for 1000 milli(s) before trying again... | org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main

三:客户端

1.连接url说明

failover:(tcp://local:61616,tcp://remote:61616)?randomize=false&priorityBackup=true
  • failover:连接地址池为多个,以","号为分隔符,当其中一个失效后,会自动切换
  • randomize:false关闭随机选择
  • priorityBackup:当randomize为false时,pri为true时,会默认为第一个为优先
  • timeout:超时时间

zookeeper+activemq集群搭建

搭建三台虚拟机安装centos7。要提前安装好jdk环境1.环境准备,搭建三台虚拟机ip分别是192.168.192.130192.168.192.131192.168.192.134  Zookeeper环境准备主机ip消息端口通信端口节点目录/user/local/192.168.192.13021812888:3888zookeeper192.168.192.13121812888:... 查看详情

activemq集群搭建(代码片段)

一、Activemq主备搭建  SharedFilesystemMaster-Slave方式  sharedfilesystemMaster-Slave部署方式主要是通过共享存储目录来实现master和slave的热备,所有的ActiveMQ应用都在不断地获取共享目录的控制权,哪个应用抢到了控制权,它就成为mast... 查看详情

activemq集群的搭建

一、环境准备  1、上传 apache-activemq-5.11.1-bin.tar和 zookeeper-3.4.5.tar.gzLinux服务器(/usr/local/install目录下)      zookeeper-3.4.5.tar.gz上传方式相同。  二、Zookeeper方案主机IP消息端口通信端口节点目录/usr/local/software... 查看详情

centos7上搭建activemq集群和zookeeper集群

Zookeeper集群的搭建1、环境准备Zookeeper版本:3.4.10。三台服务器:IP端口通信端口10.233.17.621812888,388810.233.17.721812888,388810.233.17.821812888,3888 下载上传zookeeper-3.4.10.tar.gz,解压到指定文件夹,并重命名为zookeeper-cluster2、重命名配置... 查看详情

activemq消息队列集群的搭建

1.准备activemqapache-activemq-5.12.0-bin.tar2.解压文件3.并将文件cp一份命名为activemq1  进入conf文件进行修改  修改属性为brokerNamet他的名字可以随意修改,但是需要保证唯一 这里我们配置了动态组播 将暂时不需要的属性进行... 查看详情

javaee——宜立方商城08:zookeeper+solrcloud集群搭建搜索功能切换到集群版activemq消息队列搭建与使用

...把搜索功能切换到集群版4、添加商品同步索引库。a) Activemqb) 发送消息c) 接收消息 2. 什么是SolrCloud SolrCloud(solr云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用SolrClou 查看详情

zookeeper+activemq+集群消息中间件搭建

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,在分布式应用中,由于工程师不能很好... 查看详情

zookeeper+activemq+集群消息中间件搭建

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,在分布式应用中,由于工程师不能很好... 查看详情

activemq学习系列activemq集群(代码片段)

activemq集群activemq是可以通过 networkConnectors来实现集群的。首页准备多台activemq 1:端口号:8161,服务端口号:616162:端口号:8162,服务端口号:616173:端口号:8163,服务端口号:61618然后在任意一台的/conf/activemq.xml的&nbs... 查看详情

activemq集群的安装

activeMQ集群的安装1.解压tarzxvfapache-activemq-5.13.3-bin.tar.gz2.移动解压目录分别生成不同的节点cp-rapache-activemq-5.13.3/usr/local/ActiveMQ-node1cp-rapache-activemq-5.13.3/usr/local/ActiveMQ-node2cp-rapache-activemq-5.13 查看详情

activemq(13):activemq的集群

一、简介1.1消费者集群(Queueconsumerclusters)ActiveMQ支持Consumer对消息高可靠性的负载平衡消费,如果一个Consumer死掉,该消息会转发到其它的Consumer消费的Queue上。如果一个Consumer获得消息比其它Consumer快,那么他将获得更多的消息... 查看详情

activemq实战-集群

原文:http://blog.csdn.net/lifetragedy/article/details/51869032 ActiveMQ的集群 内嵌代理所引发的问题:消息过载管理混乱如何解决这些问题——集群的两种方式:Masterslave BrokerclustersActiveMQ的集群有两种方式:MASTER/SLAVE模式Cluster模... 查看详情

activemq_伪集群和主从高可用使用

...sp;   介绍如何在同一台虚拟机上搭建高可用的Activemq服务,集群数量包含3个Activemq,当Activemq可用数>=2时,整个集群可用。    本文Activemq的集群数量为3个,分别命名为mq1,mq2,mq3 二、概念介绍1、... 查看详情

activemq高可用+集群

原文地址:http://blog.csdn.net/lifetragedy/article/details/51869032ActiveMQ的集群 内嵌代理所引发的问题:消息过载管理混乱如何解决这些问题——集群的两种方式:Masterslave BrokerclustersActiveMQ的集群有两种方式:MASTER/SLAVE模式Cluster模... 查看详情

activemq高可用集群方案

...稳定性要求极高的系统中,高可用的是必不可少的,当然ActiveMQ也有自己的集群方案。从ActiveMQ5.9开始,ActiveMQ的集群实现方式取消了传统的Master-Slave方式,增加了基于ZooKeeper+LevelDB的Master-Slave实现方式。相关文章:范例项目:&nbs... 查看详情

activemq集群配置高可用

自从activemq5.9.0开始,activemq的集群实现方式取消了传统的PureMasterSlave方式,增加了基于zookeeper+leveldb的实现方式,其他两种方式:目录共享和数据库共享依然存在。 1、Master-Slave部署方式 1)、SharedFilesystemMaster-Slave方式 ... 查看详情

activemq的集群方案对比及部署

转载:http://blog.csdn.net/lifetragedy/article/details/51869032ActiveMQ的集群 内嵌代理所引发的问题:消息过载管理混乱如何解决这些问题——集群的两种方式:Masterslave BrokerclustersActiveMQ的集群有两种方式:MASTER/SLAVE模式Cluster模式&nb... 查看详情

47.activemq集群

...Sec原创)  使用ZooKeeper实现的Master-Slave实现方式,是对ActiveMQ进行高可用的一种有效的解决方案,高可用的原理:使用ZooKeeper(集群)注册所有的ActiveMQBroker。只有其中的一个Broker可以对外提供服务(也就是Master节点),其他... 查看详情