`

activeMQ 消息发送与接收(二)

阅读更多
三、发布/订阅模式
3.1、消息发送

import javax.jms.Connection;
import javax.jms.DeliveryMode;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.Topic;
 
import org.apache.activemq.ActiveMQConnectionFactory;

/**
 * 发布/订阅模式--消息发送
 * 单连接、无持久化、无事务、消息接收自动确认
 */
public class TopicPublishers {

	public static void main(String[] args) {
		Connection conn = null;
		try{
			ActiveMQConnectionFactory connFactory = 
				new ActiveMQConnectionFactory("admin","showlike",
						"tcp://localhost:61616");
			conn = connFactory.createConnection();
			conn.start();
			
			Session session = conn.createSession(Boolean.FALSE,
					Session.AUTO_ACKNOWLEDGE);
			Topic topic = session.createTopic("FirstTopic");
			
			MessageProducer producer = session.createProducer(topic);
			producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
			
			long startTime = System.currentTimeMillis();
			int i = 1;
			do{
				TextMessage message = session.createTextMessage();
				message.setText(i+" , message_"+System.currentTimeMillis());
				producer.send(message);
				System.out.println("Sent message: "+message.getText());
				
//				Thread.sleep(1000);
				i++;
			}while(i<=100000);
			
			long endTime = System.currentTimeMillis();
	    	long diff = endTime - startTime;
	        long diffSeconds = diff / 1000;

	        System.out.print("top publishers total time: "+diffSeconds + " seconds.");
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			if(conn != null){
				try {
					conn.close();
				} catch (JMSException e) {
					e.printStackTrace();
				}
			}
		}
	}

}


3.2、接收消息

import javax.jms.Connection;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.Topic;

import org.apache.activemq.ActiveMQConnectionFactory;

/**
 * 发布/订阅模式--消息接收
 * 单连接、无持久化、无事务、消息接收自动确认
 */
public class TopicSubscribers {

	public static void main(String[] args) {
		Connection conn = null;
		try{
			ActiveMQConnectionFactory connFactory = 
				new ActiveMQConnectionFactory("admin","showlike",
						"tcp://localhost:61616?jms.prefetchPolicy.queuePrefetch=1");  
	        conn = connFactory.createConnection(); 
	        conn.start();  
	          
	        Session session = conn.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);  
	        Topic topic = session.createTopic("FirstTopic");  
	  
	        MessageConsumer consumer = session.createConsumer(topic); 
	        
	        long startTime = System.currentTimeMillis();
	        int i = 1;
	        do{
		        consumer.setMessageListener(new MessageListener(){  
		            public void onMessage(Message message) {  
		                TextMessage tm = (TextMessage) message;  
		                try {  
		                    System.out.println("Received message: " + tm.getText());  
		                } catch (JMSException e) {  
		                    e.printStackTrace();  
		                }  
		            }  
		        });
		        i++;
	        }while(i<=100000);   
	        
	        long endTime = System.currentTimeMillis();
	    	long diff = endTime - startTime;
	        long diffSeconds = diff / 1000;

	        System.out.print("top publishers total time: "+diffSeconds + " seconds.");
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			if(conn != null){
				try {
					conn.close();
				} catch (JMSException e) {
					e.printStackTrace();
				}
			}
		}
	}
}
分享到:
评论

相关推荐

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

    MQTT使用发布/订阅模型,发布者将消息发送到特定的主题,而订阅者则接收与他们订阅的主题相匹配的消息。 在SpringBoot项目中,我们可以通过以下步骤实现MQTT消息的发送和接收: 1. 添加依赖:在`pom.xml`文件中...

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

    在这个简单的例子中,我们将探讨如何利用Ajax与ActiveMQ交互,发送和接收消息。首先,你需要在服务器端设置一个ActiveMQ实例,可以通过下载并安装ActiveMQ来完成。安装完成后,启动ActiveMQ服务,这通常会开启一个...

    springboot集成activemq实现消息接收demo

    在IT行业中,Spring Boot是一个非常流行的微服务框架,它简化了Spring应用的开发过程。而ActiveMQ是Apache出品的一款...在实际生产环境中,ActiveMQ还可以与其他中间件、微服务架构结合,提供更强大的消息处理能力。

    ActiveMQ消息发送接收封装实现及定时测试.

    实现了ActiveMQ的初步封装,比较适合新手入门学习,简单明了

    activemq-cpp发送接收消息,消息过滤器

    在本文中,我们将深入探讨如何使用`activemq-cpp`库在C++环境中发送和接收消息,并利用消息过滤器来实现特定的消息处理。`activemq-cpp`是Apache ActiveMQ的一个C++客户端,它提供了与ActiveMQ服务器进行交互的能力...

    activeMQ收发工具.rar

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

    Springboot整合ActiveMQ,实现消息的发送接收功能源码

    在本文中,我们将深入探讨如何使用SpringBoot框架与Apache ActiveMQ集成,以便实现实时的消息发送和接收功能。首先,让我们简要了解一下SpringBoot和ActiveMQ。 **SpringBoot简介** SpringBoot是Spring框架的一个...

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

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

    activeMQ发送消息返回消息

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

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

    此外,`Session`接口用于管理事务和同步消息的发送与接收。 2. **连接ActiveMQ**: 使用`ActiveMQConnectionFactory`创建一个连接工厂,然后使用它创建到ActiveMQ服务器的连接。连接可以通过`Connection`接口的`...

    使用WebSocket协议接收ActiveMQ消息

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

    activemq消息发送和监听

    项目使用springboot2.0.4搭建,一个父项目包含两个子项目:发送服务;监听服务;消息服务使用ActiveMQ 5.14.3,在docker中运行。 项目中有两种协议消息:activemq和mqtt。

    ActiveMQ接受和发送工具.rar

    这个"ActiveMQ接受和发送工具.rar"压缩包包含了用于与ActiveMQ交互的实用工具,方便用户进行消息的接收和发送操作。 在使用ActiveMQ时,了解以下几个关键知识点是至关重要的: 1. **Java Message Service (JMS)**...

    ActiveMQ发送和接收protobuf协议消息的实例(精心整理,亲测可用)

    在本文中,我们将深入探讨如何使用ActiveMQ发送和接收基于protobuf(Protocol Buffers)协议的消息,同时也会介绍如何进行ActiveMQ的简化封装和配置自动重连机制。 首先,protobuf是Google开发的一种数据序列化协议...

    SpringBoot整合ActiveMQ(消息中间件)实现邮件发送功能

    4. **发送消息**:通过`JmsTemplate`或者`JMSTemplate`的`convertAndSend`方法可以向ActiveMQ发送消息。 **二、邮件发送功能** 邮件发送功能通常涉及以下步骤: 1. **配置邮件服务器**:在配置文件中设置SMTP...

    spring使用activeMQ实现消息发送

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

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

    在这个项目中,“Android基于MQTT协议利用ActiveMQ发送消息给Android端接收”指的是Android客户端应用通过MQTT协议与ActiveMQ服务器交互,实现消息的发送和接收。这是一个典型的长连接通信方式,与传统的HTTP请求...

    ActiveMq+SpringMVC实现邮件异步发送

    在本项目中,ActiveMQ与SpringMVC框架结合,实现了邮件的异步发送功能。 首先,我们需要理解ActiveMQ的基本概念。ActiveMQ是Apache软件基金会的产品,遵循JMS(Java消息服务)规范,支持多种协议,并且可以跨平台...

    python 发送和接收ActiveMQ消息的实例

    在本文中,我们将深入探讨如何使用Python与ActiveMQ进行交互,特别关注如何发送和接收消息。ActiveMQ是一款开源的消息中间件,由Java开发,它支持多种协议,包括AMQP、MQTT、OpenWire和Stomp。在Python环境中,通常...

Global site tag (gtag.js) - Google Analytics