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的关系有点类 ...
随机推荐
- [转]C#中的自定义事件和EventHandler的使用
自定义事件: 这里主要模拟刷银行卡,手机提示刷卡信息的过程. 声明一个委托类型 public delegate void DelMethod(string bankName,decimal d ...
- rust 配置国内源,加速
[source.crates-io] registry = "https://github.com/rust-lang/crates.io-index" # 指定镜像 replac ...
- CAD坐标显示不全怎么办?CAD坐标常见问题解答!
今天小编来和大家聊一下浩辰CAD看图王中关于CAD坐标的那些事,比如:CAD坐标为何显示不全?CAD坐标显示结果和之前不一样?以及不能精准捕捉CAD坐标等情况,应该如何轻松解决?今天就和小编一起来了解 ...
- linux重置密码和单用户模式
CentOS7.9 CentOS7系统root密码丢失找回方法(史上最好) 1. 重新启动或开启CentOS7系统,在选择进入系统Grub菜单界面如下图1-1,根据提示按"e"小写 ...
- sqlsugar 更新某列数据 UpdateColumns 与SetColumns 使用区别
第一种方式 UpdateColumns public int updateLogPath(int TeamID, string logoPath) { Team t = new Team(); t.T ...
- COM 对象的利用与挖掘4
作者:Joey@天玄安全实验室 前言 本文在FireEye的研究Hunting COM Objects[1]的基础上,讲述COM对象在IE漏洞.shellcode和Office宏中的利用方式以及如何挖 ...
- chrome浏览器通知与语音播放
HTML5 Web Notification 语法 https://developer.mozilla.org/zh-CN/docs/Web/API/notification 如果浏览器支持Web N ...
- CF652F 题解
题意 传送门 在一个长度为 \(m\) 的圆环上有 \(n\) 只初始位置互不相同的蚂蚁,每只蚂蚁的速度都为 \(1\),初始方向为顺时针或逆时针:两只运动方向不同的蚂蚁相遇时会调转方向,问 \(t\ ...
- SpringBoot多数据源详细配置与使用(包含数据源和事务配置)
SpringBoot项目数据库配置文件中配置多个数据源: #********* primary jdbc ************************** spring.datasource.dr ...
- ORACLE备份脚本(4-RMAN1级增量备份)
创建目录 mkdir -p /bak/level1 mkdir -p /bak/arch1 chown -R oracle:oinstall /bak/ vi rmanlevel1.sh ...