JMS之——ActiveMQ高可用+负载均衡集群

一、高可用集群

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

1、文件共享(KahaDB)

[html] view plain copy

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

2、数据库共享

[html] view plain copy

  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型数据,占用内存小.

[html] view plain copy

  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必须相同,否则不能加入集群

[html] view plain copy

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

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

[plain] view plain copy

  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 为集群二的消息端口,这里采用失败重连机制

[html] view plain copy

  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 为集群一的消息端口,这里采用失败重连机制

[html] view plain copy

    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>
时间: 2024-08-26 16:15:00

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

nginx+keepalived的高可用负载均衡集群构建

实验架构图: 实验环境 Nginx和Keepalived原理介绍 参考博客:http://467754239.blog.51cto.com/4878013/1541421 1.nginx Nginx进程基于于Master+Slave(worker)多进程模型,自身具有非常稳定的子进程管理功能.在Master进程分配模式下,Master进程永远不进行业务处理,只是进行任务分发, 从而达到Master进程的存活高可靠性,Slave(worker)进程所有的业务信号都 由主进程发出,Slave(wor

HAProxy高可用负载均衡集群部署

HAProxy高可用负载均衡集群部署 基本信息: 系统平台:VMware WorkStation 系统版本: CentOS Linux release 7.2.1511 (Core) 内核版本: 3.10.0-327.el7.x86_64 集群架构: 前端:HAProxy 1.虚拟FQDN:www.simpletime.net 2.VIP:192.168.39.1:DIP:172.16.39.50 3.调度服务器:Varnish1.Varnish2 4.调度算法:URL_Hash_Consist

DNS+keepalived+lvs实现高可用负载均衡集群

1.目的: 部署两台lvs调度器并利用keepalived实现主主模型,DNS添加两条A记录指向lvs调度器实现轮询,最终实现高可用负载均衡集群效果 2.拓扑规划: 3.配置实践 (1)同步所有机器时间 在每台机器实行ntp同步: [[email protected] ~]# ntpdate 10.1.0.1 26 Oct 20:10:57 ntpdate[5533]: step time server 10.1.0.1 offset -32408.643564 sec (2)先配置RS,在RS

Nginx+Keepalived搭建高可用负载均衡集群

Nginx+Keepalived搭建高可用负载均衡集群   一. 环境说明 前端双Nginx+keepalived,nginx反向代理到后端的tomcat集群实现负载均衡,Keepalived实现集群高可用. 操作系统: Centos 6.6_X64 Nginx版本: nginx-1.9.5 Keepalived版本:keepalived-1.2.13 结构: Keepalived+nginx-MASTER:10.6.1.210         Keepalived+nginx-BACKUP:

apache+inotify-tools+keepalived+lvs-DR模式配置高可用负载均衡集群

环境:虚拟机VMware workstation 9 操作系统:Redhat 5.6 i386 一.keepalived+LVS-DR模式配置高可用负载均衡 拓扑如下: 二.服务器IP配置信息 四台服务器均有VMware虚拟机实现,两台HA主机.两台web服务器.网络方式都设置为NAT模式 1.master:192.168.80.145 2.slaver:192.168.80.137 3.web1:192.168.80.144 4.web2:192.168.80.134 5.VIP:192.16

Linux 高可用负载均衡集群的部署

高可用负载均衡集群 ipvs 负载均衡常用的有四种模式 DR NAT TUN FULLNET 实验环境:准备四台rhel6.5的虚拟机四台.一台作为调度器server1,两台作为real server(server3,4),heartbeat服务关闭 172.25.50.10 server1.example.com 172.25.50.20 server2.example.com 172.25.50.30 server3.example.com 172.25.50.250 real50.exam

使用Nginx1.9.9+Keepalived1.2.x搭建高可用负载均衡集群

一 简介以及原理介绍 (1)Nginx概念介绍: Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度.京东.新浪.网易.腾讯.淘宝等 (2)Keepalived概念介绍: Keepalived的作用是检测服务器的状态,如果有一台we

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

LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.目前有三种IP负载均衡技术(VS/NAT.VS/TUN和VS/DR),十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq). Keepalvied Keepalived在这里主要用作RealServer的健康状态检查以及Mast

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

配置环境说明:   KVM虚拟机配置 用途 数量 IP地址 机器名 虚拟IP地址 硬件 内存3G  系统盘20G cpu 4核 Haproxykeepalived 2台 192.168.1.10192.168.1.20 Haserver01Haserver02 192.168.30192.168.40 内存6G  系统盘20G cpu 4核 Weblogic 4台 192.168.1.100192.168.1.150 192.168.1.200 192.168.1.250 Clusters01C