ActiveMq简单使用
来源:互联网 发布:java调用函数里的参数 编辑:程序博客网 时间:2024/05/24 06:35
本篇主要内容:
1、ActiveMQ安装
2、队列(queue)
3、主题(topic)
ActiveMQ安装
1、下载:
http://activemq.apache.org/download.html
2、安装:
我下载的是windows版本的,解压。然后双击apache-activemq-5.14.3\bin\win64\activemq.bat即可
3、访问:
http://127.0.0.1:8161/admin/ 用户名/密码:admin/admin
队列(queue)
即一个消息只能被一个消费者消费。
1、进入web管理界面
这里看到队列里是没有任何消息的
2、编写消息生产者
第一步,引入jar
<dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-client</artifactId> <version>5.14.3</version></dependency>
第二步,编写消息生产者
package queues;import org.apache.activemq.ActiveMQConnection;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*;/** * 消息生产者 */public class JMSProducer { //默认连接用户名 private static final String USERNAME = ActiveMQConnection.DEFAULT_USER; //默认连接密码 private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD; //默认连接地址 private static final String BROKER_URL = ActiveMQConnection.DEFAULT_BROKER_URL; public static void main(String[] args) { //连接工厂 ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(USERNAME, PASSWORD, BROKER_URL); try { //连接 Connection connection = connectionFactory.createConnection(); //启动连接 connection.start(); //创建session Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE); //消息目的地 Destination destination = session.createQueue("hello"); //消息生产者 MessageProducer producer = session.createProducer(destination); //设置不持久化,此处学习,实际根据项目决定 producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT); //发送消息 for (int i = 0; i < 10; i++) { //创建一条文本消息 TextMessage message = session.createTextMessage("ActiveMQ:这是第 " + i + " 条消息"); //生产者发送消息 producer.send(message); } session.commit(); session.close(); connection.close(); } catch (JMSException e) { e.printStackTrace(); } }}
这里创建了名为“hello”的消息队列,并向消息队列发送10条消息。
第三步,编写消息消费者
package queues;import org.apache.activemq.ActiveMQConnection;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*;/** * 消息消费者 */public class JMSConsumer { //默认连接用户名 private static final String USERNAME = ActiveMQConnection.DEFAULT_USER; //默认连接密码 private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD; //默认连接地址 private static final String BROKER_URL = ActiveMQConnection.DEFAULT_BROKER_URL; public static void main(String[] args) { //连接工厂 ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(USERNAME, PASSWORD, BROKER_URL); try { //连接 Connection connection = connectionFactory.createConnection(); //启动连接 connection.start(); //创建session Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); //消息目的地 Destination destination = session.createQueue("hello"); //消息消费者 MessageConsumer consumer = session.createConsumer(destination); while (true) { TextMessage message = (TextMessage) consumer.receive(); if (message != null) { System.out.println("接收到消息: " + message.getText()); } else { break; } } session.close(); connection.close(); } catch (JMSException e) { e.printStackTrace(); } }}
这里指向名为“hello”的消息队列,并向消息队列一直取消息出来。
3、测试。
先运行消息生产者。
发现比之前多了一个名为hello的消息队列,并有10条消息进入队列了。
运行消息消费者
发现消费者消费了之前发的10个消息。
再次查看web-queues页面。
发现比之前多了一个消费者,而且有10条消息出队列了。
再启动一个消息消费者
发现控制台没打印,说明队列里的消息已经被消费完了。
再次启动消息生产者
发现2个消费者各消费5条消息,说明队列里的消息只容许被一个消费者消费。
此时,web-queues页面应该是有2个消费者,共生成和消费20条消息。
主题(topic)
即一个消息可以被多个消费者接收
只需要将队列中的如下代码
//消息目的地Destination destination = session.createQueue("hello");
改为
//消息目的地Destination destination = session.createTopic("hello");
查看web-topics,如下:
启动2个消费者,然后启动生产者
查看web-topics,如下:
发现2个消费者都消费了这10条消息。
现在我们基本完成简单的使用ActiveMQ了。
推荐阅读:
Spring+Log4j+ActiveMQ实现远程记录日志——实战+分析 http://www.linuxidc.com/Linux/2015-12/126163.htm
Spring下ActiveMQ实战 http://www.linuxidc.com/Linux/2015-11/124854.htm
Java消息队列--ActiveMQ 实战 http://www.linuxidc.com/Linux/2016-12/138848.htm
CentOS 6.5启动ActiveMQ报错解决 http://www.linuxidc.com/Linux/2015-08/120898.htm
ActiveMQ部署步骤和后台管理网站Service Unavailable问题解决 http://www.linuxidc.com/Linux/2016-11/137050.htm
Linux环境下面ActiveMQ端口号设置和WEB端口号设置 http://www.linuxidc.com/Linux/2012-01/51100.htm
ActiveMQ 的详细介绍:请点这里
ActiveMQ 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/142053.htm
- ActiveMQ简单使用介绍
- ActiveMQ的简单使用
- ActiveMq的简单使用
- ActiveMQ的简单使用
- Activemq的简单使用
- ActiveMQ的简单使用
- ActiveMQ的简单使用
- ActiveMQ的简单使用
- 简单使用ActiveMQ
- ActiveMq 简单使用
- ActiveMq简单使用
- ubuntu下简单使用activemq
- ActiveMQ安装和简单使用
- activeMQ搭建和简单使用
- java消息队列ActiveMQ的简单使用
- java消息队列ActiveMQ的简单使用
- Maven的ActiveMQ+spring的简单使用
- ActiveMQ简单使用(二):整合Spring
- 消除非受检警告。
- 设计模式--外观模式
- 深度学习数学基础笔记整理(二)
- spring boot 学习笔记
- mybatis not find getter for property。。。
- ActiveMq简单使用
- Java8中流的性能
- HTML&CSS&DIV基础<2>
- 跟踪算法基准--Tracking the Trackers: An Analysis of the State of the Art in Multiple Object Tracking
- hashMap 全面解析
- 使用控件,dataGridView,如何使整个表格填满控件?
- Spring 容器
- 大数据1-Hadoop架构体系及在各方面的应用
- 为什么我发布的问答被抽了