一、高可用集群

从ActiveMQ5.9开始,ActiveMQ的集群实现方式取消了传统的Master-Slave方式,增加了基于ZooKeeper+LevelDB的Master-Slave实现方式,其他两种方式目录共享和数据库共享方式依然存在.

1、文件共享(KahaDB)

  1. <persistenceAdapter>
  2. <kahaDB directory="${activemq.data}/kahadb"/>
  3. </persistenceAdapter>

2、数据库共享

  1. <bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  2. <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
  3. <property name="url" value="jdbc:mysql://localhost:3306/smq?relaxAutoCommit=true"/>
  4. <property name="username" value="root"/>
  5. <property name="password" value="root"/>
  6. <property name="maxActive" value="20"/>
  7. <property name="poolPreparedStatements" value="true"/>
  8. </bean>
  9. <persistenceAdapter>
  10. <jdbcPersistenceAdapter dataDirectory="${activemq.data}" dataSource="#mysql-ds" createTablesOnStartup="false"/>
  11. </persistenceAdapter>

3、复制的LevelDB

LevelDB是Google开发的用于持久化数据的高性能类库,LevelDB并不是一种服务,需要用户自己实现,能处理十亿级别规模的Key-Value型数据,占用内存小.

  1. <persistenceAdapter>
  2. <replicatedLevelDB
  3. directory="${activemq.data}/leveldb"
  4. replicas="3"
  5. bind="tcp://0.0.0.0:62621"
  6. zkAddress="192.168.1.81:2181,192.168.1.82:2182,192.168.1.83:2183"
  7. hostname="edu-zk-01"
  8. zkPath="/activemq1/leveldb-stores" />
  9. </persistenceAdapter>
  10. --SSDB(基于LevelDB)

高可用的原理:使用ZooKeeper(集群)注册所有的ActiveMQ Broker.只有其中的一个Broker可以提供服务,被视为Master,其他的Broker处于待机状态,被视为Slave.如果Master因故障不能提供服务,ZooKeeper会从Slave中选举出一个Broker充当Master

二、ActiveMQ集群部署规划

ZooKeeper集群环境:192.168.1.81:2181,192.168.1.82:2182,192.168.1.83:2183
ActiveMQ需要划分的端口:
      mq集群通讯端口(bind="tcp://0.0.0.0:62621" ActiveMQ相互之间通许,数据同步...)
      mq集群消息端口(conf/activeMq.xml 客户端监听端口)
      mq管理控制台监听端口(conf/jetty.xml)
一个高可用集群中每个ActiveMQ的BrokerName必须相同,否则不能加入集群

  1. <broker xmlns="http://activemq.apache.org/schema/core" brokerName="DobboEdu" dataDirectory="${activemq.data}">

