activemq 笔记】的更多相关文章

ActiveMQ的延时消息是一个让人又爱又恨的功能,具体使用可参考上篇ActiveMQ笔记(6):消息延时投递,在很多需要消息延时投递的业务场景十分有用,但是也有一个缺陷,在一些大访问量的场景,如果瞬间向MQ发送海量的延时消息,超过MQ的调度能力,就会造成很多消息到了该投递的时刻,却没有投递出去,形成积压,一直停留在ActiveMQ web控制台的Scheduled面板中. 下面的代码演示了,如何清理activemq中的延时消息(包括:全部清空及清空指定时间段的延时消息),这也是目前唯一可行的办…
在开发业务系统时,某些业务场景需要消息定时发送或延时发送(类似:飞信的短信定时发送需求),这时候就需要用到activemq的消息延时投递,详细的文档可参考官网说明,本文只介绍二种常用的用法: 注:本文采用spring的JmsTemplate来发送消息 步骤1.首先要修改activemq.xml配置文件,启用延时投递 <broker xmlns="http://activemq.apache.org/schema/core" ... schedulerSupport="t…
系统上线运行后,及时监控报警是很必要的手段,对于ActiveMQ而言,主要监控的指标有:MQ本身的健康状况.每个队列的生产者数量.消费者数量.队列的当前消息数等. ActiveMQ支持JMX监控,使用步骤如下: 一.修改conf/activemq.xml <broker … useJmx="true”> <managementContext> <managementContext createConnector="true" connectorP…
上一篇介绍了基于Networks of Borkers的2节点HA方案,这一篇继续来折腾Networks of Brokers,当应用规模日渐增长时,2节点的broker可能仍然抗不住访问压力,这时候就需要多加一些broker,弄一个更大规模的Broker集群,但是怎么合理设置broker之间的网络桥接,却是有讲究的,先来看一种不太好的设计: 这个架构看上去没瑕疵,没毛病,3个broker之间两两互通,整体可用性极高,但是从消息的路由角度来看,却不是一个好的设计,当producer向broker…
上一篇介绍了基于ZK的ActiveMQ HA方案,虽然理解起来比较容易,但是有二个不足: 1)  占用的节点数过多,1个zk集群至少3个节点,1个activemq集群也至少得3个节点,但其实正常运行时,只有一个master节点在对外响应,换句话说,花6个节点的成本只为了保证1个activemq master节点的高可用,太浪费资源了. 2)  性能下降太明显,比起单节点的activemq,性能下降了近1个数量级. 这一篇将介绍基于networks of brokers的HA方案,不需要借助zk等…
activemq官网给出了3种master/slave的HA方案,详见:http://activemq.apache.org/masterslave.html,基于共享文件目录,db,zookeeper. 下面演示了如何在本机搭建基于zookeeper的activemq集群: 一.在目录activemq1下安装activemq(可参考上篇内容),然后修改conf/activemq.xml <broker xmlns="http://activemq.apache.org/schema/co…
一.编译 虽然ActiveMQ提供了发布版本,但是建议同学们自己下载源代码编译,以后万一有坑,还可以尝试自己改改源码. 1.1 https://github.com/apache/activemq/releases 到这里下载最新的release版源码(当前最新版本为5.13.2),并解压到某个目录(以下用$ACTIVEMQ_HOME代替解压根目录) 1.2 编译 cd $ACTIVEMQ_HOME mvn clean install -Dmaven.test.skip=true 编译成功后,在…
安装 下载地址:http://activemq.apache.org/download.html 安装教程: http://gerrard-ok.iteye.com/blog/1766203 解压缩: 运行: ./activemq start .Net使用 教程:http://www.cnblogs.com/madyina/p/4121458.html#3249312 下载:http://activemq.apache.org/nms/activemq-downloads.html 还有一个下载…
目录 · Introduction to ActiveMQ · Installing ActiveMQ · Message-oriented middleware · JMS specification · What's the Java Message Service? · JMS client · Non-JMS client · JMS producer · JSM consumer · JSM provider · JMS message · JMS domains · Administ…
单点的ActiveMQ作为企业应用无法满足高可用和集群的需求,所以ActiveMQ提供了master-slave.broker cluster等多种部署方式,但通过分析多种部署方式之后我认为需要将两种部署方式相结合才能满足我们公司分布式和高可用的需求,所以后面就重点将解如何将两种部署方式相结合. 1.Master-Slave部署方式 1)shared filesystem Master-Slave部署方式 主要是通过共享存储目录来实现master和slave的热备,所有的ActiveMQ应用都在…
为了避免意外宕机以后丢失信息,需要做到重启后可以恢复消息队列,消息系统一般都会采用持久化机制. ActiveMQ的消息持久化机制有JDBC,AMQ,KahaDB和LevelDB, 无论使用哪种持久化方式,消息的存储逻辑都是一致的.也就是说发送者将消息发送出去后,消息中心首先将消息存储到本地数据文件.内存数据库或者远程数据库等,然后试图将消息发送给接收者,发送成功则将消息从存储中删除,失败则继续尝试.消息中心启动以后首先要检查指定的存储位置,如果有未发送成功的消息,则需要把消息发送出去. 1.Ka…
原博客:http://shift-alt-ctrl.iteye.com/blog/2020182 https://mp.weixin.qq.com/s/h74d6LtGB5M8VF0oLrXdCA 我们先看一消息的声明周期如下图: 图片中简单的描述了一条消息的生命周期,不过在不同的架构环境中,message的流动行可能更加复杂.将在稍后有关broker的架构中详解..一条消息从producer端发出之后,一旦被broker正确保存,那么它将会被consumer消费,然后ACK,broker端才会…
本文介绍一个笔者在实际工作中的实施的基于ActiveMQ的一个高稳定,可扩展的异步消息系统. ActiveMQ是一个成熟的基于Java语言的开源消息系统,在实际应用中被大量使用.ActiveMQ在系统稳定性,系统的容错和扩展等方面都有很多成熟的方案,也有很多开源的管理工具,是部署异步消息系统的一个很好的选择. ActiveMQ工作机制 ActiveMQ有两种消息使用方式: l  Queue模式:Producer发出到Queue里的消息,只能由一个Consumer来使用. l  Topic模式:P…
本文对ActiveMQ的启动过程,以及BrokerService,TransportConnector和NetworkConnector等几个重要的模块的代码做一个简要的分析. 启动过程 如果要快速地了解系统的主要模块,最好的办法是熟悉该系统的启动过程.本文首先分析ActiveMQ的启动过程. ActiveMQ可以作为一个独立的Java程序,单独运行.ActiveMQ也可以embed到其它的Java程序里面,作为该程序的一部分运行. 当ActiveMQ作为独立的程序运行时,实际执行的是${Act…
ActiveMQ提供了比较丰富的监控和管理工具.在ActiveMQ的网页里(http://activemq.apache.org/how-can-i-monitor-activemq.html)提到了很多ActiveMQ自带以及第三方的监控管理工具. 本文主要介绍ActiveMQ自带的管理工具webconsole,基于Jolokia的开源的管理工具http://hawt.io/,以及使用ActiveMQ的Advisory messages来自己编程监控ActiveMQ的状态. WebConsol…
1. 点对点通信 点对点是一种一对一通信方式,更像是有一个队列,一个人往队列里放消息,另一个人从队列中取消息,其最大的特点是一个消息只会被消费一次,即使有多个消费者同时消费,他们消费的也是不同的消息. 2. 简单实现 添加依赖 添加Maven依赖: <!-- https://mvnrepository.com/artifact/org.apache.activemq/activemq-all --> <dependency> <groupId>org.apache.ac…
1. 基本概念 MQ(MessageQueue),消息队列,是一个消息接收和转发的容器. Apache ActiveMQ是一个JMS Provider实现. 2. 安装 从官网下载安装包: wget http://mirror.bit.edu.cn/apache//activemq/5.15.0/apache-activemq-5.15.0-bin.tar.gz 解压到本地,目录结构如下: bin:脚本文件 conf:基本配置文件 data:日志文件,比如activemq.log. docs:文…
一.ActiveMQ原生的连接工程:ActiveMQConnectionFactory 默认的maxThreadPoolSize=1000,也就是每个connection的session线程池最大值为1000,可以根据自己应用定制. 我们一般不直接用这个连接工厂,原因是:这个connectionFactory不会复用connection.session.producer.consumer,每次连接都需要重新创建connection,再创建session,然后调用session的创建新的produ…
官网下载好后,修改下conf下activemq.xml配置文件就可以了. 主要将这里的ip改成我们这里用的locahost就可以了: <transportConnectors> <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB --> <transportConnector name="openwire" uri="tcp://loc…
个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.可用性保证 引入消息队列之后该如何保证其高可用性? 持久化.事务.签收. 以及带复制的 Leavel DB + zookeeper 主从集群搭建 2.异步投递Async Sends 2.1  异步投递的定义 对于一个Slow Consumer,使用同步发送消息可能出现Producer堵塞的情况,慢消费者适合使用异步发送 如图介绍: ​ 2.2 什么是异步投递 ActiveMQ支持同步,异步两种发送…
个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.Activemq 的集群思想 1.使用Activemq集群的原因 面试题: 引入消息中间件后如何保证其高可用 2.集群实现思路 基于zookeeper和LevelDB搭建ActiveMQ集群.集群仅提供主备方式的高可用集群功能,避免单点故障. 3.集群方案(共有三种) 主要是基于zookeeper+replicated-leveldb-store的主从集群 基于shareFileSystem共享文…
个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.持久化机制 1.Activemq持久化 1.1 什么是持久化: 持久化就是高可用的机制,即使服务器宕机了,消息也不会丢失 1.2 持久化的作用 将MQ 收到的消息存储到文件.硬盘.数据库 等. 则叫MQ 的持久化,这样即使服务器宕机,消息在本地还是有,仍就可以访问到. 详情——官网 : http://activemq.apache.org/persistence 1.3 ActiveMQ 支持的消…
个人博客网:https://wushaopei.github.io/    (你想要这里多有) 面试思考题: 默认的61616端口如何更改 你生产上的连接协议如何配置的?使用tcp吗? 一.Activemq的传输协议 传输协议官网连接:http://activemq.apache.org/configuring-version-5-transports.html 1.定义: ActiveMQ支持的client-broker通讯协议有:TVP.NIO.UDP.SSL.Http(s).VM. 其中配…
个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.Spring 整合Activemq 1.所需jar包 <dependencies> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.15.11</version>…
个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.JMS规范概述 1.JavaEE 概述及主要核心规范 JavaEE是一套使用Java进行企业级应用开发的大家一致遵循的13个核心规范工业标准.JavaEE平台提供了一个基于组件的方法来加快设计,开发.装配及部署企业应用程序. JDBC(Java Databease)数据库连接JNDI(Java Naming and Directory Interfaces)Java的命令和目录接口EJB(Ente…
个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.部署操作 1. 部署在linux 上的acvtiveMQ 要可以通过前台windows 的页面访问,必须把linux 的IP和 windows的 IP 地址配置到同一个网关下 .这种情况一般都是修改 linux 的IP 地址,修改网卡文件对应的IP 地址 修改linux 的ip 地址: cd /etc/sysconfig/network-scripts vi ifcfg-eth0 ​ 这是修改之后…
个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.消息中间件的产生背景 1.前言:考虑消息中间件的使用场景? 在何种场景下需要使用消息中间件 为什么要在系统里引入消息中间件 2.根据上述问题列举:从生活Case到实际生产案例 基于微服务架构背景下:链式调用是我们在写程序时候的一般流程,为了完成一个整体功能会将其拆分成多个函数(或子模块),比如模块A调用模块B,模块B调用模块C,模块C调用模块D.但在大型分布式应用中,系统间的RPC交互繁杂,一个功…
首先需要在 pom.xml 中添加如下两个 jar 包:spring-jms 与 activemq-core,其依赖的 jar 包会自动下载 接着进行相关配置 @Configuration public class JMSConfig { @Bean public ConnectionFactory connectionFactory() { ConnectionFactory cf = new ActiveMQConnectionFactory("tcp://localhost:61616&q…
菩提树下的杨过: ZooKeeper 笔记(1) 安装部署及hello world ZooKeeper 笔记(2) 监听数据变化 ZooKeeper 笔记(3) 实战应用之[统一配置管理] ZooKeeper 笔记(4) 实战应用之[消除单点故障] ZooKeeper 笔记(5) ACL(Access Control List)访问控制列表 ActiveMQ笔记(2):基于ZooKeeper的HA方案 ZooKeeper 笔记(6) 分布式锁 sunddenly: ZooKeeper学习第一期-…