JMS学习(二)之ActiveMQ】的更多相关文章

下载安装ActiveMQ服务,下载地址当然可以去官网下载 http://activemq.apache.org/download-archives.html ActiveMQ安装很简单,下载解压后到bin目录就有win32 和win64两个目录按照自己的系统进入后就有activemq.bat来启动ActiveMQ服务 一.点对点消息模型实例 使用queue作为目的之 1.消息发送端 package mqtest1; import javax.jms.Connection; import java…
下面我们来学习一下消息接受确认和发送持久化消息.消息的过期.消息的选择器和消息的优先级. 一.消息接收确认 1.jms消息只有在被确认之后才认为成功消费了这条消息.消息的成功消费通常包括三个步骤:(1).client接收消息 (2).client处理消息 (3).消息被确认(也就是client给一个确认消息) 不管是事务性会话还是非事务性会话,第一步和第二步都一样但第三步有所不同 2.在事务性会话中当一个事务被提交的时候,确认自动发生,和应答模式没关系,这个值可以随便写.(这里多提一句异步消息接…
ActiveMQ提供了一种连接机制,这种连接机制使用传输连接器(TransportConnector)实现客户端与代理(client - to - broker)之间的通信. 网络连接器(networkconnection)实现代理与代理之间的通信.(broker-to- broker); 一.TransportConnector支持的协议 ActiveMQ常用协议: 协议-描述-example TCP-默认的协议性能相对来说还是可以的-tcp://host:port NIO-基于TCP协议进行…
1.将连接Mysql数据库的jar文件,放到ActiveMQ的lib目录下 2.修改ActiveMQ的conf目录下的active.xml文件,修改数据持久化的方式 2.1  修改原来的kshadb的持久化数据的方式 <persistenceAdapter> <!-- <kahaDB directory="${activemq.data}/kahadb"/> --> <jdbcPersistenceAdapter dataSource=&quo…
ActiveMQ 支持两种截然不同的消息传送模型:PTP(即点对点模型)和Pub/Sub(即发布 /订阅模型),分别称作:PTP Domain 和Pub/Sub Domain. 一.PTP消息传送模型 1.PTP(使用Queue 即队列目标) 消息从一个生产者传送至一个消费者.在此传送模型中,目标是一个队列.消息首先被传送至队列目标,然后根据队列传送策略,从该队列将消息传送至向此队列进行注册的某一个消费者,一次只传送一条消息.可以向队列目标发送消息的生产者的数量没有限制,但每条消息只能发送至.并…
1.ActiveMQ的本地事务 在一个JMS客户端,可以使用本地事务来组合消息的发送和接收.JMS Session接口提供了commit和rollback方法.事务提交意味着生产的所有消息被发送,消费的所有消息被确认:事务回滚意味着生产的所有消息被销毁,消费的所有消息被恢复并重新提交,除非它们已经过期. 事务性的会话总是牵涉到事务处理中,commit或rollback方法一旦被调用,一个事务就结束了,而另一个事务被开始.关闭事务性会话将回滚其中的事务. 需要注意的是,如果使用请求/回复机制,即发…
现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的. 上篇博文JMS[一]--JMS基本概念,我们介绍了消息通信的规范JMS,我们这篇博文介绍一款开源的JMS具体实现——ActiveMQ.ActiveMQ是一个易于使用的消息中间件. 1.消息中间件 我们简单的介绍一下消息中间件,对它有一个基本认识就好,消息中间件(MOM:Message Orient middleware). 消息中间件有很多的用途和优点: 将数据从一个应用…
现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的. 这篇博文介绍一款开源的JMS具体实现——ActiveMQ.ActiveMQ是一个易于使用的消息中间件. 消息中间件 我们简单的介绍一下消息中间件,对它有一个基本认识就好,消息中间件(MOM:Message Orient middleware). 消息中间件有很多的用途和优点: 1. 将数据从一个应用程序传送到另一个应用程序,或者从软件的一个模块传送到另外一个模块: 2.…
ActiveMQ的消息持久化机制有JDBC,AMQ,KahaDB和LevelDB,还有一种内存存储的方式,由于内存不属于持久化范畴,而且如果使用内存队列,可以考虑使用更合适的产品,如ZeroMQ.所以内存存储不在讨论范围内. 无论使用哪种持久化方式,消息的存储逻辑都是一致的. 消息分为Queue和Topic两种,Queue是点对点消费,发送者发送一条消息,只有一个且唯一的一个消费者能对其进行消费. Topic是订阅式消费,一个消息可以被很多的订阅者消费,其中定阅者又分为持久化订阅和非持久化订阅.…
非持久化订阅持续到它们订阅对象的生命周期.这意味着,客户端只能在订阅者活动时看到相关主题发布的消息.如果订阅者不活动,它会错过相关主题的消息.如果花费较大的开销,订阅者可以被定义为durable(持久化的).持久化的订阅者注册一个带有JMS保持的唯一标识的持久化订阅(subscription).带有相同标识的后续订阅者会再续前一个订阅者的订阅状态.如果持久化订阅没有活动的订阅者,JMS会保持订阅消息,直到消息被订阅接收或者过期. 生产者: package cn.slimsmart.activem…