(01)ActiveMQ学习-2017/2/21

一、ActiveMQ是什么?

      ActiveMQ是Apache推出的一款开源的,完全支持JMS1.1和J2EE1.4规范的JMS Provider实现的消息中间件(Message Oriented Middleware,MOM)。

      MOM大白话解释:我们最开始做的项目都是一个工程完成的,但后期随着业务的变更,需要把核心功能抽取出来单独作为一个项目,同时也减少了依赖。这个项目可能被多个系统进行调用,这个时候我们就需要一个第三方消息中间件来做消息传递,使个系统解耦。

     ActiveMQ就是MOM的实现。主要用来减小项目依赖,同时提供异步调用作用。

二、ActiveMQ安装

       1.从http://activemq.apache.org/activemq-5143-release.html下载最新版本的ActiveMQ

       2.直接解压,然后拷贝到你要安装的位置就OK了。

       3.到ActiveMQ/bin目录下 ./activemq start

          或启动并指定日志文件./activemq start >/tmp/activemqlog

       4.检查是否已经启动

           ActiveMQ默认采用61616端口提供JMS服务,使用8161端口提供管理控制台服务,执行以下命令便可以检验是否已经成功启动ActiveMQ服务。

           a)查看61616端口是否打开:netstat -an | grep 61616

           b)直接查看控制台输出或者日志文件

           c)直接访问ActiveMQ管理页面http://localhost:8161/admin/ 默认用户名密码admin/admin

           d)关闭ActiveMQ可以使用./activemq stop

           e)暴力关闭:ps -ef | grep activemq 然后kill -9 端口号 干掉。

三、基本使用

       1.配置Maven所需要的依赖,示例如下:

    pom配置文件

<dependency>
	<groupId>org.apache.activemq</groupId>
	<artifactId>activemq-all</artifactId>
	<version>5.9.0</version>
</dependency>
<dependency>
	<groupId>org.apache.xbean</groupId>
	<artifactId>xbean-spring</artifactId>
	<version>3.16</version>
</dependency>

 

    发送端:

public class JmsSend {
	public static void main(String[] args) {
		//创建链接工厂
		ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
		//创建连接
		Connection connection = connectionFactory.createConnection();
		//启动连接
		connection.start();
		//创建一个会话
		//Boolean.TRUE 要不要使用事务
		//Session.AUTO_ACKNOWLEDGE 消息怎么确认
		Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
		//创建目的地
		//my-queue 队列名字 自己取名字
		Destination destination = session.createQueue("my-queue");
		//创建生产者 发送消息的人
		MessageProducer producer = session.createProducer(destination);
		for(int i=0; i<3; i++) {
			//封装具体的消息
			TextMessage message = session.createTextMessage("message--"+i);
			Thread.sleep(1000);
			//通过消息生产者发出消息
			producer.send(message);
		}
		//事务提交
		session.commit();
		//关闭会话
		session.close();
		//关闭连接
		connection.close();
	}
}

    接收端

    

public class JmsReceiver {
	public static void main(String[] args) throws Exception {
		ConnectionFactory cf = new ActiveMQConnectionFactory("tcp://localhost:61616");
		Connection connection = cf.createConnection();
		connection.start();
		final Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
		//创建消息目的地
		//my-queue跟发送的名字要一致
		Destination destination = session.createQueue("my-queue");
		//创建接收端
		MessageConsumer consumer = session.createConsumer(destination);
		int i=0;
		while(i<3) {
			i++;
			TextMessage message = (TextMessage) consumer.receive();
			session.commit();
			System.out.println("收到消 息:" + message.getText());
		}
		session.close();
		connection.close();
	}
}

 

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值