本文借鉴http://www.cnblogs.com/gossip/p/5977489.html,在此基础上进行了完善,使之成为一个完整版的伪分布式部署说明,在此记录一下!
一、本文目的
        介绍如何在同一台虚拟机上搭建高可用的Activemq服务,集群数量包含3个Activemq,当Activemq可用数>=2时,整个集群可用。
        本文Activemq的集群数量为3个,分别命名为mq1,mq2,mq3
 
二、概念介绍
1、伪集群
      集群搭建在同一台虚拟机上,3个Activemq分别使用不同的端口提供服务,启用1个为Master,其它2个为Slaver,同一时间仅Master队列提供服务
2、高可用
      3个Activemq服务,同一时间仅Master队列提供服务,当Master队列挂掉后,其它2个Slaver自动选举出1个成为Master,整个队列服务依然可用。当挂掉的队列重新恢复后,自动加入集群。当集群仅剩下1个队列时,整个队列不可用。
3、Activemq集群数据存储方式
      a) kahaDB:文件共享,默认方式
      b) JDBC:数据库共享
      c) LevelDB:数据共享,本文使用方式
 
三、Activemq伪集群的搭建
1、Activemq的端口介绍
      Activemq默认主要使用2个端口,8161(控制台使用)、61616(提供服务的端口),如果需要搭建集群,还需要开放集群间通讯的端口(主要用于选举Master)
 
2、Activemq集群端口的分配
  控制台 服务接口 集群通讯接口
mq1 8161 51511 61601
mq2 8162 51512 61602
mq3 8163 51513 61603

服务接口没有使用默认的61611是因为activemq默认还会使用61613,61614等端口

3、修改activemq配置

a) 安装activemq,本文使用Activemq版本为5.14.1,下载地址http://activemq.apache.org/activemq-5141-release.html;(前提条件,电脑已安装java JDK,不然启动时会提示)

  解压文件到任意目录,然后打开CMD命令窗口,输入命令“解压目录\bin\activemq start,在浏览器里输入“http://127.0.0.1:8161/admin/”默认账号密码都是“admin”.如图:

至此,activemq单机模式安装成功。

b) 修改配置文件activemq.xml,路径为conf/activemq.xml

  1、broker(所有activemq的brokerName必须一致,才能加入同一个集群)

2、配置levelDB,在<broker>节点内添加(原始配置文件中是不存在<replicatedLevelDB>节点的,另外红色方框标示的是集群通信接口)

    bind:集群间通讯的ip和端口

zkAddress:ZooKeeper地址,多个可用,逗号分隔

hostname:主机名,可在/etc/hosts中进行配置,默认“localhost”

zkPath:zkPath目录(自定义),可在ZooInspetor中进行查看

2、配置服务接口,在<transportConnectors>节点内,仅修改红色方框标注的地方

3、配置控制台端口,conf\jetty.xml文件中,在id="jettyPort"的<bean>节点内,仅修改红色方框标注的地方

 

c) 将整个activemq的安装目录复制成三个,并命名mq1,mq2,mq3;并修改mq2和mq3中的配置文件(安如上方法),更改其服务接口为“51512”,“51513”和控制台端口“8162”,“8163”以及集群通信接口“61602”,“61603”。

四、Zookeeper单机模式安装

  下载zookeeper3.4.9,https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.9/ 并解压至任意目录,确保以及安装java JDK

      

  启动zookeeper,打开cmd命令窗口,输入“解压目录\bin\zkServer.cmd” ,回车

    

           

打开另外一个CMD窗口,输入命令“netstat -ano|findstr "2181" ”查看zookeeper是否启动成功,如图端口2181已经打开,说明启动成功

  

五、测试ActiveMQ伪分布式是否安装成功

  1. cmd启动zookeeper,输入命令“zookeeper解压目录\bin\zkServer.cmd”;

    2. 分别启动三个activemq,打开三个cmd窗口,分别输入如下命令:

    “D:\apache-activemq-5.14.1-bin\mq1\bin\activemq start”

    “D:\apache-activemq-5.14.1-bin\mq2\bin\activemq start”

    “D:\apache-activemq-5.14.1-bin\mq3\bin\activemq start”

mq1:

mq2:

mq3:同上。

浏览器中输入http://127.0.0.1:8161/admin/(此时master为mq1)

 此时可以看到作为master的是端口为8161的activemq即mq1;当关闭mq1的命令窗口,此时mq2变为master,mq3变为slave

再次查看http://127.0.0.1:8161/admin/ ,可以看到服务已经关闭了;而此时,zookeeper已经将master切换到了mq2上了,可以查看mq2的地址http://127.0.0.1:8162/admin/

至此,伪分布式activemq的部署已经完成了,欢迎交流指正!

