一、高可用集群

从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. WebDriver自动化测试工具(1)---环境搭建

    Webdriver是一个前端自动化测试工具,可以模拟用户点击链接,填写表单,点击按钮等操作,下面介绍其使用 一.下载WebdriverC#类库以及对应浏览器驱动 http://www.selenium ...

  2. 六十一 Web开发 使用Web框架

    由于用Python开发一个Web框架十分容易,所以Python有上百个开源的Web框架.这里我们先不讨论各种Web框架的优缺点,直接选择一个比较流行的Web框架——Flask来使用. 用Flask编写 ...

  3. nginx用户权限问题

    nginx配置文件里指定woker进程用户是要确定这个用户的权限,如果出现问题时查看出错日志,看看是否为权限问题

  4. OOX之间的关系

    OOA,OOD,OOP三者关系OOA的分析结果可以作为OOD的需求模型OOD的设计结果作为OOP的指导蓝图OOP负责最终实现目标系统

  5. 《深入理解Android2》读书笔记(七)

    接上篇<深入理解Android2>读书笔记(六) 广播接受者 注册 ContextImpl @Override public Intent registerReceiver(Broadca ...

  6. Struts2 + MySQL 实现分页

    代码结构: package com.action; import java.util.List; import java.util.Map; import com.bean.Pager; import ...

  7. 使用Spring JdbcTemplate实现CLOB和BLOB的存取

    概述 本文讲述通过Spring的JdbcTemplate来读写数据库大字段的实现方案,在一位网友的一篇博客的基础上,查看api文档整理而成. 写实现 JdbcTemplate jdbcTemplate ...

  8. Express使用MongoDB常用操作

    const MongoClient = require('mongodb').MongoClient const url = "mongodb://localhost:27017" ...

  9. UGUI的优点新UI系统四 开源

    UGUI的优点新UI系统四 开源 新UI系统是开源的,所以开发者可以看到新UI系统实现的源码,并加以修改和使用. 开源授权协议——MIT/X11 Unity所搭载的新UI系统,是在开源授权协议MIT/ ...

  10. 【jzyzoj】【p1320 patrol】 巡逻(网络流最小割例题)

    描述 Description FJ有个农场,其中有n块土地,由m条边连起来.FJ的养牛场在土地1,在土地n有个新开张的雪糕店.Bessie经常偷偷溜到雪糕店,当Bessie去的时候,FJ就要跟上她.但 ...