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 ...
随机推荐
- shell——read -u
转自:https://zhidao.baidu.com/question/357781350.html while read -u3 i && read -u4 j;do echo $ ...
- shell——trap捕捉信号(附信号表)
trap捕捉信号有三种形式 第一种:trap "commands" signal-list 当脚本收到signal-list清单内列出的信号时,trap命令执行双引号中的命令. 例 ...
- 生成一个node项目
生成一个node项目1.创建文件夹2.文件夹中右键->在此处打开命令窗口->文件夹中打开dos3.执行:npm init //一路回车,最后y4.安装插件: C:\www\nodejs\h ...
- 私有化轻量级持续集成部署方案--05-持续部署服务-Drone(上)
提示:本系列笔记全部存在于 Github, 可以直接在 Github 查看全部笔记 持续部署概述 持续部署是能以自动化方式,频繁而且持续性的,将软件部署到生产环境.使软件产品能够快速迭代. 在之前部署 ...
- 一文带你解读Spring5源码解析 IOC之开启Bean的加载,以及FactoryBean和BeanFactory的区别。
前言 通过往期的文章我们已经了解了Spring对XML配置文件的解析,将分析的信息组装成BeanDefinition,并将其保存到相应的BeanDefinitionRegistry中,至此Spring ...
- Python语法进阶(2)- 正则表达式
1.初识正则表达式 1.1.什么是正则表达式 正则表达式是一个特殊的字符序列,便于检查一个字符串是否与某种模式匹配:应用于字符串,在字符串中通过复杂的过滤筛选等操作得到我们想要的数据: 正则表达式的特 ...
- kubernetes集群之Pod说能不能让我体面的消亡呀?
kubernetes集群之Pod说能不能让我体面的消亡呀? 由于 Pod 所代表的是在集群中节点上运行的进程,当不再需要这些进程时允许其体面地终止. 1.如果 preStop 回调所需要的时间长于默认 ...
- 搭建开源跳板机——jumpserver
搭建开源跳板机mobaxterm 官方文档:https://jumpserver.readthedocs.io/zh/master/ $ yum update -y # 防火墙 与 selinux 设 ...
- kali Vmware版root密码设置
kali Vmware版免去了虚拟机的安装麻烦,但是root密码如要设置一下,要不打开root的时候不方便VMware版本的kali下载地址:https://www.offensive-securit ...
- windows上安装foremost
做CTF题需要这工具来提取文件里的隐藏文件, 网上大部分是linux版本,之前好不容易找了一个exe文件结果还不能用.找了很长时间终于找到了: https://github.com/raddyfiy/ ...