ActiveMQ简述及实例
1.JMS介绍
JMS源于企业应用对于消息中间件的需求,使应用程序可以通过消息进行异步处理而互不影响。Sun公司和它的合作伙伴设计的JMS API定义了一组公共的应用程序接口和相应语法,使得Java程序能够和其他消息组件进行通信。JMS有四个组成部分:JMS服务提供者、消息管理对象、消息的生产者消费者和消息本身。
1)JMS服务提供者实现消息队列和通知,同时实现消息管理的API。JMS已经是J2EE API的一部分,J2EE服务器都提供JMS服务。
2) 消息管理对象提供对消息进行操作的API。JMS API中有两个消息管理对象:创建jms连接使用的工厂(ConnectionFactory)和目的地(Destination),根据消息的消费方式的不同ConnectionFactory可以分为QueueConnectionFactory和TopicConnectionFactory,目的地(Destination)可以分为队列(Queue)和主题(Topic)两种。
3)消息的生产者和消费者。消息的产生由JMS的客户端完成,JMS服务提供者负责管理这些消息,消息的消费者可以接收消息。消息的生产者可以分为――点对点消息发布者(P2P)和主题消息发布者(TopicPublisher)。所以,消息的消费者分为两类:主题消息的订阅者(TopicSubscriber)和点对点消息的接收者(queue receiver)
4)消息。消息是服务提供者和客户端之间传递信息所使用的信息单元。JMS消息由以下三部分组成:
消息头(header)――JMS消息头包含了许多字段,它们是消息发送后由JMS提供者或消息发送者产生,用来表示消息、设置优先权和失效时间等等,并且为消息确定路由。
属性(property)――用来添加删除消息头以外的附加信息。
消息体(body)――JMS中定义了5种消息体:ByteMessage、MapMessage、ObjectMessage、StreamMessage和TextMessage。
2.Messages 通信方式
上面提到JMS通信方式分为点对点通信和发布/订阅方式
1)点对点方式(point-to-point)
点对点的消息发送方式主要建立在 Message Queue,Sender,reciever上,Message Queue 存贮消息,Sneder 发送消息,receive接收消息.具体点就是Sender Client发送Message Queue ,而 receiver Cliernt从Queue中接收消息和"发送消息已接受"到Quere,确认消息接收。消息发送客户端与接收客户端没有时间上的依赖,发送客户端可以在任何时刻发送信息到Queue,而不需要知道接收客户端是不是在运行
2)发布/订阅 方式(publish/subscriber Messaging)
发布/订阅方式用于多接收客户端的方式.作为发布订阅的方式,可能存在多个接收客户端,并且接收端客户端与发送客户端存在时间上的依赖。一个接收端只能接收他创建以后发送客户端发送的信息。作为subscriber ,在接收消息时有两种方法,destination的receive方法,和实现message listener 接口的onMessage 方法。
3.为什么选用ActiveMQ
1)ActiveMQ是一个开放源码
2)基于Apache 2.0 licenced 发布并实现了JMS 1.1。
3)ActiveMQ现在已经和作为很多项目的异步消息通信核心了
4)在很多中小型项目中采用ActiveMQ+SPRING+TOMCAT开发模式。
4.编程模式
4.1消息产生者向JMS发送消息的步骤
(1)创建连接使用的工厂类JMS ConnectionFactory
(2)使用管理对象JMS ConnectionFactory建立连接Connection
(3)使用连接Connection 建立会话Session
(4)使用会话Session和管理对象Destination创建消息生产者MessageSender
(5)使用消息生产者MessageSender发送消息
4.2消息消费者从JMS接受消息的步骤
(1)创建连接使用的工厂类JMS ConnectionFactory
(2)使用管理对象JMS ConnectionFactory建立连接Connection
(3)使用连接Connection 建立会话Session
(4)使用会话Session和管理对象Destination创建消息消费者MessageReceiver
(5)使用消息消费者MessageReceiver接受消息,需要用setMessageListener将MessageListener接口绑定到MessageReceiver
消息消费者必须实现了MessageListener接口,需要定义onMessage事件方法。
5.ActiveMQ运行
ActiveMQ5.0版本默认启动时,启动了内置的jetty服务器,提供一个demo应用和用于监控ActiveMQ的admin应用。运行%activemq_home%bin/目录下的 activemq.bat , 之后你会看见如下一段话表示启动成功。
打开http://localhost:8161/admin/queues.jsp ,可以查看相应的queue中是否有消息
6.SendMessage(用于发送消息)
7.ReceiveMessage(用于接收消息)
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/s_ongfei/archive/2010/03/10/5365032.aspx
分享到:
相关推荐
一个jms activemq Topic 消息实例 关于jms JMS 是接口,相当于jdbc ,要真正使用它需要某些厂商进行实现 ,即jms provider 常见的jms provider 有 ActiveMQ JBoss 社区所研发的 HornetQ (在jboss6 中默认即可以...
### ActiveMQ开发实例核心知识点解析 #### 一、ActiveMQ简介 **ActiveMQ**是由Apache组织维护的一个开源项目,作为一款高性能的消息中间件,它在众多消息传递系统中脱颖而出。ActiveMQ不仅支持JMS 1.1和J2EE 1.4...
**ActiveMQ 开发实例-1** ActiveMQ 是一个开源的消息中间件,由 Apache 软件基金会开发,它遵循开放消息传递协议(Open Message Broker Protocol)标准,支持多种消息协议,如 STOMP、AMQP、MQTT 和 JMS。本实例...
在本文中,我们将深入探讨如何使用Maven构建一个基于ActiveMQ的简单实例。ActiveMQ是Apache软件基金会开发的一款开源消息代理,它实现了多种消息协议,如JMS(Java消息服务)、AMQP(高级消息队列协议)等,为企业级...
在本文中,我们将深入探讨如何使用Spring MVC框架与ActiveMQ结合实现JMS(Java Message Service)实例。首先,让我们理解ActiveMQ和JMS的基本概念。 ActiveMQ是Apache软件基金会开发的一款开源消息代理,它实现了...
9. **Spring注解**:在提供的实例中,可能包含了使用注解的方式配置Spring与ActiveMQ的集成,如`@EnableJms`启动JMS支持,`@JmsListener`定义消息监听器等。 10. **Tomcat服务器**:Tomcat是一个流行的Java Web...
包括1、ActiveMQ java实例 2、ActiveMQ Spring结合实例 3、代码亲测,无问题。 4、资源分5分绝对值 注意:请先安装ActiveMQ 服务。
以上就是关于 ActiveMQ-P2P 文本消息以及 Spring 和 ActiveMQ 整合实例的相关知识点。通过这些知识,开发者可以构建起可靠的点对点消息传递系统,提高应用的可扩展性和解耦性。在实际项目中,根据具体需求,还可以...
在IT行业中,Spring Boot和ActiveMQ的整合是一个常见的任务,特别是在构建分布式系统和微服务架构时。Spring Boot以其简化配置和快速开发的特性受到广泛欢迎,而ActiveMQ作为一款开源的消息中间件,提供了消息队列...
ActiveMQ开发实例-3,开发工程配置说明,需配合ActiveMQ开发实例系列其他资源使用
**ActiveMQ实例详解** ActiveMQ,作为Apache软件基金会的一个开源项目,是业界广泛使用的消息中间件,它遵循Java Message Service(JMS)标准,提供高效、可靠的异步通信能力。在分布式系统中,ActiveMQ扮演着至关...
本实例将探讨如何在Spring环境中配置和使用ActiveMQ,包括Queue和Topic两种通信模式,以及同步和异步的消息接收方式。 首先,我们需要理解ActiveMQ的基本概念。ActiveMQ作为一个JMS(Java Message Service)实现,...
本教程将详细阐述如何搭建ActiveMQ环境,并通过实例来解析其工作原理。 首先,让我们了解什么是ActiveMQ。ActiveMQ是一个开源的、跨平台的消息代理,支持多种协议,如OpenWire、STOMP、XMPP、AMQP和MQTT等。它能够...
**ActiveMQ开发实例-5** Apache ActiveMQ是业界广泛使用的开源消息代理,它遵循Java Message Service (JMS) 规范,提供可靠的消息传递服务,适用于多种编程语言,包括C++和MFC(Microsoft Foundation Classes)环境...
本实例"Spring和ActiveMQ的整合实例源码ActiveMQSpringDemo"提供了一个完整的解决方案,帮助开发者了解如何在Spring环境中集成ActiveMQ进行消息队列的使用。 首先,Spring是一个广泛使用的Java企业级应用开发框架,...
**ActiveMQ 开发实例-2** ActiveMQ 是一个开源的消息中间件,它是Apache软件基金会的顶级项目,广泛应用于分布式系统中的消息传递。本实例将深入探讨如何使用ActiveMQ进行开发,特别是结合C++和MFC(Microsoft ...
本实例将帮助你理解ActiveMQ的基础使用方法,包括如何设置、配置、发送和接收消息。 在“activemq入门实例”中,你将学习到以下几个关键知识点: 1. **ActiveMQ的基本概念**:ActiveMQ作为JMS提供商,它提供一个...
4. **实例化Message**:你可以创建TextMessage、ObjectMessage、MapMessage等不同类型的Message,每种类型对应不同的数据格式。 5. **连接管理和关闭**:在完成消息传递后,记得关闭Session、Connection和Producer...
在本项目实例中,我们探讨的是一个基于Spring MVC、JPA、消息队列MQ以及缓存技术redis和ActiveMQ的集成应用。这个实例涵盖了多种关键的技术栈,旨在提供一个全面的解决方案,帮助开发者构建高效、可扩展的后端系统。...