ActiveMQ5.14.1+Zookeeper3.4.9高可用伪分布式部署的更多相关文章

  1. ubuntu18.04.2 hadoop3.1.2+zookeeper3.5.5高可用完全分布式集群搭建

    ubuntu18.04.2 hadoop3.1.2+zookeeper3.5.5高可用完全分布式集群搭建 集群规划: hostname NameNode DataNode JournalNode Re ...

  2. hbase学习(二)hbase单机和高可用完全分布式安装部署

    hbase版本 2.0.4  与hadoop兼容表http://hbase.apache.org/book.html#hadoop  我的 hadoop版本是3.1   1.单机版hbase 1.1解 ...

  3. hbase高可用集群部署(cdh)

    一.概要 本文记录hbase高可用集群部署过程,在部署hbase之前需要事先部署好hadoop集群,因为hbase的数据需要存放在hdfs上,hadoop集群的部署后续会有一篇文章记录,本文假设had ...

  4. 高可用高性能分布式文件系统FastDFS实践Java程序

    在前篇 高可用高性能分布式文件系统FastDFS进阶keepalived+nginx对多tracker进行高可用热备 中已介绍搭建高可用的分布式文件系统架构. 那怎么在程序中调用,其实网上有很多栗子, ...

  5. MySQL高可用方案--MHA部署及故障转移

    架构设计及必要配置 主机环境 IP                 主机名             担任角色 192.168.192.128  node_master    MySQL-Master| ...

  6. 大数据学习笔记——Hbase高可用+完全分布式完整部署教程

    Hbase高可用+完全分布式完整部署教程 本篇博客承接上一篇sqoop的部署教程,将会详细介绍完全分布式并且是高可用模式下的Hbase的部署流程,废话不多说,我们直接开始! 1. 安装准备 部署Hba ...

  7. 高可用高性能分布式文件系统FastDFS进阶keepalived+nginx对多tracker进行高可用热备

    在上一篇 分布式文件系统FastDFS如何做到高可用 中已经介绍了FastDFS的原理和怎么搭建一个简单的高可用的分布式文件系统及怎么访问. 高可用是实现了,但由于我们只设置了一个group,如果现在 ...

  8. 十一.keepalived高可用服务实践部署

    期中集群架构-第十一章-keepalived高可用集群章节======================================================================0 ...

  9. 高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南

    原文:http://my.oschina.net/wstone/blog/365010#OSC_h3_13 (WJW)高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南 [X] ...

随机推荐

  1. Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数

    上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...

  2. 缓存工厂之Redis缓存

    这几天没有按照计划分享技术博文,主要是去医院了,这里一想到在医院经历的种种,我真的有话要说:医院里的医务人员曾经被吹捧为美丽+和蔼+可亲的天使,在经受5天左右相互接触后不得不让感慨:遇见的有些人员在挂 ...

  3. 搭建属于自己的VIP积分系统(1)

    很久没写博客了,如果有写得不好的地方,还请多多见谅. 架构设计 需求分析 这篇文章主要是介绍此VIP系统的基础架构.说实在的,我其实对 架构方面也不是很懂,我这套框架 还是拿别人的东西改过来的,并不是 ...

  4. H3 BPM:为石化企业提供一个不一样的全停大修平台

    H3 BPM大型炼化企业装置全停检修管理平台(简称"全停大修")结合国际化的流程管理理念.成熟的系统技术架构.优秀的行业解决方案,为石油化工行业全停大修提供了卓越的信息化管理方案, ...

  5. 使用ENode框架前您需要了解的东西(初稿)

    选择ENode意味着什么可能很多人还不太清楚.我简单整理了一下: 意味着你选择了:你需要做DDD领域建模.选择了事件驱动的架构.选择了CQRS架构.选择了最终一致性.选择了事件溯源.选择了分布式.这些 ...

  6. Web应用多账号系统设计及微信扫码登录实现

    Web应用多账号系统设计及微信扫码登录实现 1   前言概述 公司对功能测试,性能测试,安全测试等等都做了比较好的自动化后,急需要一个MIS系统来统一管理这些结果及报表. 此MIS系统特点如下: 仅内 ...

  7. MVVM大比拼之avalon.js源码精析

    简介 avalon是国内 司徒正美 写的MVVM框架,相比同类框架它的特点是: 使用 observe 模式,性能高. 将原始对象用object.defineProperty重写,不需要用户像用knoc ...

  8. Marmoset Toolbag中的角色布光技巧 by Joe”EarthQuake”Wilson

    Sagat by Tim “spacemonkey” Appleby 有言在先 首先,我要感谢才华横溢的Tim“spacemonkey Appleby允许本教程中使用他那个极其NB的Sagat模型.不 ...

  9. C# 线程同步的三类情景

    C# 已经提供了我们几种非常好用的类库如 BackgroundWorker.Thread.Task等,借助它们,我们就能够分分钟编写出一个多线程的应用程序. 比如这样一个需求:有一个 Winform ...

  10. ABP框架 - 多层结构

    文档目录 本节内容: 简介 ABP结构 多层 其它层(通用) 领域(Core)层 应用层 基础层 Web & 表示层 其它 总结 简介 一个应用的代码库的分层是一个广为接受的技术,用来减少复杂 ...