activeMQ从入门到简单集群指南
1.什么是amq
MQ是消息中间件,基于JAVA的JMS消息服务机制来传递信息。
2.mq的作用
MQ给程序之间提供了一个缓冲,避免了在程序交互频繁的情况下,提高程序性能瓶颈和数据的可靠性
3.mq怎么用
一个producer基于JMS的机制,写好信息,通过MQ的服务地址和传输端口,建立通信,把poducer的信息发送到MQ中,MQ接收到队列等待消费者程序来消费掉刚队列接收的数据,消费者同样基于JMS机制的消费机制开发,消费端程序根据已配置好的生产队列名称,通过一个监听机制,队列中是否有可消费数据,来进行消费。
4.mq的安装
1.安装JDK环境,JRE 1.7 (1.6 for version <=5.10.0)意思是至少1.7以上版本才能能用新版MQ
2.下载MQtar包
3.解压
4.无修改的话,直接进入解压路径/bin 《执行./activeMQ start》Daemon方式启动。(后台进程常驻系统)
5.测试安装是否成功
URL: http://127.0.0.1:8161/admin/
Login: admin
Passwort: admin
Navigate to "Queues"
Add a queue name and click create
Send test message by klicking on "Send to"
6.查看日志
[activemq_install_dir]/data/activemq.log")
启动正常的日志形式:
Apache ActiveMQ 5.11.1 (localhost, ID:ntbk11111-50816-1428933306116-0:1) started | org.apache.activemq.broker.BrokerService | main
7.默认端口是61616,检查是否被监听
linux 平台执行lsof -i:61616 or netstat -nlap|grep 61616
5.mq的一般配置
5.1传输端口修改
/conf/activemq.xml 找到该行修改即可
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
6.mq的调优
参考文章:https://blog.csdn.net/u012758088/article/details/78036483
7.mq的高可用
7.1高可用的必要性
7.2高可用的两种协议客户端代码配置使用的(failover、network)
7.3高可用的几种配置方式
7.3.1负载均衡型(集群数据分流)
待补充
7.3.2通过zookeeper+avtivemq
zookeeper部署参考链接:
https://www.cnblogs.com/shihuc/p/7222048.html
依赖:jdk+zookeeper 【需先部署好才能配置mq】
假定环境:192.168.0.10/11/12
1.在10服务器配置好一个MQ文件夹
2.复制到11,12 修改conf/avtivemq.xml,在持久化存储的位置注释掉原来的,把下面的加入
<persistenceAdapter>
<replicatedLevelDB
directory="${activemq.data}/leveldb" #修改使用leveldb做持久化存储
replicas="3" #集群数量
bind="tcp://0.0.0.0:0" #写0就是全部监控
zkAddress="10.90.7.10:2181,10.90.7.11:2182,10.90.7.11:2183" #不同IP端口可以不改,伪集群才需要通过修改端口实现
hostname="10.90.7.10" #填写部署mq的ip
sync="local_disk"#必须写 不写就默认为写到内存
zkPath="/activemq/leveldb-stores" #不是实际存放路径,zookeeper用来交换选举信息的
/>
</persistenceAdapter>
3.配置完成后,启动观察日志activemq_home/data/active.log,观察三台机器的日志,如果有异常,就把按照问题集锦里的方式处理,否则在google里搜索。
4.分别在三台机器,执行命令
netstat -nlap|grep java
三台机器中应该有一台机器可以查询到以下消息,才是部署成功。
[root@localhost ~]# netstat -nlap|grep java
tcp6 0 0 :::1883 :::* LISTEN 28418/java
tcp6 0 0 :::8161 :::* LISTEN 28418/java #mq 控制台端口
tcp6 0 0 :::8899 :::* LISTEN 1741/java
tcp6 0 0 :::2181 :::* LISTEN 3620/java #zookeeper client端口
tcp6 0 0 :::44646 :::* LISTEN 28418/java
tcp6 0 0 :::5672 :::* LISTEN 28418/java
tcp6 0 0 :::61613 :::* LISTEN 28418/java #mq集群端口
tcp6 0 0 :::61614 #mq集群端口 :::* LISTEN 28418/java
tcp6 0 0 :::61616 :::* LISTEN 28418/java #mq监听端口
tcp6 0 0 :::37456 :::* LISTEN 28418/java
tcp6 0 0 :::3888 :::* LISTEN 3620/java
tcp6 0 0 :::34648 :::* LISTEN 3620/java
5.检查zookeeper,是否选举。
5.1 任意一台部署zookeeper机器,cd到zookeeper_home/bin/zkCli.sh
5.2 使用常规命令执行检查
文章参考:https://www.cnblogs.com/chengxuyuanzhilu/p/6698059.html
ls /路径 #按tab键可以自动补全
get /路径/路径#查看 选举信息,选举信息(elected":null)不为空就是主,所以要全部看一次才知道哪个是主
例子
zk: localhost:2181(CONNECTED) 14] get /activemq/leveldb-stores/00000000014
{"id":"localhost","container":null,"address":null,"position":46,"weight":1,"elected":null}
5.4 关闭master的mq应用,检查是否转移到其他服务,三台机器都执行这个命令
netstat -nlap|grep java
检查有无步骤4的结果,有的话检查zookeeper选举信息,参考步骤5检查
5.5 转移成功就是成功搭建了集群,最靠谱的方式还是要通过完成的代码测试发送消息看看。
8.mq控制台的常规解释
控制台登录:
http://部署ip:8161/admin
默认账号密码
admin
admin
8.1 amq的控制方式
8.1.1 使用命令行方式控制amq
查看日志启动方式
./bin/activemq console
activeMQ从入门到简单集群指南的更多相关文章
- Dubbo入门到精通学习笔记(十四):ActiveMQ集群的安装、配置、高可用测试,ActiveMQ高可用+负载均衡集群的安装、配置、高可用测试
文章目录 ActiveMQ 高可用集群安装.配置.高可用测试( ZooKeeper + LevelDB) ActiveMQ高可用+负载均衡集群的安装.配置.高可用测试 准备 正式开始 ActiveMQ ...
- Nginx + tomcat 实现简单集群(基于反向代理方式)
一.安装 nginx 1. nginx依赖以下一些软件库,在安装之前请确保安装了这些软件库,它们包括:gcc,openssl,zlib,pcre(可通过rpm -q命令查询是否已安装) 可通过命令 r ...
- Redis的安装配置及简单集群部署
最近针对中铁一局项目,跟事业部讨论之后需要我们的KF平台能够接入一些开源的数据库,于是这两天研究了一下Redis的原理. 1. Redis的数据存储原理及简述 1.1Redis简述 Redis是一个基 ...
- activeMQ主要的几类集群部署方式
官方主从实现的文档:http://activemq.apache.org/masterslave.html 一.activeMQ主要的几类部署方式比较 1.默认的单机部署(kahadb) acti ...
- 大数据初级笔记二:Hadoop入门之Hadoop集群搭建
Hadoop集群搭建 把环境全部准备好,包括编程环境. JDK安装 版本要求: 强烈建议使用64位的JDK版本,这样的优势在于JVM的能够访问到的最大内存就不受限制,基于后期可能会学习到Spark技术 ...
- Kafka入门初探+伪集群部署
Kafka是目前非常流行的消息队列中间件,常用于做普通的消息队列.网站的活性数据分析(PV.流量.点击量等).日志的搜集(对接大数据存储引擎做离线分析). 全部内容来自网络,可信度有待考证!如有问题, ...
- k8s入门系列之集群安装篇
关于kubernetes组件的详解介绍,请阅读上一篇文章<k8s入门系列之介绍篇> Kubernetes集群安装部署 •Kubernetes集群组件: - etcd 一个高可用的K/V键值 ...
- k8s(一) kubeadm简单集群初始化
写给想入门kubernetes的同学们 # 系统版本 [root@master ~]# cat /etc/os-release NAME="CentOS Linux" VERSIO ...
- Spark新手入门——3.Spark集群(standalone模式)安装
主要包括以下三部分,本文为第三部分: 一. Scala环境准备 查看二. Hadoop集群(伪分布模式)安装 查看三. Spark集群(standalone模式)安装 Spark集群(standalo ...
随机推荐
- 12.1面向对象编程的介绍(oop):封装,继承,多态,访问私有属性
#封装:内部对数据封装.作用:1.保护数据,防止被随意修改:2.使外部的程序不需要关注内部的构造:只需要提供接口给外部进行访问即可.#继承:一个类就相当于一个模板.通过父类,子类的方式实现不同角色的共 ...
- 团队作业-Beta冲刺 (第一天)
这个作业属于哪个课程 <课程的链接> 这个作业要求在哪里 <作业要求的链接> 团队名称 RTD <团队博客链接> 这个作业的目标 剩余任务预估,分配任务(开发,测试 ...
- bzoj1497最大闭权图基础题
1497: [NOI2006]最大获利 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 5485 Solved: 2661[Submit][Status] ...
- (一) Vue在创建的时候 入口文件 及相关的路由配置(及子路由配置)
1. 首先明确一点 在书写之前尽量保持相关的文件知道含义 比如 components 啥的 知道是要放什么东西 在这里介绍一下 由于 vue 不是系统学习 所以很多的创建方式可能不一样 就是有 ...
- 使用for循环疑难问题
接触js的基本语句之后,有一些疑难杂症在初期很难自己想出来,对我自己来说for输出三角形,倒三角行还有等腰三角形还是有点难度,所以记录一下,以便以后查找 倒三角,需要控制每行的输出个数,此处可以想象为 ...
- 一文带你学会基于SpringAop实现操作日志的记录
前言 大家好,这里是经典鸡翅,今天给大家带来一篇基于SpringAop实现的操作日志记录的解决的方案.大家可能会说,切,操作日志记录这么简单的东西,老生常谈了.不! 网上的操作日志一般就是记录操作人, ...
- 【JAVA习题七】输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
package erase; import java.util.Scanner; public class 字符串分类 { public static void main(String[] args) ...
- [FlashDevelop] 003.FlashDevelop + LayaFlash + Starling环境配置及实战
1.首先我们需要下载LayaStarling框架地址:http://layabox.com/index.php?m=content&c=index&a=lists&catid= ...
- C++ 海量代码 排查内存/GDI泄漏历程
排查分两大部分: 1.代码静态分析,通过Code Review查找不合规范的代码点: 2.运行目标软件,结合内存监控工具,分析目标软件的代码,定位内存泄漏点. 目前能找到的代码静态分析软件:Cover ...
- SDL初识
1.SDL是什么? SDL(Security Development Lifecycle)安全开发生命周期.是微软提出的从安全角度指导软件开发的管理模式,在软件开发的生命周期中尽可能地发现安全隐患,降 ...