ActiveMQ的基本使用
优点:消息中间件主要解决了各个模块异步调动问题,解除了模块之间的耦合,提高了运行的性能。
一.点对点方式
生产者
1.创建连接工厂
ActiveMQConnectionFactory 基于TCP协议
ActiveMQConnectionFactory connectionFactory=new ActiveMQConnectionFactory("tcp://192.168.25.135:61616")
2.创建连接
Connection connection=connectionFactory.createConnection();
3.启动连接
connection.start();
4.获取Session,参数1:是否启动事务 参数2:消息的确认方式
Session session=connection.creatSession(false,AUTO_ACKNOWLEDGE);
5.创建队列对象
Queue queue=session.creatQueue("test-queue");
6.创建消息的生产者对象 Destination是Queue的父接口
MessageProduceer producer=session.createProducer(queue);
7.创建消息对象(文本消息)
TextMessage textMessage=session.creatTextMessage("欢迎您");
8.发送消息
producer.send(textMessage);
9.关闭资源
producer.close();
session.close();
connection.close();
消费者
1.创建连接工厂
ActiveMQConnectionFactory 基于TCP协议
ActiveMQConnectionFactory connectionFactory=new ActiveMQConnectionFactory("tcp://192.168.25.135:61616")
2.创建连接
Connection connection=connectionFactory.createConnection();
3.启动连接
connection.start();
4.获取Session,参数1:是否启动事务 参数2:消息的确认方式
Session session=connection.creatSession(false,AUTO_ACKNOWLEDGE);
5.创建队列对象
Queue queue=session.creatQueue("test-queue");
6.创建消费者对象
MessageConsumer consumer=session.createConsumer(queue);
7.设置监听
consumer.setMessageListener(new MessageLister(){
public void onMessage(Message message){
TextMessage textMessage=(TextMessage)message;
try{
System.out.println("提取的消息:"+textMessage.getText());
}catch(JMSException e){
e.printStackTrace();
}
}
});
8.等待键盘输入
System.in.read();
9.关闭资源
consumer.close();
session.close();
connection.close();
二.订阅者模式
生产者
1.创建连接工厂
ActiveMQConnectionFactory 基于TCP协议
ActiveMQConnectionFactory connectionFactory=new ActiveMQConnectionFactory("tcp://192.168.25.135:61616")
2.创建连接
Connection connection=connectionFactory.createConnection();
3.启动连接
connection.start();
4.获取Session,参数1:是否启动事务 参数2:消息的确认方式
Session session=connection.creatSession(false,AUTO_ACKNOWLEDGE);
5.创建主题对象
Topic topic=session.creatTopic("test-topic");
6.创建消息的生产者对象 Destination是Queue的父接口
MessageProduceer producer=session.createProducer(topic);
7.创建消息对象(文本消息)
TextMessage textMessage=session.creatTextMessage("欢迎您");
8.发送消息
producer.send(textMessage);
9.关闭资源
producer.close();
session.close();
connection.close();
消费者
1.创建连接工厂
ActiveMQConnectionFactory 基于TCP协议
ActiveMQConnectionFactory connectionFactory=new ActiveMQConnectionFactory("tcp://192.168.25.135:61616")
2.创建连接
Connection connection=connectionFactory.createConnection();
3.启动连接
connection.start();
4.获取Session,参数1:是否启动事务 参数2:消息的确认方式
Session session=connection.creatSession(false,AUTO_ACKNOWLEDGE);
5.创建主题对象
Topic topic=session.creatTopic("test-topic");
6.创建消费者对象
MessageConsumer consumer=session.createConsumer(topic);
7.设置监听
consumer.setMessageListener(new MessageLister(){
public void onMessage(Message message){
TextMessage textMessage=(TextMessage)message;
try{
System.out.println("提取的消息:"+textMessage.getText());
}catch(JMSException e){
e.printStackTrace();
}
}
});
8.等待键盘输入
System.in.read();
9.关闭资源
consumer.close();
session.close();
connection.close();
ActiveMQ的基本使用的更多相关文章
- Java消息队列--ActiveMq 实战
1.下载安装ActiveMQ ActiveMQ官网下载地址:http://activemq.apache.org/download.html ActiveMQ 提供了Windows 和Linux.Un ...
- 消息队列性能对比——ActiveMQ、RabbitMQ与ZeroMQ(译文)
Dissecting Message Queues 概述: 我花了一些时间解剖各种库执行分布式消息.在这个分析中,我看了几个不同的方面,包括API特性,易于部署和维护,以及性能质量..消息队列已经被分 ...
- (jms)ActiveMQ 安装配置.
前言 ActiveMQ他是Apache出品的一个JMS提供者,管理会话和队列,运行在JVM下,支持多种语言,如JAVA,C++,C#,应用协议: OpenWire,Stomp REST,WS Noti ...
- node(ActiveMq)
简单尝试了node下的ActiveMQ 1.下载apache-activemq-5.9.0,执行bat文件: 2.登录http://localhost:8161/admin可查看其管理后台: 3.安装 ...
- ActiveMQ的集群方案对比及部署
转载:http://blog.csdn.net/lifetragedy/article/details/51869032 ActiveMQ的集群 内嵌代理所引发的问题: 消息过载 管理混乱 如何解决这 ...
- JMS学习之路(一):整合activeMQ到SpringMVC
JMS的全称是Java Message Service,即Java消息服务.它主要用于在生产者和消费者之间进行消息传递,生产者负责产生消息,而消费者负责接收消息.把它应用到实际的业务需求中的话我们可以 ...
- ActiveMQ消息队列的使用及应用
这里就不说怎么安装了,直接解压出来就行了. 谢绝转载,作者保留所有权力 目录: 一:JMQ的两种消息模式 1.1:点对点的消息模式 1.2:订阅模式 二:点对点的实现代码 2.1:点对点的发送端 2 ...
- 从零开始学 Java - Spring 集成 ActiveMQ 配置(一)
你家小区下面有没有快递柜 近两年来,我们收取快递的方式好像变了,变得我们其实并不需要见到快递小哥也能拿到自己的快递了.对,我说的就是类似快递柜.菜鸟驿站这类的代收点的出现,把我们原来快递小哥必须拿着快 ...
- Spring下ActiveMQ实战
MessageQueue是分布式的系统里经常要用到的组件,一般来说,当需要把消息跨网段.跨集群的分发出去,就可以用这个.一些典型的示例就是: 1.集群A中的消息需要发送给多个机器共享: 2.集群A中消 ...
- ActiveMQ(li)
一.ActiveMQ 首先,ActiveMQ不是一个框架,它不是struct,webx,netty这种框架,它更像是tomcat服务器,因为你使用它之前必须启动它,activeMQ和JMS的关系有点类 ...
随机推荐
- OpenJ_Bailian - 1088
OpenJ_Bailian - 1088 题解:DFS记忆化搜索 记忆化搜索也可以说是动态规划,最后的答案也是从一个个子问题推导而来 #include <bits/stdc++.h> #d ...
- 调度器30—调度相关结构体—p->flags
一.PF_EXITING 1. 赋值路径 各驱动和内核机制中直接调用 SYSCALL_DEFINE1(exit, int, error_code) //exit.c do_exit(code); // ...
- 查看oracle死锁
select A.sid, b.serial#, decode(A.type, 'MR', 'Media Recovery', 'RT','Redo Thread', 'UN','User Name' ...
- Vue中v-if和v-for一起使用时的优先级
问题:Vue2.0中v-if和v-for一起使用时报错,怎么解决呢? 代码和报错信息如下 原因和解决办法: 在处于同一节点的时候,v-for 优先级比 v-if 高.这意味着 v-if 将分别重 ...
- jmeter使用Java开发自定义函数
一.前置条件(对jmeter进行二次开发) 本篇通过抽象类AbstractFunction来实现: 1.JMeter提供了接口给用户进行二次开发,其中接口可通过引入 ApacheJMeter_comp ...
- solt废弃,报错解决方法
1.饿了么组件库给出得文字提示框 写到项目里之后报错 提示 solt已经废弃 <el-tooltip placement="top"> <div slot=&qu ...
- windows11上面打开HEIC文件的有效方法
今天在传资料的时候,用手机拍了一张照片传到window11,打开时竟然无法打开,顿时有点诧异,仔细看了文件类型(HEIC),可能软件不识别,怎么解决呢? 经过搜索整理尝试了许多方法,没找到一个合适的. ...
- vue组件之间的传参
vue组件之间传参有三种传参方式'父传子','子传父','非父子组件之间传值' 父传子 父组件 <template> <CounterCom :num="5"&g ...
- java技术系列(二) 反射
能够分析类能力的程序称为反射. 反射能力: 在运行中分析类的能力. 在运行中查看对象,例如:编写一个toString方法供所有类使用. 实现通用的数组操作代码. 利用Method对象.
- c语言学习---void 数据类型
这样的语法是错误的: void a = 10; void表示无类型, 这样定义一个变量a, 编译器是无法知道给a分配多大的内存空间的 #include<stdio.h> #include ...