`

ActiveMQ接收消息

阅读更多

之前写了一个ActiveMQ发送消息的例子。现在记录一下java接收ActiveMQ消息的代码。

 

package com.syxp.dns.receive;


import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.log4j.Logger;

public class ReceiveMessageFromMQ {

	private static String url = "tcp://localhost:61616";
	private static String user = "";
	private static String password = "";
	private static Logger logger = Logger.getLogger(ReceiveMessageFromMQ.class);
	
	public void receiveMessage(){
		// 创建连接工厂
		ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(user, password, url);
        // 创建连接
        Connection connection;
		try {
			connection = connectionFactory.createConnection();
			connection.start();
	        // 创建Session
	        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
	        // 创建目标,就创建主题也可以创建队列
	        Destination destination = session.createQueue("integratedalarm.subject");
	        // 创建消息消费者
	        MessageConsumer consumer = session.createConsumer(destination);
	        // 接收消息,参数:接收消息的超时时间,为0的话则不超时,receive返回下一个消息,但是超时了或者消费者被关闭,返回null
	        Message message = consumer.receive(1000);
	        if (message instanceof TextMessage) {
	            TextMessage textMessage = (TextMessage) message;
	            String text = textMessage.getText();
	            logger.info("接收的消息:"+"\n"+text);
	        } else {
	        	logger.info("接收的消息:"+"\n"+message);
	        }
	        consumer.close();
	        session.close();
	        connection.close();
		} catch (JMSException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args) {
		ReceiveMessageFromMQ receiveMessageFromMQ = new ReceiveMessageFromMQ();
		receiveMessageFromMQ.receiveMessage();
	}
}

 

上面有详细的注释,运行了上面的接收的方法之后,会打印出一条相应队列的未接收消息。在ActiveMQ的监视控制页面中,可以看到有一条消息已经被消费。

3
4
分享到:
评论
1 楼 bksqmy 2015-05-07  
博主辛苦,收获非常打。

相关推荐

    springboot集成activemq实现消息接收demo

    本教程将详细介绍如何在Spring Boot项目中集成ActiveMQ,实现消息接收的Demo。 首先,我们需要在Spring Boot项目中引入ActiveMQ的相关依赖。在`pom.xml`文件中添加以下Maven依赖: ```xml <groupId>org.spring...

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

    通过以上步骤,你可以成功地将Spring与ActiveMQ整合,实现后台消息的生产和消费,并在前台接收到这些消息。这种设计模式常用于大型分布式系统,如订单处理、日志收集、任务调度等场景,以提高系统的可靠性和响应速度...

    activeMQ收发工具.rar

    3. **消息类型**:理解JMS提供的不同消息类型,如文本消息、对象消息、流消息和二进制消息,以及如何通过ActiveMQ收发工具发送和接收这些消息。 4. **队列与主题**:熟悉ActiveMQ中的队列(Queue)和主题(Topic)...

    activeMQ发送消息返回消息

    在ActiveMQ中,发送和接收消息是一个核心功能,它允许应用程序之间进行异步通信,提高系统的可扩展性和解耦性。 在ActiveMQ中发送消息,通常涉及以下步骤: 1. **创建ConnectionFactory**:ConnectionFactory是...

    ActiveMQ消息过期时间设置和自动清除解决方案

    - **Message 过期则客户端不能接收**:当消息过期后,客户端将无法接收到这些过期的消息。 - **ttlCeiling**:表示过期时间的上限。例如,如果设置为30000毫秒(即30秒),那么任何通过程序设置的过期时间如果超过了...

    SpringBoot+ActiveMq+MQTT实现消息的发送和接收

    在本文中,我们将深入探讨如何使用SpringBoot、ActiveMQ和MQTT来实现消息的发送与接收。这是一个典型的分布式系统中的消息通信场景,其中SpringBoot作为应用程序框架,ActiveMQ作为消息中间件,而MQTT(Message ...

    go语言实现使用activemq 收发消息

    启动该程序,你的Go应用就能连接到ActiveMQ,订阅并接收消息,同时也能发送消息到指定队列。 通过这种方式,Go语言可以很好地集成到基于ActiveMQ的消息传递系统中。了解Go的并发模型和错误处理机制,以及STOMP协议...

    使用WebSocket协议接收ActiveMQ消息

    ActiveMQ,作为一款流行的开源消息中间件,也支持WebSocket协议,使得客户端可以通过WebSocket接口来接收和发送消息。 ActiveMQ是Apache软件基金会开发的消息队列产品,它遵循开放标准,如JMS(Java Message ...

    SpringBoot快速玩转ActiveMQ消息队列

    除了基本的发送和接收消息外,ActiveMQ还提供了一些高级特性,例如: - **持久化**:可以设置消息的持久性,即使在服务器重启后,未被消费的消息也不会丢失。 - **事务**:支持JMS事务,确保消息的准确传递。 - **...

    Android基于MQTT协议利用ActiveMQ发送消息给Android端接收

    ActiveMQ接收到消息后,会将其路由到所有已订阅该主题的客户端。 在消息接收部分,Android应用需要订阅一个或多个主题。通过调用subscribe方法,指定主题并提供一个Callback,当有新消息到达时,Callback会被调用,...

    activemq 接收文件流 C#

    // 一定要确认接收,否则ActiveMQ可能不会删除消息 session.Acknowledge(); } } } ``` 这个示例代码中,我们假设文件流是通过一个名为"file-stream-queue"的队列传递的。当C#客户端接收到消息后,它将文件流...

    用C#实现的ActiveMQ发布/订阅消息传送

    在本场景中,我们关注的是如何使用C#编程语言结合ActiveMQ来实现发布/订阅模式的消息传送。ActiveMQ是Apache软件基金会开发的一个开源消息传递平台,支持多种协议,包括NMS(.NET Messaging Service),它是专门为...

    activemq消息持久化所需Jar包

    在分布式系统中,消息持久化是指当消息代理(如ActiveMQ)接收到消息后,会将其存储到磁盘中,即使服务器重启或出现故障,也能保证这些消息不会丢失。这在高可用性和容错性方面扮演着关键角色。 要实现ActiveMQ的...

    7道消息队列ActiveMQ面试题!

    ActiveMQ是一款非常流行的开源消息队列中间件,它实现了JMS(Java Message Service,Java消息服务)1.1规范,面向消息的中间件(Message Oriented Middleware,MOM)是指利用高效可靠的消息传递机制进行与平台无关的...

    spring使用activeMQ实现消息发送

    本文将深入探讨如何在Spring环境中使用ActiveMQ来实现消息的发送与接收,以提高系统的可扩展性和解耦性。 首先,我们需要了解Spring对ActiveMQ的支持。Spring提供了`spring-jms`模块,它包含了一组丰富的API和配置...

    ActiveMQ收发消息Demo

    在这个"ActiveMQ收发消息Demo"中,我们将深入探讨如何使用ActiveMQ进行消息的接收和发送。 首先,让我们了解ActiveMQ的基本概念。在JMS框架下,消息生产者(Producer)创建消息并将其发送到消息队列(Queue)或主题...

    简单的activemq点对点的同步消息模型

    ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它遵循开放消息传递协议(Open Message Broker Protocol,即AMQP)和Java消息服务(Java Message Service,JMS)规范,用于实现应用程序之间的异步通信和数据...

    activemq 通过ajax发送接收消息简单例子

    在本示例中,我们将探讨如何利用Ajax技术与ActiveMQ进行交互,实现客户端的异步消息发送和接收。 Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下更新部分网页内容的技术。在与ActiveMQ...

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

    在IT行业中,Apache ActiveMQ是一个广泛使用的开源消息代理和队列服务器,它是Java Message Service (JMS) 的实现,能够处理各种消息传递模式,包括点对点和发布/订阅。这篇"ActiveMQ学习笔记之九--发送消息到队列中...

Global site tag (gtag.js) - Google Analytics