`
greemranqq
  • 浏览: 977009 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

activemq 集群master-salve

    博客分类:
  • JMS
阅读更多

一、序言

        作为一种中间件,很多系统都会依赖它,因此几乎所有的中间件都会考虑挂掉怎么办?压力过大怎么办?因此都得考虑容错以及水平伸缩的问题。 所谓的分布式 集群 Master-Slave 等等概念就由此而生了,他主要是为了高可用性、负载均衡来分摊压力 等效果,这里介绍AMQ 的集群概念和配置。

 

二、场景描述:

       1.如果broker 挂了,那么我们整个依赖这个节点的项目都会连接不顺畅,因此要做一个备份的东西,挂掉之后,能快速切换,这也就是master-slave 。

 

三、配置介绍

       1.master-slave 模式现在5.11 版本是提供了3种,参考:http://activemq.apache.org/masterslave.html

       

       方式一:Shared File System Master Slave

       原文:http://activemq.apache.org/shared-file-system-master-slave.html

       

If you have a SAN or shared file system it can be used to provide high availability such that if a broker is killed, another broker can take over immediatel

如果你有SAN 或者 共享的的文件系统,当broker 挂掉后它能提供很高的可用性,能直接让另一个broker 直接代替工作。

大概原理是,你设置N个broker,并且你们都用同一个文件目录保存信息,那么就有第一次获得文件的broker 作为master 提供服务,并对文件持有lock,其他broker 只能监听等待,等master 挂掉了,另外的broker 能立马补充上去。

     

 

On startup one master grabs an exclusive lock on the broker file directory - all other brokers are slaves and pause waiting for the exclusive lock.

在启动时一个master 独占锁代理文件目录,所有其他代理的奴隶和暂停等待互斥型锁。

 

 

 

   因此这种方式就很简单了,主要是让他们的文件目录一致:

       

我假设在本地启动两个broker,在activemq.xml 里面 
windows 环境,两个xml 文件目录设置一致,就行了
这里默认使用的kahaDB ,你也可以用levelDB,但不推荐AMQDB
<persistenceAdapter>
		<kahaDB directory="F:/amq_share_data" />
</persistenceAdapter>

同时因为都在本地,因此监听端口得改改:
分别是61616 和61617
<transportConnector name="openwire" uri="tcp://0.0.0.0:61617?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>

同时为了启动jetty ,在jetty 里面的端口也得改一下就OK了

    

    然后客户端连接的时候地址改成这种就OK了

failover:(tcp://broker1:61616,tcp://broker2:61616,tcp://broker3:61616)

 

   方式二:JDBC Master Slave

   这种方式就是把共享文件目录 改成了数据库,再多台部署的时候,可能共享目录不是很方便,这里我一直没用数据库的方式,就不贴代码了。

 

   方式三:Replicated LevelDB Store

   这种broker 挂了筛选master 的方式用了zookeeper 的帮助,如果你ZK不了解的,先看看百科。

   

  它是利用ZK 做协调,先进入的作为master,其他都是slave

  client 只会连接到master 进行工作,并让slave 同步持久化的信息

  当master 挂了,ZK 就会利用选举 从新选出master,并且挂掉的master 从启 加进来就成slave 了

  因为利用zk 进行配置管理,我们方便监控,同时配置也相对简单

 

  1.Zookeeper 的配置 见前面了, 这个不介绍

  2.我建立3个AMQ,并且broker 配置都一样,下面说下不一样的部分

   

# 下面是持久化的部分改成这样
<persistenceAdapter>
    <replicatedLevelDB
      directory="activemq-data"
      replicas="3"
      bind="tcp://0.0.0.0:0"
      zkAddress="zoo1.example.org:2181,zoo2.example.org:2181,zoo3.example.org:2181"
      zkPassword="password"
      zkPath="/activemq/leveldb-stores"
      hostname="broker1.example.org"
      />
  </persistenceAdapter>
#replicas 表示你集群节点数
# bind 当该节点成为master 后,会自动绑定设定的地址,动态的就是是默认的(作用不是很明白- -)
# zkAddress ZK 的地址
# zkPaht ZK 创建的时候的节点名称
# hostname AMQ 所在机器的地址,可以默认
# 更多参考:http://activemq.apache.org/replicated-leveldb-store.html

 

   

    这种方式要备份几个,同时要几个节点,性能和资源都有一定损耗,如果跨机房就不推荐了,当然我这边主要是为了可用性,没有那么高的性能要求。

 

四、小结

      1.上面的东西可能不是很详细,主要是从官网看的基本配置,复杂的东西害的靠自己的多实践啦

      2.如果有疑问的地方请指出~。~非常感谢~。~

 

顺便说个小问题,由于个人使用了512M 的阿里云服务器,加上别人在用,在启动AMQ 的时候按默认配置,会申请的空间不够,这个在env 配置里面改一下 空间大小才行。注意zk的节点配置 也别写错了

 

 

 

 

  • 大小: 25 KB
分享到:
评论

相关推荐

    activemq_master-slave集群安装文档

    3. ActiveMQ版本:apache-activemq-5.4.2 4. 数据库:Oracle 10 5. 服务器:两台服务器,例如HOST01和HOST02 软件准备包括安装JDK并设置环境变量,下载ActiveMQ的源代码包,以及准备Oracle JDBC驱动程序ojdbc14.jar...

    activemq-master-slave集群安装文档.doc

    在本文档中,我们关注的是ActiveMQ的Master-Slave集群配置,这是实现高可用性和容错机制的一种重要方式。 Master-Slave架构的核心思想是通过将消息复制到备用的Slave Broker,确保即使主Master Broker发生故障,...

    activemq-protobuf-1.1-API文档-中文版.zip

    赠送jar包:activemq-protobuf-1.1.jar; 赠送原API文档:activemq-protobuf-1.1-javadoc.jar; 赠送源代码:activemq-protobuf-1.1-sources.jar; 包含翻译后的API文档:activemq-protobuf-1.1-javadoc-API文档-...

    activemq-cpp-library-3.9.5 编译的windows库文件,支持vs2015、vs2017

    《ActiveMQ-CPP Library 3.9.5在Windows环境下的编译与应用》 ActiveMQ-CPP Library 3.9.5是一款专为C++开发者设计的、用于与Apache ActiveMQ集成的库,它提供了丰富的API接口,使得在C++环境中能够方便地发送和...

    apache-activemq-5.9.0-bin

    这个“apache-activemq-5.9.0-bin”压缩包包含了Apache ActiveMQ 5.9.0版本的完整二进制文件,用于在本地或网络环境中安装和运行。 Apache ActiveMQ的核心功能包括: 1. **消息队列**:ActiveMQ支持多种消息模式,...

    activemq-all-5.2.0.jar包

    activemq-all-5.2.0.JAR包,欢迎下载。编写java中间件的时候会用到。这是activemq实现的jms中间件。希望能帮助到你。

    activemq-web-console-5.11.2

    activemq-web-console的默认使用方式是通过在activemq.xml中导入jetty.xml配置一个jetty server来实现的。其实activemq-web-console完全可以和activemq-broker分开来部署。 activemq-web-console包含3个apps, 1.一...

    activemq-cpp-library-3.9.5-src.zip

    《ActiveMQ-CPP库3.9.5源代码解析与应用》 ActiveMQ-CPP库是Apache ActiveMQ项目的一部分,它提供了一套C++接口,用于与ActiveMQ消息代理进行通信。这个库允许开发者在C++应用程序中实现高级消息队列协议(AMQP)和...

    apache-activemq-5.15.8-bin.zip

    这个"apache-activemq-5.15.8-bin.zip"文件包含了ActiveMQ的可执行版本,用于在本地计算机上安装和运行ActiveMQ服务。 首先,我们需要了解ActiveMQ的核心概念。它是一个消息代理,扮演着消息生产者与消费者之间的...

    apache-activemq-5.8.0-bin.zip

    这个压缩包"apache-activemq-5.8.0-bin.zip"包含了ActiveMQ 5.8.0版本的二进制发行版,供用户在本地计算机上安装和运行。 1. **Apache ActiveMQ简介** - Apache ActiveMQ是业界广泛使用的消息代理,提供可靠的消息...

    activemq-core-5.7.0-API文档-中英对照版.zip

    赠送jar包:activemq-core-5.7.0.jar; 赠送原API文档:activemq-core-5.7.0-javadoc.jar; 赠送源代码:activemq-core-5.7.0-sources.jar; 包含翻译后的API文档:activemq-core-5.7.0-javadoc-API文档-中文...

    activemq-protobuf-1.1.jar

    activemq-protobuf-1.1.jar;activemq-protobuf-1.1.jar

    apache-activemq-5.13.2-bin.tar.gz

    这个`apache-activemq-5.13.2-bin.tar.gz`压缩包包含了ActiveMQ的可执行版本,适用于运行在Linux环境下的Java应用程序。版本号5.13.2意味着这是该软件的特定稳定版本,它可能包含了bug修复和性能优化。 ActiveMQ的...

    activemq-all-5.8.0.jar

    activemq-all-5.8.0.jar 下载 activemq-all-5.8.0.jar 下载 activemq-all-5.8.0.jar 下载 activemq-all-5.8.0.jar 下载 activemq-all-5.8.0.jar 下载

    activemq-all-5.6.0.jar

    activemq-all-5.6.0.jar activemq-all-5.6.0.jar activemq-all-5.6.0.jar activemq-all-5.6.0.jar

    apache-activemq-5.14.3-bin.zip

    这个"apache-activemq-5.14.3-bin.zip"压缩包包含了在Windows环境下部署和运行ActiveMQ所需的所有文件。让我们深入探讨一下这个版本的ActiveMQ及其在Java消息服务中的应用。 首先,Java消息服务(JMS)是一种标准...

    activemq-web-4.0-M3.jar.zip

    在提供的压缩包"activemq-web-4.0-M3.jar.zip"中,有两个主要文件:"activemq-web-4.0-M3.jar"和"license.txt"。"activemq-web-4.0-M3.jar"是核心的Java档案文件,包含了运行ActiveMQ Web UI所需的所有类和资源。这...

    activemq-all-5.2.0-sources.jar

    activemq-all-5.2.0-sources.jar

    activemq-broker-5.9.1.jar

    activemq-broker-5.9.1.jar,activemq-broker-5.9.1.jar,activemq-broker-5.9.1.jar

    activemq-rar-5.10.0.rar

    标题中的"activemq-rar-5.10.0.rar"指的是Apache ActiveMQ的RAR资源包,版本为5.10.0。ActiveMQ是业界广泛使用的开源消息中间件,它遵循Java Message Service (JMS) 规范,提供高可靠的消息传递服务,能够帮助应用...

Global site tag (gtag.js) - Google Analytics