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的更多相关文章

  1. 消息队列(MQ)入门-activemq,代码级别

    第一种:activemq: 1.从官网下载apache-activemq-5.15.3-bin.zip并解压: 2.启动activemq, CMD--/bin/activemq start ,访问12 ...

  2. 改善JAVA代码01:考虑静态工厂方法代替构造器

    前言 系列文章:[传送门]   每次开始新的一本书,我都会很开心.新书新心情. 正文 静态工厂方法代替构造器 说起这个,好多可以念叨的.做了一年多的项目,慢慢也有感触. 说起构造器 大家很明白,构造器 ...

  3. ActiveMQ基础01——Linux下载安装ActiveMQ

    1.下载 下载地址:http://activemq.apache.org/ 点击按钮 下载Linux下最新版安装包,点击即可下载 2.安装ActiveMQ 将之前下载的安装包上传到linux当中,一般 ...

  4. Java连接ActiveMQ代码示例(Producer和Consumer)

    import org.apache.activemq.ActiveMQConnection; import org.apache.activemq.ActiveMQConnectionFactory; ...

  5. 常用jQuery代码01

    1.点击获得当前元素索引,实现切换相应的图片路径 $(".li").bind("click", function () { var _num = $(this) ...

  6. CSS经验分享:如何书写可维护的CSS代码01

    转自:http://www.cnblogs.com/hxling/archive/2013/02/21/2920520.html 一.在样式表开头添加一个注释块,用以描述这个样式表的创建日期.创建者. ...

  7. ActiveMQ 笔记—01

  8. 【智能算法】变邻域搜索算法(Variable Neighborhood Search,VNS)超详细解析和TSP代码实例以及01背包代码实例

    喜欢的话可以扫码关注我们的公众号哦,更多精彩尽在微信公众号[程序猿声] 00 目录 局部搜索再次科普 变邻域搜索 造轮子写代码 01 局部搜索科普三连 虽然之前做的很多篇启发式的算法都有跟大家提过局部 ...

  9. 常用 Java 静态代码分析工具的分析与比较

    常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基 本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBu ...

随机推荐

  1. shell——trap捕捉信号(附信号表)

    trap捕捉信号有三种形式 第一种:trap "commands" signal-list 当脚本收到signal-list清单内列出的信号时,trap命令执行双引号中的命令. 例 ...

  2. haproxy https实现

    一.实验环境 一.准备后端服务器 # yum -y install nginx # echo "10.0.0.7" > /usr/share/nginx/html/index ...

  3. Worms

    474B Worms time limit per test 1 second memory limit per test 256 megabytes input standard input out ...

  4. .NET 固定时间窗口算法实现(无锁线程安全)

    一.前言 最近有一个生成 APM TraceId 的需求,公司的APM系统的 TraceId 的格式为:APM AgentId+毫秒级时间戳+自增数字,根据此规则生成的 Id 可以保证全局唯一(有 N ...

  5. Solution -「ABC 213H」Stroll

    \(\mathcal{Description}\)   Link.   给定一个含 \(n\) 个结点 \(m\) 条边的简单无向图,每条边的边权是一个常数项为 \(0\) 的 \(T\) 次多项式, ...

  6. 网页外部注入vConsole调试

      概要 本篇介绍一种十分方便的方法为网站添加 vConsole 调试(通过篡改请求外部注入的方式,不需要您是网站的拥有者,主要用于调试线上站点). 之前已经发过一篇<借助FreeHttp为任意 ...

  7. 北大博士生提出CAE,下游任务泛化能力优于何恺明MAE

    大家好,我是对白. 何恺明时隔两年发一作论文,提出了一种视觉自监督学习新范式-- 用掩蔽自编码器MAE,为视觉大模型开路. 这一次,北大博士生提出一个新方法CAE,在其下游任务中展现的泛化能力超过了M ...

  8. Smartbi与Tableau功能盘点,我选Smartbi!

    只要对大数据BI行业有所了解的人群,想必这两个数据分析工具Tableau和PowerBI都已经耳熟能详了吧. ·关于Tableau Tableau是一种数据可视化的工具,可提供复杂的计算.数据混合和仪 ...

  9. Python:numpy

    学习自:NumPy 教程 | 菜鸟教程 官网:Numpy官方文档 1.简介 numpy主要用于数组计算,包含: 1)一个强大的N维数组对象ndarray 2)广播功能函数 3)整合 C/C++/For ...

  10. python3中map()函数用法

    python源码解释如下:map(func, *iterables) --> map objectMake an iterator that computes the function usin ...