ActiveMQ代码-01
p2p模式
生产者
package com.activemq.activemqdemo.p2p;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class JMSProducer {
public static final String ACTIVE_URL = "tcp://127.0.0.1:61616";
// 队列名称
public static final String QUEUE_NAME = "index";
public static void main(String[] args) throws JMSException {
// 1)获取工厂 ConnectionFactory,使用默认的用户名和密码admin/admin, 指定URL
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ACTIVE_URL);
// 2)获取连接
Connection connection = connectionFactory.createConnection();
// 3)启动连接
connection.start();
// 4)创建Session ,参数transacted:事务,acknowledgeMode响应模式
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 5)创建目的地: 队列
Queue queue = session.createQueue(QUEUE_NAME);
// 6)创建生产者,参数destination表示目的地---Queue
MessageProducer messageProducer = session.createProducer(queue);
// 7)发送消息
for (int i = 1 ; i <= 10; i++){
TextMessage textMessage = session.createTextMessage("index队列中的消息:" + i);
messageProducer.send(textMessage);
}
// 8)关闭资源
messageProducer.close();
session.close();
connection.close();
}
}
消费者
package com.activemq.activemqdemo.p2p; import org.apache.activemq.ActiveMQConnectionFactory; import javax.jms.*;
import java.io.IOException; public class JMSConsumer {
public static final String ACTIVE_URL = "tcp://127.0.0.1:61616";
// 队列名称
public static final String QUEUE_NAME = "index"; public static void main(String[] args) throws JMSException, IOException {
// 1)获取工厂 ConnectionFactory,使用摸摸人的用户名和密码admin/admin, 指定URL
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ACTIVE_URL);
// 2)获取连接
Connection connection = connectionFactory.createConnection();
// 3)启动连接
connection.start();
// 4)创建Session ,参数transacted:事务,acknowledgeMode响应模式
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 5)创建目的地: 队列
Queue queue = session.createQueue(QUEUE_NAME);
// 6)创建消费者,
MessageConsumer messageConsumer = session.createConsumer(queue);
// 7)接收消息: 获取队列中的所有消息,消费者一直接收消息
/*while (true){
TextMessage msg = (TextMessage) messageConsumer.receive();
if (msg != null){
// 接收到消息了
System.out.println("JMSConsumer接收到消息了:"+msg.getText());
}else {
// 队列中的消息全部接收完毕
System.out.println("-----消息接收完成----");
break;
}
}*/ // 7)通过监听的方式接受消息,有消息就接受 没消息就结束了监听 方法参数是MessageListenter接口 ,匿名及内部类非阻塞的
messageConsumer.setMessageListener(new MessageListener() {
@Override
public void onMessage(Message message) {
// 对象 instanceof 类型
TextMessage textMessage = (TextMessage) message;
if (message != null && message instanceof TextMessage){ try {
System.out.println("JMSConsumer接收到消息了:"+textMessage.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
}
});
System.in.read();
// 8)关闭资源
messageConsumer.close();
session.close();
connection.close(); }
}
package com.activemq.activemqdemo.p2p;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class JMSConsumer2 {
public static final String ACTIVE_URL = "tcp://127.0.0.1:61616";
// 队列名称
public static final String QUEUE_NAME = "index";
public static void main(String[] args) throws JMSException {
// 1)获取工厂 ConnectionFactory,使用摸摸人的用户名和密码admin/admin, 指定URL
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ACTIVE_URL);
// 2)获取连接
Connection connection = connectionFactory.createConnection();
// 3)启动连接
connection.start();
// 4)创建Session ,参数transacted:事务,acknowledgeMode响应模式
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 5)创建目的地: 队列
Queue queue = session.createQueue(QUEUE_NAME);
// 6)创建消费者,
MessageConsumer messageConsumer = session.createConsumer(queue);
// 7)接收消息: 获取队列中的所有消息,消费者一直接收消息
while (true){
TextMessage msg = (TextMessage) messageConsumer.receive();
if (msg != null){
// 接收到消息了
System.out.println("JMSConsumer接收到消息了:"+msg.getText());
}else {
// 队列中的消息全部接收完毕
System.out.println("-----消息接收完成----");
break;
}
}
// 8)关闭资源
messageConsumer.close();
session.close();
connection.close();
}
}
Topic
生产者
package com.activemq.activemqdemo.topic;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class JMSProducer {
public static final String ACTIVE_URL = "tcp://127.0.0.1:61616";
// 队列名称
public static final String TOPIC_NAME = "index-topic";
public static void main(String[] args) throws JMSException {
// 1)获取工厂 ConnectionFactory,使用默认的用户名和密码admin/admin, 指定URL
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ACTIVE_URL);
// 2)获取连接
Connection connection = connectionFactory.createConnection();
// 3)启动连接
connection.start();
// 4)创建Session ,参数transacted:事务,acknowledgeMode响应模式
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 5)创建目的地: 主题
Topic topic = session.createTopic(TOPIC_NAME);
// 6)创建生产者,参数destination表示目的地---topic
MessageProducer messageProducer = session.createProducer(topic);
// 7)发送消息
for (int i = 1 ; i <= 10; i++){
TextMessage textMessage = session.createTextMessage("index队列中的消息:" + i);
messageProducer.send(textMessage);
}
// 8)关闭资源
messageProducer.close();
session.close();
connection.close();
}
}
消费者
package com.activemq.activemqdemo.topic; import org.apache.activemq.ActiveMQConnectionFactory; import javax.jms.*;
import java.io.IOException; public class JMSConsumer {
public static final String ACTIVE_URL = "tcp://127.0.0.1:61616";
// 队列名称
public static final String TOPIC_NAME = "index-topic"; public static void main(String[] args) throws JMSException, IOException {
// 1)获取工厂 ConnectionFactory,使用摸摸人的用户名和密码admin/admin, 指定URL
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ACTIVE_URL);
// 2)获取连接
Connection connection = connectionFactory.createConnection();
// 3)启动连接
connection.start();
// 4)创建Session ,参数transacted:事务,acknowledgeMode响应模式
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 5)创建目的地: 队列
Topic topic = session.createTopic(TOPIC_NAME);
// 6)创建消费者,
MessageConsumer messageConsumer = session.createConsumer(topic); // 7)通过监听的方式接受消息,有消息就接受 没消息就结束了监听 方法参数是MessageListenter接口 ,匿名及内部类非阻塞的
messageConsumer.setMessageListener(new MessageListener() {
@Override
public void onMessage(Message message) {
// 对象 instanceof 类型
TextMessage textMessage = (TextMessage) message;
if (message != null && message instanceof TextMessage){ try {
System.out.println("消费者1的主题接收到消息了:"+textMessage.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
}
});
System.in.read();
// 8)关闭资源
messageConsumer.close();
session.close();
connection.close(); }
}
package com.activemq.activemqdemo.topic; import org.apache.activemq.ActiveMQConnectionFactory; import javax.jms.*;
import java.io.IOException; public class JMSConsumer2 { public static final String ACTIVE_URL = "tcp://127.0.0.1:61616";
// 队列名称
public static final String TOPIC_NAME = "index-topic"; public static void main(String[] args) throws JMSException, IOException {
// 1)获取工厂 ConnectionFactory,使用摸摸人的用户名和密码admin/admin, 指定URL
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ACTIVE_URL);
// 2)获取连接
Connection connection = connectionFactory.createConnection();
// 3)启动连接
connection.start();
// 4)创建Session ,参数transacted:事务,acknowledgeMode响应模式
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 5)创建目的地: 主题
Topic topic = session.createTopic(TOPIC_NAME);
// 6)创建消费者,
MessageConsumer messageConsumer = session.createConsumer(topic);
// 7)通过监听的方式接受消息,有消息就接受 没消息就结束了监听 方法参数是MessageListenter接口 ,匿名及内部类非阻塞的
messageConsumer.setMessageListener(new MessageListener() {
@Override
public void onMessage(Message message) {
// 对象 instanceof 类型
TextMessage textMessage = (TextMessage) message;
if (message != null && message instanceof TextMessage){ try {
System.out.println("消费者2的主题接收到消息了:"+textMessage.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
}
});
System.in.read();
// 8)关闭资源
messageConsumer.close();
session.close();
connection.close(); }
}
-----------
--------------------------------------------------------------------------------------------------------------------------------------------
------------
ActiveMQ代码-01的更多相关文章
- 消息队列(MQ)入门-activemq,代码级别
第一种:activemq: 1.从官网下载apache-activemq-5.15.3-bin.zip并解压: 2.启动activemq, CMD--/bin/activemq start ,访问12 ...
- 改善JAVA代码01:考虑静态工厂方法代替构造器
前言 系列文章:[传送门] 每次开始新的一本书,我都会很开心.新书新心情. 正文 静态工厂方法代替构造器 说起这个,好多可以念叨的.做了一年多的项目,慢慢也有感触. 说起构造器 大家很明白,构造器 ...
- ActiveMQ基础01——Linux下载安装ActiveMQ
1.下载 下载地址:http://activemq.apache.org/ 点击按钮 下载Linux下最新版安装包,点击即可下载 2.安装ActiveMQ 将之前下载的安装包上传到linux当中,一般 ...
- Java连接ActiveMQ代码示例(Producer和Consumer)
import org.apache.activemq.ActiveMQConnection; import org.apache.activemq.ActiveMQConnectionFactory; ...
- 常用jQuery代码01
1.点击获得当前元素索引,实现切换相应的图片路径 $(".li").bind("click", function () { var _num = $(this) ...
- CSS经验分享:如何书写可维护的CSS代码01
转自:http://www.cnblogs.com/hxling/archive/2013/02/21/2920520.html 一.在样式表开头添加一个注释块,用以描述这个样式表的创建日期.创建者. ...
- ActiveMQ 笔记—01
- 【智能算法】变邻域搜索算法(Variable Neighborhood Search,VNS)超详细解析和TSP代码实例以及01背包代码实例
喜欢的话可以扫码关注我们的公众号哦,更多精彩尽在微信公众号[程序猿声] 00 目录 局部搜索再次科普 变邻域搜索 造轮子写代码 01 局部搜索科普三连 虽然之前做的很多篇启发式的算法都有跟大家提过局部 ...
- 常用 Java 静态代码分析工具的分析与比较
常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基 本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBu ...
随机推荐
- 有关 iOS 的开发证书、应用标识、设备标识、配置文件以及密钥 #DF
iOS开发过程中如果需要进行真机调试.发布需要注册申请很多证书, 以下是对iOS开发的常用证书和密钥等的逐一简单说明: 证书 iOS常用的证书包括开发证书和发布证书,无论是真机调试还是最终发布应用到A ...
- 自定义UITableview自带侧滑删除按钮样式 by 徐
效果如下: 实现原理: 1.打开tableview自带的侧滑删除功能 核心代码: 1 -(void)tableView:(UITableView *)tableView commitEditingSt ...
- Python—字符串常用函数
Python-字符串常用字符串 字符串是一种表示文本的数据类型,使用单引号和双引号及三引号表示 访问字符串中的值字符串的每个字符都对应一个下标,下标编号是从0开始 转义字符字符串的格式化输出切片常用函 ...
- appium填坑
首次使用appium web driver,不说搭建环境的麻烦,初次写完一个操作计算器的程序,但是运行一直报错:selenium.common.exceptions.WebDriverExceptio ...
- Hyperledger Fabric 2.x 自定义智能合约
一.说明 为了持续地进行信息的更新,以及对账本进行管理(写入交易,进行查询等),区块链网络引入了智能合约来实现对账本的访问和控制:智能合约在 Fabric 中称之为 链码,是区块链应用的业务逻辑. 本 ...
- Solution -「CF 908G」New Year and Original Order
\(\mathcal{Description}\) Link. 对于 \(x\in\mathbb N^*\),令 \(s(x)\) 表示将 \(x\) 十进制下的各位数码排序后得到的十进制数的 ...
- Spring Boot自动配置SpringMVC(二)
Spring Boot自动配置SpringMVC(一) - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)讲述了关于DispatcherServlet注册到诸如tomcat容器中的自动配置过 ...
- MySQL快速入门(二)
目录 MySQL快速入门(二) 约束条件 自增 自增的特性 主键 外键 级联更新/删除 表与表之间的关系 外键约束 操作表方法 查询关键字 练习数据 select··from where 筛选 gro ...
- SopringBoot2.x整合Redis
1.导入相关依赖 <!-- redis 依赖 --> <dependency> <groupId>org.springframework.boot</grou ...
- SpringBoot实现QQ邮件发送
建项目 创建一个SpringBoot项目 改pom,导入相关依赖 org.springframework.boot spring-boot-starter-parent 2.2.2.RELEASE & ...