ActiveMq伪集群设置

作者: 江江的大猪 | 来源:发表于2018-02-12 15:12 被阅读46次

自己学习ActiveMq集群化的时候可以使用多台虚拟机模拟真实环境。也可以在单机上使用多个ActiveMq节点,也就是单机多实例的伪集群方式

  • 看一下目录结构,activemq-single是平时使用的单节点,activemq123就是用来构成集群的三个节点


    目录结构
  • 通过levelDB+zookeeper的方式实现集群化
  • 每个ActiveMq节点的brokerName必须相同,否则无法加入集群
  • directory表示ActiveMq使用levelDB将消息持久化的路径
  • replicas表示的是集群中有几个ActiveMq节点
  • bind表示各个节点的通信地址,端口设为0表示使用动态端口,如果写死的话要保证每个节点不同的端口(因为是伪集群)
  • zkAddress表示使用的zk地址,使用三个表示使用的时zk集群,也可以只用一个zk
  • zkPath表示节点信息在zk中的存储路径
  • hostname表示集群端口的主机名,节点启动后会访问hostname:port,因为这里是伪集群,所以都是localhost
  • openwire的端口要保证不一样,这个是消息端口
  • 修改后的activemq.xml如下,省略了没有修改的部分
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}">
     <!--省略-->
    <persistenceAdapter>
        <!-- 不使用kahadb,使用levelDB+zookeeper构建集群-->
        <!--<kahaDB directory="${activemq.data}/kahadb"/>-->
        <replicatedLevelDB
                directory="${activemq.data}/leveldb"
                replicas="3"
                bind="tcp://0.0.0.0:0"
                zkAddress="127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183"
                zkPath="/activemq/leveldb-stores"
                hostname="localhost"
                />
    </persistenceAdapter>
    
    <transportConnectors>
        <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
        <transportConnector name="openwire"
                            uri="tcp://0.0.0.0:60001?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
        <transportConnector name="amqp"
                            uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
        <transportConnector name="stomp"
                            uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
        <transportConnector name="mqtt"
                            uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
        <transportConnector name="ws"
                            uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
    </transportConnectors>

    <plugins>
        <simpleAuthenticationPlugin>
            <users>
                <authenticationUser username="admin" password="admin" groups="users,admins"/>
                <!--<authenticationUser username="user" password="password" groups="users"/>-->
                <!--<authenticationUser username="guest" password="password" groups="guests"/>-->
            </users>
        </simpleAuthenticationPlugin>
    </plugins>
    <!--省略-->
</broker>
  • 还需要修改每个节点下jetty.xml中的端口,这个端口是ActiveMq管控台的端口,需要保证端口不冲突,只有master节点的管控台可以使用
  • 在程序中的brokerUrl为failover:(tcp://127.0.0.1:60001,tcp://127.0.0.1:60002,tcp://127.0.0.1:60003)?randomize=false
  • 如果需要两套ActiveMq集群一起提供服务(负载均衡),需要在persistenceAdapter标签的上面加上另一套集群的地址
<networkConnectors>
    <networkConnector uri="static:(tcp://xxx:xxx,tcp://xxx:xxx,tcp://xxx:xxx)" duplex="false"/>
</networkConnectors>

相关文章

  • ActiveMq伪集群设置

    自己学习ActiveMq集群化的时候可以使用多台虚拟机模拟真实环境。也可以在单机上使用多个ActiveMq节点,也...

  • ActiveMQ集群安装

    一、ActiveMQ集群的简单介绍 从 ActiveMQ 5.9 开始,ActiveMQ 的集群实现方式取消了传统...

  • ActiveMQ学习-集群配置

    ActiveMQ集群方案 本人最近使用VM搭建ActiveMQ集群成功了,写篇文章记录下。集群方案介绍。 Mast...

  • ActiveMQ集群的搭建(高可用)

    ActiveMQ集群的搭建(高可用) 使用ZooKeeper+ActiveMQ搭建高可用集群。 1 前提准备 Zo...

  • ActiveMQ+Zookeeper集群的搭建(高可用)

    安装Activemq安装Zookeeper集群安装JDK1.8 activemq配置集群 配置节点名 每一个Act...

  • 构建ActiveMQ集群

    ActiveMQ的集群方式综述 ActiveMQ的集群方式主要由两种:Master-Slave和Broker Cl...

  • zookeeper伪集群设置

    单机多实例 因为zk集群通过选举算法选出leader,所以集群中的实例个数最好是奇数个,当过半的节点都崩了,整个集...

  • ActiveMQ HA

    从 ActiveMQ 5.9 开始,ActiveMQ 的集群实现方式取消了传统的Master-Slave 方式,增...

  • ActiveMQ(一)单机部署与应用

    本文主要讲解ActiveMQ单机部署与应用,关于ActiveMQ高可用集群请移步我的另一篇文章:ActiveMQ(...

  • ActiveMq集群.

    Activemq集群数据存储方式1.) kahaDB:文件共享,默认方式2.) JDBC:数据库共享,支持MySq...

网友评论

    本文标题:ActiveMq伪集群设置

    本文链接:https://www.haomeiwen.com/subject/wnnrtftx.html