三、客户端broker采用失败重连机制

  1. mq.brokerURL=failover:(tcp://192.168.1.81:51611,tcp://192.168.1.82:51611,tcp://192.168.1.83:51611)?randomize=false&initialReconnectDelay=1000&maxReconnectDelay=30000

当一个ActiveMQ节点挂掉,ActiveMQ服务一样正常使用,如果仅剩一个ActiveMQ节点,因为不能选举Master,ActiveMQ不能正常运转;如贵ZooKeeper集群出了问题,需要对
ActiveMQ重新启动一次.
replicatedLevelDB不支持延迟或者计划任务消息.这些消息存储在另外的LevelDB文件中,如果使用延迟或者计划任务消息,将不会复制到slave Broker上,不能实现消息的高可用.

四、负载均衡集群

1.集群一链接集群二

集群一中所有ActiveMQ配置如下:加在persistenceAdapter适配器节点前,networkConnector uri 为集群二的消息端口,这里采用失败重连机制

  1. <networkConnectors>
  2. <networkConnector uri="static:{tcp://192.168.1.101:53531,tcp://192.168.1.101:53532,tcp://192.168.1.101:t3533}" duplex="false"/>
  3. </networkConnectors>

2.集群二链接集群一

集群二中所有ActiveMQ配置如下:加在persistenceAdapter适配器节点前,networkConnector uri 为集群一的消息端口,这里采用失败重连机制

    1. <networkConnectors>
    2. <networkConnector uri="static:{tcp://192.168.1.101:53511,tcp://192.168.1.101:53512,tcp://192.168.1.101:t3513}" duplex="false"/>
    3. </networkConnectors>

JMS之——ActiveMQ高可用+负载均衡集群的更多相关文章

  1. Dubbo入门到精通学习笔记(十四):ActiveMQ集群的安装、配置、高可用测试,ActiveMQ高可用+负载均衡集群的安装、配置、高可用测试

    文章目录 ActiveMQ 高可用集群安装.配置.高可用测试( ZooKeeper + LevelDB) ActiveMQ高可用+负载均衡集群的安装.配置.高可用测试 准备 正式开始 ActiveMQ ...

  2. LVS+Keepalived搭建MyCAT高可用负载均衡集群

    LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国 ...

  3. 测试LVS+Keepalived高可用负载均衡集群

    测试LVS+Keepalived高可用负载均衡集群 1. 启动LVS高可用集群服务 此时查看Keepalived服务的系统日志信息如下: [root@localhost ~]# tail -f /va ...

  4. Haproxy+Keepalived搭建Weblogic高可用负载均衡集群

    配置环境说明: KVM虚拟机配置 用途 数量 IP地址 机器名 虚拟IP地址 硬件 内存3G  系统盘20G cpu 4核 Haproxy keepalived 2台 192.168.1.10 192 ...

  5. Keepalived+Nginx实现高可用负载均衡集群

    一 环境介绍 1.操作系统CentOS Linux release 7.2.1511 (Core) 2.服务keepalived+nginx双主高可用负载均衡集群及LAMP应用keepalived-1 ...

  6. Keepalived+LVS(dr)高可用负载均衡集群的实现

    一 环境介绍 1.操作系统CentOS Linux release 7.2.1511 (Core) 2.服务keepalived+lvs双主高可用负载均衡集群及LAMP应用keepalived-1.2 ...

  7. RabbitMQ(四):使用Docker构建RabbitMQ高可用负载均衡集群

    本文使用Docker搭建RabbitMQ集群,然后使用HAProxy做负载均衡,最后使用KeepAlived实现集群高可用,从而搭建起来一个完成了RabbitMQ高可用负载均衡集群.受限于自身条件,本 ...

  8. Linux 笔记 - 第十八章 Linux 集群之(三)Keepalived+LVS 高可用负载均衡集群

    一.前言 前两节分别介绍了 Linux 的高可用集群和负载均衡集群,也可以将这两者相结合,即 Keepalived+LVS 组成的高可用负载均衡集群,Keepalived 加入到 LVS 中的原因有以 ...

  9. Dubbo入门到精通学习笔记(二十):MyCat在MySQL主从复制的基础上实现读写分离、MyCat 集群部署(HAProxy + MyCat)、MyCat 高可用负载均衡集群Keepalived

    文章目录 MyCat在MySQL主从复制的基础上实现读写分离 一.环境 二.依赖课程 三.MyCat 介绍 ( MyCat 官网:http://mycat.org.cn/ ) 四.MyCat 的安装 ...

随机推荐

  1. 让你完全理解Base-64是怎么回事

    HTTP将BASE64-编码用于基本认证和摘要认证,在几种HTTP扩展中也使用了该编码. Base-64编码保证了二进制数据的安全 Base-64编码可以将任意一组字节转换为较长的常见文本字符序列,从 ...

  2. CentOS7.5下gnome-terminal+vim的solarized配色方案

    1.简介 Solarized是一款包括浅色和深色的配色方案,适用于很多应用,可以让你的应用看起来更加漂亮!官网地址:http://ethanschoonover.com/solarized 2.设置g ...

  3. lr_Vugen界面图

  4. springboot的mvn与gradle启动方式

    1 很简单,直接鼠标右击项目,run启动项目 2 项目目录下的命令行  mvn spring-boot:run 或者  gradlew bootRun 3 进入libs下或者target下 java ...

  5. Java中HashMap(泛型嵌套)的遍历

    //Studnet package yzhou.gen03; public class Student<T> { private T score; public T getScore() ...

  6. HTML的介绍

    什么是HTML? HTML:Hyper Text Markup Language :超文本标记语言. 超文本:功能比普通文本更加强大 标记语言:使用一组标签对内容进行描述的语言,它不是编程语言 htm ...

  7. 从Linux下载文件到Windows没有换行问题

    这是一个小问题,一般用txt打开文件才会遇到,word打开也是正常(估计其他编程软件打开也正常). 顺便提一下pscp从Linux上下载文件到Windows. C:\Users\xuefei>p ...

  8. Linux命令之firewall-cmd

    firewall-cmd [选项] firewall-cmd是firewalld守护程序的命令行客户端.它提供了管理运行时和永久配置的接口.firewalld中的运行时配置与永久配置分开.这意味着可以 ...

  9. TIANKENG’s restaurant HDU - 4883 (暴力)

    TIANKENG manages a restaurant after graduating from ZCMU, and tens of thousands of customers come to ...

  10. 【常见加密方法】Base64编码&Tea算法简介

    Base64编码 [Base64编码是什么] Base64是一种基于64个可打印字符来表示二进制数据的表示方法. ——维基百科 Base64,顾名思义,是基于64种可视字符的编码方式.这64种符号由A ...