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&amp;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

三台机器中应该有一台机器可以查询到以下消息,才是部署成功。

[[email protected] ~]# 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

原文地址:https://www.cnblogs.com/muzhifei/p/muji.html

时间: 2024-07-30 09:23:51

activeMQ从入门到简单集群指南的相关文章

入门初探+伪集群部署

Kafka入门初探+伪集群部署 Kafka是目前非常流行的消息队列中间件,常用于做普通的消息队列.网站的活性数据分析(PV.流量.点击量等).日志的搜集(对接大数据存储引擎做离线分析). 全部内容来自网络,可信度有待考证!如有问题,还请及时指正. 概念介绍 在Kafka中消息队列分为三种角色: producer,即生产者,负责产生日志数据. broker,存储节点,负责按照topic中的partition分区,均匀分布式的存储分区. consumer,即消费者,负责读取使用broker中的分区.

Redis的安装配置及简单集群部署

最近针对中铁一局项目,跟事业部讨论之后需要我们的KF平台能够接入一些开源的数据库,于是这两天研究了一下Redis的原理. 1. Redis的数据存储原理及简述 1.1Redis简述 Redis是一个基于内存且支持持久化的key-value的NoSQL数据库,其中每个key和value都是使用对象表示的,具有以以下特征:多样数据类型.持久化.主从同步.它支持存储的value类型包括string(字符串).list(链表).hash(哈希).set(集合)和zset(有序集合).这些数据类型都支持p

ActiveMQ的单节点和集群部署

平安寿险消息队列用的是ActiveMQ. 单节点部署: 下载解压后,直接cd到bin目录,用activemq start命令就可启动activemq服务端了. ActiveMQ默认采用61616端口提供JMS服务,使用8161端口提供管理控制台服务,执行以下命令以便检验是否已经成功启动ActiveMQ服务: ps -aux | grep activemq netstat -anp | grep 61616 此外,还可直接访问管理页面:http://ip:8161/admin/ ,用户名和密码可以

用MPI_Send和MPI_Recv实现简单集群通信函数

本片博客总结自我<并行计算>MPI实验 在这里我用阻塞式消息传递函数MPI_Send.MPI_Recv和非阻塞式消息发送函数MPI_Isend实现了三个简单的集群通信函数: MPI_Bcast广播函数 MPI_Gather收集函数 MPI_Scatter散播函数 1.MPI_Bcast广播函数 (1)原型简介 void MPI_Bcast(void* address, int count, MPI_Datatype datatype, int root, MPI_Comm comm); MPI

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

一.高可用集群 从ActiveMQ5.9开始,ActiveMQ的集群实现方式取消了传统的Master-Slave方式,增加了基于ZooKeeper+LevelDB的Master-Slave实现方式,其他两种方式目录共享和数据库共享方式依然存在. 1.文件共享(KahaDB) [html] view plain copy <persistenceAdapter> <kahaDB directory="${activemq.data}/kahadb"/> </

k8s 入门系列之集群安装篇

关于kubernetes组件的详解介绍,请阅读上一篇文章<k8s入门系列之介绍篇> Kubernetes集群安装部署 ?Kubernetes集群组件: - etcd 一个高可用的K/V键值对存储和服务发现系统 - flannel 实现夸主机的容器网络的通信 - kube-apiserver 提供kubernetes集群的API调用 - kube-controller-manager 确保集群服务 - kube-scheduler 调度容器,分配到Node - kubelet 在Node节点上按

Spark新手入门——3.Spark集群(standalone模式)安装

主要包括以下三部分,本文为第三部分: 一. Scala环境准备 查看二. Hadoop集群(伪分布模式)安装 查看三. Spark集群(standalone模式)安装 Spark集群(standalone模式)安装 若使用spark对本地文件进行测试学习,可以不用安装上面的hadoop环境,若要结合hdfs使用spark,则可以参考上面的步骤搭建hadoop. 1. 下载安装包并解压(如:~/tools/spark-2.3.1-bin-hadoop2.7): 2. 启动服务 a.启动master

k8s简单集群搭建

目录 1 环境准备 2. 实验过程 注意:在使用该文档之前,您应该要对k8s的组件有一些了解,我就不描述组件在集群中所担任的角色了, 如有需要请移步官网或其他博客.并且没有使用到证书 1 环境准备 1.1 基本环境 操作系统 CentOS Linux release 7.4.1708 (Core) 软件版本 Kubernetes v1.9.1 (后面提供tar包) etcd Version: 3.2.18(直接yum 安装)(源码包地址: https://github.com/coreos/et

世界本就很简单-集群

集群,是服务器管理的常用方式.集群是一组相互独立的.通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理.一个客户与集群相互作用时,集群像是一个独立的服务器.集群配置是用于提高可用性和可缩放性.Nginx反向代理也就是一个集群. 最简单的集群方案如下: 随着技术的发展,管理中心会变成多个,从而增加服务器的可用性. 参考资料: https://baike.baidu.com/item/%E9%9B%86%E7%BE%A4%E6%8A%80%E6%9C%AF/9774443?fr=