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. 动画推荐-By胡罗

    常用16种视图切换动画 系统自带的动画,结构清晰,代码简单 带弹性动画的分享菜单-https://github.com/KittenYang/KYShareMenu 第一眼以为用的是Pop动画,看了下 ...

  2. Kubernetes 集群日志 和 EFK 架构日志方案

    目录 第一部分:Kubernetes 日志 Kubernetes Logging 是如何工作的 Kubernetes Pod 日志存储位置 Kubelet Logs Kubernetes 容器日志格式 ...

  3. Spring 初始化流程

    开始 在SpringIOC中,前面讲述了如何配置BeanDefinition和如何注册BeanDefinition,但是这些知识容器初始化的一部分,在AbstractApplicationContex ...

  4. Solution -「WC 2022」秃子酋长

    \(\mathscr{Description}\)   Link. (It's empty temporarily.)   给定排列 \(\{a_n\}\),\(q\) 次询问,每次给出 \([l,r ...

  5. Solution -「AGC 002F」「AT 2000」Leftmost Ball

    \(\mathcal{Description}\)   Link.   给你 \(n\) 种颜色的球,每个球有 \(k\) 个,把这 \(n\times k\) 个球排成一排,把每一种颜色的最左边出现 ...

  6. Solution -「CF 1342E」Placing Rooks

    \(\mathcal{Description}\)   Link.   在一个 \(n\times n\) 的国际象棋棋盘上摆 \(n\) 个车,求满足: 所有格子都可以被攻击到. 恰好存在 \(k\ ...

  7. GCC 使用库文件名进行链接

    使用 GCC 进行 C/C++ 代码编译时,如果代码中使用到了库函数,需要使用 -l 选项指定该库函数所在的库.如:-lm.-lrt.-lpthread等.这种方式使用的是库的缩写.一个库的文件名如果 ...

  8. etcdserver: mvcc: database space exceeded

    文章目录 查看节点状态 获取旧版本号 压缩旧版本 清理碎片 再次查看节点状态 清楚告警 k8s的apiserver组件重启失败,通过journalctl -xeu kube-apiserver命令查看 ...

  9. design PLL

    PLL PLL主要是NCO中通过相位比较器,控制压控振荡器,控制频率.

  10. k8s搭建监控:安装metrics server和dashboard

      安装metrics server 参考:https://github.com/kubernetes-sigs/metrics-server kubectl  create -f component ...