`

ActiveMQ入门实例

    博客分类:
  • JMS
阅读更多

一、ActiveMQ入门实例

二、Spring整合JMS(一)——基于ActiveMQ实现

三、Spring整合JMS(二)——三种消息监听器

四、Spring整合JMS(三)——MessageConverter消息转换器

五、Spring整合JMS(四)——事务管理

 

1.下载ActiveMQ

去官方网站下载:http://activemq.apache.org/

2.运行ActiveMQ

将apache-activemq-5.5.1-bin.zip解压缩,双击apache-activemq-5.5.1\bin\activemq.bat运行ActiveMQ程序。

启动ActiveMQ以后,登陆:http://localhost:8161/admin/,创建一个Queue,命名为FirstQueue。

3.导入jar包:



 

4.实例

1、发送端

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;

public class Sender {

	/** 创建Session */
	public static Session createSession() {
		// 连接工厂,JMS 用它创建连接
		ConnectionFactory connectionFactory = null;
		// MS 客户端到JMS Provider 的连接
		Connection connection = null;
		// 一个发送或接收消息的会话
		Session session = null;
		try {
			// 构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar
			connectionFactory = new ActiveMQConnectionFactory(
					ActiveMQConnection.DEFAULT_USER,
					ActiveMQConnection.DEFAULT_PASSWORD,
					"tcp://localhost:61616");
			// 通过连接工厂创建连接
			connection = connectionFactory.createConnection();
			// 启动连接
			connection.start();
			// 创建Session
			session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return session;
	}

	/** 创建消息发送者 */
	public static MessageProducer createProducer(Session session) {
		// 消息的目的地;消息发送给谁.
		Destination destination = null;
		// 消息发送者
		MessageProducer producer = null;
		try {
			// 获取session注意参数值FirstQueue是一个服务器的queue,须在在ActiveMq的console配置
			destination = session.createQueue("FirstQueue");
			// 消息--发送者
			producer = session.createProducer(destination);
			// 设置不持久化,实际根据项目决定
			producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return producer;
	}

	/** 发送消息 */
	public static void sendMessage(Session session, MessageProducer producer,
			String content) {
		TextMessage textMessage = null;
		try {
			textMessage = session.createTextMessage(content);
			producer.send(textMessage);
			session.commit();// 提交
		} catch (JMSException e) {
			e.printStackTrace();
		}
	}

	/** 测试 */
	public static void main(String[] args) {
		Session session = createSession();
		MessageProducer producer = createProducer(session);
		for (int i = 0; i < 5; i++) {
			String content = "Message---" + i;
			System.out.println(content);
			sendMessage(session, producer, content);
		}
	}
}

 2、接收端

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;

public class Receiver {

	/** 创建Session */
	public static Session createSession() {
		// 连接工厂,JMS 用它创建连接
		ConnectionFactory connectionFactory = null;
		// MS 客户端到JMS Provider 的连接
		Connection connection = null;
		// 一个发送或接收消息的会话
		Session session = null;
		try {
			// 构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar
			connectionFactory = new ActiveMQConnectionFactory(
					ActiveMQConnection.DEFAULT_USER,
					ActiveMQConnection.DEFAULT_PASSWORD,
					"tcp://localhost:61616");
			// 通过连接工厂创建连接
			connection = connectionFactory.createConnection();
			// 启动连接
			connection.start();
			// 创建Session
			session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return session;
	}

	/** 创建消息接收者 */
	public static MessageConsumer createConsumer(Session session) {
		// 消息的目的地;消息发送给谁.
		Destination destination = null;
		// 消息接收者
		MessageConsumer consumer = null;
		try {
			// 获取session注意参数值FirstQueue是一个服务器的queue,须在在ActiveMq的console配置
			destination = session.createQueue("FirstQueue");
			// 得到消息生成者"发送者"
			consumer = session.createConsumer(destination);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return consumer;
	}

	/** 发送消息 */
	public static void receiverMessage(MessageConsumer consumer) {
		try {
			while (true) {
				// 设置接收者接收消息的时间
				TextMessage message = (TextMessage) consumer.receive(6 * 1000);
				if (null != message) {
					System.out.println("ReceiverMessage--" + message.getText());
				} else {
					System.out.println("break");
					break;
				}
			}

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/** 测试 */
	public static void main(String[] args) {
		receiverMessage(createConsumer(createSession()));
	}
}

 5、测试结果

 



 
执行Sender:

Message---0

Message---1

Message---2

Message---3

Message---4

执行Receive:

ReceiverMessage--Message---0

ReceiverMessage--Message---1

ReceiverMessage--Message---2

ReceiverMessage--Message---3

ReceiverMessage--Message---4

 

 

  • 大小: 9.2 KB
  • 大小: 103.3 KB
分享到:
评论

相关推荐

    JMS-ActiveMQ入门实例

    **JMS与ActiveMQ入门实例详解** Java消息服务(Java Message Service,简称JMS)是Java平台中用于创建、发送、接收和阅读消息的应用程序接口。它为应用程序提供了标准的接口,可以跨越多种消息中间件产品进行通信。...

    activemq入门实例,有源代码

    在“activemq入门实例”中,你将学习到以下几个关键知识点: 1. **ActiveMQ的基本概念**:ActiveMQ作为JMS提供商,它提供一个服务器端(broker)来存储和转发消息,客户端则通过连接到这个服务器来发送和接收消息。...

    消息队列-activemq入门实例.zip

    《ActiveMQ入门实例详解》 在信息技术领域,消息队列(Message Queue)作为一种重要的中间件技术,被广泛应用于系统解耦、异步处理以及负载均衡等场景。Apache ActiveMQ是Apache软件基金会开发的一款开源消息代理,...

    Activemq入门实例.pdf

    Apache ActiveMQ是一个开源的消息代理,遵循Java消息服务(JMS)规范,用于在不同的应用和平台之间进行可靠的消息传递。ActiveMQ能够支持多种传输协议,并能够处理大量消息的存储和转发。 从文件【部分内容】中,...

    ActiveMQ入门及深入使用的例子

    4. **实例化Message**:你可以创建TextMessage、ObjectMessage、MapMessage等不同类型的Message,每种类型对应不同的数据格式。 5. **连接管理和关闭**:在完成消息传递后,记得关闭Session、Connection和Producer...

    activemq入门实例

    本实例旨在引导初学者了解并熟悉ActiveMQ的基本概念、安装配置以及使用方法。 一、ActiveMQ概述 ActiveMQ是一个高性能、灵活且功能丰富的消息代理,支持多种消息协议,如OpenWire、STOMP、AMQP、MQTT等,使得不同...

    HETF-ActiveMQ入门手册.zip

    标题"**HETF-ActiveMQ入门手册.zip**"表明这是一个关于ActiveMQ的入门学习资源,可能包含详细的文档或教程,旨在帮助初学者理解并使用ActiveMQ。"HETF"可能是某个组织、项目或者教程系列的缩写。由于描述中并未提供...

    ActiveMQ实践入门指南_ActiveMQ实践入门指南_源码

    **ActiveMQ实践入门指南** Apache ActiveMQ是一款开源的消息中间件,它是Java消息服务(JMS)的实现...阅读提供的"ActiveMQ实践入门指南.pdf"文件,将为你提供更详细的步骤和实例,助你进一步提升ActiveMQ的应用技能。

    activeMQ简单入门案例

    本教程将引导你通过一个简单的入门案例了解如何使用ActiveMQ实现生产者与消费者的模式。 首先,我们需要了解ActiveMQ的基本概念。在消息队列中,生产者是发送消息的实体,而消费者则是接收和处理这些消息的实体。...

    Apache ActiveMQ 入门最简单例子

    要实现这一点,可以设置两个或多个ActiveMQ实例,通过网络连接形成集群,并配置适当的故障转移策略。 接下来,我们来创建一个简单的MQDemo1。这通常涉及编写代码来创建生产者和消费者。例如,在Java环境中,我们...

    activemq与spring整合发送jms消息入门实例

    本教程将深入探讨如何将这两个强大的工具结合在一起,以创建一个简单的发送JMS消息的入门实例。 首先,我们需要理解ActiveMQ的基本概念。ActiveMQ是Apache软件基金会开发的一个开源消息代理,它实现了JMS规范,提供...

    基于Maven的ActiveMQ的简单实例

    在本文中,我们将深入探讨如何使用Maven构建一个基于ActiveMQ的简单实例。ActiveMQ是Apache软件基金会开发...这个实例可以帮助初学者快速理解和入门ActiveMQ的基本用法,为进一步探索分布式系统中的消息通信打下基础。

    ActiveMQ入门

    【ActiveMQ入门】 Apache ActiveMQ 是一款开源的Java消息服务(JMS)提供商,属于Apache软件基金会的一员。它遵循JMS 1.1规范,旨在为分布式系统中的应用程序提供高效、可靠的异步通信。ActiveMQ的特性使得它成为...

    ActiveMQ使用入门.pdf

    【ActiveMQ使用入门】 ActiveMQ是一款基于Java的消息中间件,它是Apache基金会的开源项目,也是最早的JMS(Java消息服务)实现之一。JMS是一种标准,定义了在Java环境中访问消息中间件的接口,但并未具体实现。...

    ServiceMix Bundle Camel ActiveMQ环境搭建入门实例Demo

    本书适合入门学习,所有例子都有源码 1.Servicemix环境安装和配置 2.Eclipse开发环境安装搭建 3.用Bundle对应用组件模块化 4.Camel的应用和例子 Bundle之间的消息传递, Errorhandling 负载均衡 。。。。。。 5....

    activemq入门总结

    标题 "activemq入门总结" 暗示了本文将主要围绕Apache ActiveMQ,一个流行的开源消息代理和队列中间件进行讲解。ActiveMQ是基于Java Message Service (JMS) API 的,它允许应用程序在分布式环境中发送和接收消息,...

Global site tag (gtag.js) - Google Analytics