ActiveMQ是什么?
ActiveMQ 是Apache出品,最流行的、能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。
主要特点:
1、多种语言和协议编写客户端。语言: Java, C, C++, C#, Ruby, Perl, Python, PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP 2、完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务) 3、对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去,而且也支持Spring2.0的特性 4、通过了常见J2EE服务器(如 Geronimo,JBoss 4, GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上 5、支持多种传送协议:in-VM、 TCP、SSL、NIO、UDP、JGroups、JXTA 6、支持通过JDBC和journal提供高速的消息持久化 7、从设计上保证了高性能的集群,客户端-服务器,点对点 8、支持Ajax 9、支持与Axis的整合 10、可以很容易得调用内嵌JMS provider,进行测试ActiveMQ消息传递的两种类型:
一种是点对点的,即一个生产者和一个消费者一一对应;另一种是发布/订阅模式,即一个生产者产生消息并进行发送后,可以由多个消费者进行接收。JMS定义了五种不同的消息正文格式,以及调用的消息类型,允许你发送并接收以一些不同形式的数据,提供现有消息格式的一些级别的兼容性。StreamMessage — Java原始值的数据流
MapMessage–一套名称-值对
TextMessage–一个字符串对象
ObjectMessage–一个序列化的 Java对象
BytesMessage–一个字节的数据流
ActiveMQ的使用方法
点对点: 发布/订阅: 在点对点或队列模型下,一个生产者向一个特定的队列发布消息,一个消费者从该队列中读取消息。这里,生产者知道消费者的队列,并直接将消息发送到消费者的队列。这种模式被概括为:只有一个消费者将获得消息。生产者不需要在接收者消费该消息期间处于运行状态,接收者也同样不需要在消息发送时处于运行状态。每一个成功处理的消息都由接收者签收。发布者/订阅者模型支持向一个特定的消息主题发布消息。0或多个订阅者可能对接收来自特定消息主题的消息感兴趣。在这种模型下,发布者和订阅者彼此不知道对方。这种模式好比是匿名公告板。这种模式被概括为:多个消费者可以获得消息.在发布者和订阅者之间存在时间依赖性。发布者需要建立一个订阅(subscription),以便客户能够订阅。订阅者必须保持持续的活动状态以接收消息,除非订阅者建立了持久的订阅。在那种情况下,在订阅者未连接时发布的消息将在订阅者重新连接时重新发布。使用其他的工程来学习, 工程需要添加jar包:Queue Producer
生产者:生产消息,发送端。第一步:创建ConnectionFactory对象,需要指定服务端ip及端口号。第二步:使用ConnectionFactory对象创建一个Connection对象。第三步:开启连接,调用Connection对象的start方法。第四步:使用Connection对象创建一个Session对象。第五步:使用Session对象创建一个Destination对象(topic、queue),此处创建一个Queue对象。第六步:使用Session对象创建一个Producer对象。第七步:创建一个Message对象,创建一个TextMessage对象。第八步:使用Producer对象发送消息。第九步:关闭资源。Consumer
消费者:接收消息。第一步:创建一个ConnectionFactory对象。第二步:从ConnectionFactory对象中获得一个Connection对象。第三步:开启连接。调用Connection对象的start方法。第四步:使用Connection对象创建一个Session对象。第五步:使用Session对象创建一个Destination对象。和发送端保持一致queue,并且队列的名称一致。第六步:使用Session对象创建一个Consumer对象。第七步:接收消息。第八步:打印消息。第九步:关闭资源 文/云和数据JAVA技术专家 声明: 除云和数据原创文章外,本公众号分享和转载的文章皆为促进IT技术的传播,仅做交流学习使用,非商业用途。 如有文章或图片的原作者有异议或涉及版权问题,请立即联系我们,我们将在第一时间进行改正或删除,确保您的权益,谢谢支持! 相关链接: