`

ActiveMQ两种消息模式

 
阅读更多
一、点对点模式(p2p)



二、发布/订阅模式(pub/sub)



示例:

public class Producer {
	// 建立connectionFactory工厂对象
	private ActiveMQConnectionFactory connectionFactory;
	// 连接对象
	private Connection connection;
	// session对象
	private Session session;
	// 生产者
	private MessageProducer producer;

	public Producer() {
		this.connectionFactory = new ActiveMQConnectionFactory();
		try {
			this.connection = connectionFactory.createConnection("fu", "fu");
			this.connection.start();
			//参一:未开启事务,参二,自动签收
			this.session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);
			this.producer = session.createProducer(null);

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void send() throws Exception {
		//创建publish/subscribe消息模式
		Destination destination = this.session.createTopic("topic1");
		Message m = this.session.createTextMessage("一条消息");
		this.producer.send(destination, m);

        //关闭连接
        this.connection.close();
	}

	public static void main(String[] args) throws Exception {
		Producer p = new Producer();
		p.send();
	}

}



public class Comsumer {


	// 建立connectionFactory工厂对象
	private ActiveMQConnectionFactory connectionFactory;
	// 连接对象
	private Connection connection;
	// session对象
	private Session session;
	// 生产者
	private MessageConsumer consumer;
	// 目标地址
	private Destination destination;

	public Comsumer() {
		this.connectionFactory = new ActiveMQConnectionFactory();
		try {
			this.connection = connectionFactory.createConnection("fu", "fu");
			this.connection.start();
			//参一:未开启事务,参二,自动签收
			this.session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);
			//创建publish/subscribe消息模式
			this.destination = this.session.createTopic("topic1");
			// 消息过滤的不是消息本身,而是过滤消息附带的某些属性
			this.consumer = session.createConsumer(destination);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void recever() throws Exception {
		// 消息异步接收:当消息到达时,ActiveMQ主动通知消费端,可以注册一个MessageListener类实现onMessage方法,监听MQ送达消息
		this.consumer.setMessageListener(new Listener());

	}

	class Listener implements MessageListener {

		public void onMessage(Message message) {
			try {
				TextMessage m = (TextMessage) message;
				System.out.println(m.getText()+"===============");
			} catch (JMSException e) {
				e.printStackTrace();
			}
		}

	}

	public static void main(String[] args) throws Exception {
		Comsumer c = new Comsumer();
		c.recever();
	}
}



  • 大小: 311.3 KB
  • 大小: 510.7 KB
分享到:
评论

相关推荐

    ActiveMQ的队列queue模式(事务、应答、转发模式、阻塞消息)

    ActiveMQ提供了两种类型的应答:自动应答(auto-acknowledge)和显式应答(client-acknowledge)。自动应答模式下,消费者一旦接收到消息,就会自动发送确认,而显式应答则需要消费者在处理完消息后手动发送确认。未...

    jms之activeMQ 队列和广播模式例子(主要给初学者提供入门知识)

    这篇博客"jms之activeMQ 队列和广播模式例子"主要面向初学者,旨在提供ActiveMQ入门级的知识,通过实例解释队列(Queue)和主题(Topic)这两种基本的消息模式。 首先,我们要理解JMS中的队列和主题的区别。队列...

    Apache ActiveMQ学习笔记【原创:mq的方式有两种:点到点和发布/订阅】

    通过以上介绍,我们可以看到 ActiveMQ 提供了两种主要的消息传递模型:点对点模型和发布/订阅模型。这两种模型各有特点,适用于不同的应用场景。点对点模型适用于一对一的消息传递场景,而发布/订阅模型则适用于一对...

    7道消息队列ActiveMQ面试题!

    ActiveMQ的存储机制包括非持久化消息和持久化消息两种方式。非持久化消息存储在内存中,而持久化消息则存储在磁盘文件中。当内存中的非持久化消息过多时,ActiveMQ会将这些消息写入临时文件来腾出内存。如果磁盘空间...

    Spring+ActiveMQ消息队列+前台接收消息

    4. **消息类型**:JMS支持两种消息模型:点对点(Queue)和发布/订阅(Topic)。Queue模式下,消息会被一个消费者接收并删除;Topic模式下,消息可以被多个订阅者接收。 5. **消息的持久化**:ActiveMQ允许配置消息...

    ActiveMQ学习笔记之九--发送消息到队列中

    有阻塞和非阻塞两种模式,取决于应用程序的需求。 在提供的压缩包文件中,`bin`目录通常包含可执行文件和脚本,方便用户启动和管理ActiveMQ服务器。`.settings`目录可能包含项目的Eclipse配置信息,`.project`和`....

    ActiveMQ(包括消息生成端和andorid消息接受端)

    总之,这个项目展示了如何在两端(消息生成端和Android消息接受端)实现ActiveMQ的完整工作流程,包括点对点通信、广播和离线推送。开发者可以通过学习和实践该项目,掌握ActiveMQ在实际应用中的使用技巧和最佳实践...

    ActiveMQ消息总线介绍

    JMS支持两种主要的消息传递模型:点对点(Point-to-Point, PTP)和发布/订阅(Publish/Subscribe, Pub/Sub)。这两种模型分别适用于不同类型的应用场景。 #### 三、ActiveMQ简介 Apache ActiveMQ 是一个开源的消息...

    实验三 消息中间件应用开发:ActiveMQ实现单线程多队列

    首先,我们需要了解ActiveMQ的核心特性,如点对点(Point-to-Point)和发布/订阅(Publish/Subscribe)模型,这两种模式是消息传递的两种基本方式。点对点模式下,每个消息只有一个消费者,而发布/订阅模式下,一个...

    ActiveMQ消息中间件之队列模式和主题模式详解.docx

    ActiveMQ提供了两种主要的消息模式:队列模式和主题模式。 **队列模式**: 在队列模式中,消息生产者将消息发送到一个特定的目的地,即队列。如果有多个消费者订阅了同一个队列,消息会被逐个分发给消费者,且每个...

    java消息中间件教程-activemq

    JMS定义了两种消息模型:点对点(P2P)和发布/订阅(Pub/Sub)模型。 #### 三、ActiveMQ的安装与使用 - **4-1 Windows环境下安装ActiveMQ** - 在ActiveMQ官网下载Windows版本的ActiveMQ安装包。 - 下载完成后解...

    ActiveMQ的队列、topic模式

    本文将深入探讨ActiveMQ中的两种主要消息模式:队列(Queue)和主题(Topic)。 1. **队列(Queue)模式**: 队列模式遵循“发布/订阅”模型,但是一对一的。每个消息只能被一个消费者接收并处理。当一个消息被...

    Spring平台整合消息队列ActiveMQ实现发布订阅、生产者消费者模型(适合新手或者开发人员了解学习ActiveMQ机制)

    本项目基于Spring这一平台,整合流行的开源消息...5.以上结果表明,向队列生产的每条消息,只能被某一个消费者读取,而发布的消息,可以被每个订阅者重复读取,这是两种模式最大的区别,实际应用中要根据情况来选择。

    Apache_ActiveMQ教程

    这两种模式对应不同的应用场景,其中发布/订阅模式下又有非持久订阅和持久化订阅两种消息处理方式。 Point-to-Point消息模式下的开发流程涉及生产者和消费者的开发。生产者需要创建JMS连接,基于该连接创建会话,...

    最新稳定版ActiveMQ5.15.0

    5. **消息队列和主题**:ActiveMQ提供两种消息模式:点对点(Queue)和发布/订阅(Topic)。点对点模式中,每个消息只有一个消费者,而发布/订阅模式下,一个消息可以被多个订阅者接收。 6. **消息过滤**:ActiveMQ...

    Activemq原理文档

    Activemq的部署可以分为两种模式: standalone模式和网络模式。在standalone模式下,Activemq将作为独立的进程运行,而在网络模式下,Activemq将作为一个分布式系统运行。 性能测试 Activemq的性能测试可以分为两...

    4.1 ActiveMQ的三种集群模式1

    在本节中,我们将详细探讨ActiveMQ的三种集群模式,特别是基于共享文件的集群模式。 一、基于共享文件的集群 在基于共享文件的集群模式中,ActiveMQ节点通过共享一个持久化存储来实现数据同步和高可用性。这种模式...

    activemq 配置说明与activemq入门讲解

    4. **消息模型**:ActiveMQ支持两种消息模型——点对点(Queue)和发布/订阅(Topic)。点对点模式中,每个消息仅被一个消费者接收;发布/订阅模式中,消息被多个订阅者接收。 5. **消息类型**:ActiveMQ支持...

    ActiveMQ消息中间件面试专题.pdf

    ActiveMQ旨在提供一种可靠的消息传递机制,以支持应用程序之间的异步通信。作为面向消息的中间件(MOM),ActiveMQ实现了JMS(Java Message Service)1.1规范,这一规范定义了企业级消息服务的标准接口和行为。 JMS...

Global site tag (gtag.js) - Google Analytics