ActiveMQ


1、环境:
Windows XP
apache-activemq-5.2.0-bin.zip
 
2、安装
解压缩到apache-activemq-5.2.0-bin.zip到一个目录,
比如C:\apache-activemq-5.2.0
 
3、配置
配置就在C:\apache-activemq-5.2.0\conf目录下三个文件
activemq.xml
credentials.properties
log4j.properties
 
4、启动ActiveMQ
运行C:\apache-activemq-5.2.0\bin\activemq.bat
5、测试
ActiveMQ默认使用的TCP连接端口是61616, 
通过查看该端口的信息可以测试ActiveMQ是否成功启动 netstat -an|find "61616"
C:\Documents and Settings\Administrator>netstat -an|find "61616" 
    TCP        0.0.0.0:61616                    0.0.0.0:0                            LISTENING
6、监控
ActiveMQ5.0版本默认启动时,启动了内置的jetty服务器,
提供一个demo应用和用于监控ActiveMQ的admin应用。
admin:http://127.0.0.1:8161/admin/ 
demo:http://127.0.0.1:8161/demo/


魔兽世界 --> 伟大的督军 --> 没法子服务器连续几周第一内心空虚 -->


package jms.demo01;

/*
 * 消息接收者
 */
import java.util.Date;

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

import org.apache.activemq.ActiveMQConnectionFactory;

/**
 * J2EE与JMS
 * JMS是J2EE的13种核心技术规范之一,是J2EE众多应用程序组件中的重要一员。J2EE有标准的JMS API开放,以支持各个JMS应用生产厂商的产品,开源的有jbossmq,openjms,mantamq,ActiveMQ等,不过大多已停止发展; 商业的有IBM WebSphere MQ, BEA WebLogic JMS, Oracle AQ等。
 * Apache ActiveMQ是众多JMS Provider中的的佼佼者,毕竟它由强大的Apache社区支持,一直保持着开发和升级,目前已经最新的版本是5.4.2。它功能强大,支持多种语言编写的客户端,符合J2EE1.4规范,支持持久化,甚至支持Ajax等等.
 * JMS开发入门
 * 
 * 环境: jdk1.5以上, eclipse for j2ee版本, ${download}/activemq5.4.2/bin/activemq.exe运行起来
 * jar包: activemq-all-5.4.2.jar(官方发布里有) commons-logging-1.1.jar
 * 注意,这里要求先将activemq.exe运行起来,作为JMS的Provider.其实J2EE官方发行版里面应该也带有JMS的一个Provider,相关的demo参考2
 * 字符串 "tcp://primary:61616?connectionTimeout=3000" 表示一个URI,它包括了协议部分,url部分,及选项. ActiveMQ其实支持多种transport(参考2),不同的transport对应不同的URI(格式,选项参数等不同).
 * 
 * 参考:
 * Oracle-JMS部分参考http://download.oracle.com/javaee/1.3/jms/tutorial/1_3_1-fcs/doc/client.html
 * J2EE-JMS部分参考:http://download.oracle.com/javaee/6/tutorial/doc/bncdr.html
 * JMS常见transport参考:http://whitesock.javaeye.com/blog/164933
 * 
 * 1、下载:http://activemq.apache.org/download.html 最新Windows版本
 * 2、安装
 * (1) 首先配置JAVA环境变量
 * JAVA_HOME=D:\Program Files\Java\jdk1.5.0
 * CLASSPAHT=.;D:\Program Files\Java\jdk1.5.0\lib\tools.jar;D:\Program Files\Java\jdk1.5.0\lib\td.jar;D:\Program Files\Java\jdk1.5.0\lib
 * PATH=D:\Program Files\Java\jdk1.5.0\bin;
 * (2)直接解压至任意目录(例如:D:\apache-activemq-5.3.0)
 * 3、启动ActiveMQ服务器:直接运行\bin\win32\activemq.bat
 * 当运行成功后,界面显示: Started SelectChannelConnector@0.0.0.0:8161 即说明activemq启动成功。
 * 4、打开ActiveMQ消息管理后台系统 http://localhost:8161/admin/
 * 
 * @author ZengWenFeng
 */
public class MessageReceiver
{
	public static void main(String[] args) throws Exception
	{
		ConnectionFactory connectionFactory = new ActiveMQConnectionFactory();

		Connection connection = connectionFactory.createConnection();
		connection.start();

		final Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
		Destination destination = session.createQueue("my-queue");

		MessageConsumer consumer = session.createConsumer(destination);

		int i = 0;
		while (i < 3)
		{
			i++;
			MapMessage message = (MapMessage) consumer.receive();
			session.commit();

			// TODO something....
			System.out.println("收到消息:" + new Date(message.getLong("count")));
		}

		session.close();
		connection.close();
	}
}


package jms.demo01;

/*
 * xcch@cnic.cn
 * 消息发送者
 */
import java.util.Date;
import javax.jms.*;
import org.apache.activemq.ActiveMQConnectionFactory;

/**
 * J2EE与JMS JMS是J2EE的13种核心技术规范之一,是J2EE众多应用程序组件中的重要一员。J2EE有标准的JMS API开放,以支持各个JMS应用生产厂商的产品,开源的有jbossmq,openjms,mantamq,ActiveMQ等,不过大多已停止发展; 商业的有IBM WebSphere MQ, BEA WebLogic JMS, Oracle AQ等。 Apache
 * ActiveMQ是众多JMS Provider中的的佼佼者,毕竟它由强大的Apache社区支持,一直保持着开发和升级,目前已经最新的版本是5.4.2。它功能强大,支持多种语言编写的客户端,符合J2EE1.4规范,支持持久化,甚至支持Ajax等等. JMS开发入门 环境: jdk1.5以上, eclipse for j2ee版本,
 * ${download}/activemq5.4.2/bin/activemq.exe运行起来 jar包: activemq-all-5.4.2.jar(官方发布里有) commons-logging-1.1.jar 注意,这里要求先将activemq.exe运行起来,作为JMS的Provider.其实J2EE官方发行版里面应该也带有JMS的一个Provider,相关的demo参考2 字符串
 * "tcp://primary:61616?connectionTimeout=3000" 表示一个URI,它包括了协议部分,url部分,及选项. ActiveMQ其实支持多种transport(参考2),不同的transport对应不同的URI(格式,选项参数等不同). 参考:
 * Oracle-JMS部分参考http://download.oracle.com/javaee/1.3/jms/tutorial/1_3_1-fcs/doc/client.html J2EE-JMS部分参考:http://download.oracle.com/javaee/6/tutorial/doc/bncdr.html
 * JMS常见transport参考:http://whitesock.javaeye.com/blog/164933
 * 
 * @author ZengWenFeng
 */
public class MessageSender
{
	public static void main(String[] args) throws Exception
	{
		//ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("failover:(tcp://primary:61616)?timeout=3000&startupMaxReconnectAttempts=1&maxReconnectAttempts=0");//failover:失效转移
		ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://primary:61616?connectionTimeout=3000");

		Connection connection = connectionFactory.createConnection();
		//connection.setExceptionListener(new MyJmsException());
		connection.start();

		Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
		Destination destination = session.createQueue("my-queue");

		MessageProducer producer = session.createProducer(destination);
		for (int i = 0; i < 3; i++)
		{
			MapMessage message = session.createMapMessage();
			message.setLong("count", new Date().getTime());
			Thread.sleep(1000);
			//通过消息生产者发出消息
			producer.send(message);
		}
		session.commit();
		session.close();
		connection.close();
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

spencer_tseng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值