`

MQ Demo 整合 Spring

 
阅读更多

 

本地安装好active mq ,开启服务。

附件是 mq消息队列 接收请求,并将请求处理完成放到队列的示例。

 

单独使用MQ,示例如下:

 

 

 

package demo.activemq;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;

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

public class Sender {
	private static final int SEND_NUMBER = 5;

	public static void main(String[] args) {
		// ConnectionFactory :连接工厂,JMS 用它创建连接
		ConnectionFactory connectionFactory;
		// Connection :JMS 客户端到JMS Provider 的连接
		Connection connection = null;
		// Session: 一个发送或接收消息的线程
		Session session;
		// Destination :消息的目的地;消息发送给谁.
		Destination destination;
		// MessageProducer:消息发送者
		MessageProducer producer;
		// TextMessage message;
		// 构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar
		connectionFactory = new ActiveMQConnectionFactory(
				ActiveMQConnection.DEFAULT_USER,
				ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616");
		try {
			// 构造从工厂得到连接对象
			connection = connectionFactory.createConnection();
			// 启动
			connection.start();
			// 获取操作连接
			session = connection.createSession(Boolean.TRUE,
					Session.AUTO_ACKNOWLEDGE);
			// 获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在在ActiveMq的console配置
			destination = session.createQueue("FirstQueue");
			// 得到消息生成者【发送者】
			producer = session.createProducer(destination);
			// 设置不持久化,此处学习,实际根据项目决定
			producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
			// 构造消息,此处写死,项目就是参数,或者方法获取
			sendMessage(session, producer);
			session.commit();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (null != connection)
					connection.close();
			} catch (Throwable ignore) {
			}
		}
	}

	public static void sendMessage(Session session, MessageProducer producer)
			throws Exception {
		for (int i = 1; i <= SEND_NUMBER; i++) {
			TextMessage message = session.createTextMessage("ActiveMq 发送的消息"
					+ i);
			// 发送消息到目的地方
			System.out.println("发送消息:" + "ActiveMq 发送的消息" + i);
			producer.send(message);
		}
	}
}

 

 

package demo.activemq;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.jms.TextMessage;

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

public class Receiver {
	public static void main(String[] args) {
		// ConnectionFactory :连接工厂,JMS 用它创建连接
		ConnectionFactory connectionFactory;
		// Connection :JMS 客户端到JMS Provider 的连接
		Connection connection = null;
		// Session: 一个发送或接收消息的线程
		Session session;
		// Destination :消息的目的地;消息发送给谁.
		Destination destination;
		// 消费者,消息接收者
		MessageConsumer consumer;
		connectionFactory = new ActiveMQConnectionFactory(
				ActiveMQConnection.DEFAULT_USER,
				ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616");
		try {
			// 构造从工厂得到连接对象
			connection = connectionFactory.createConnection();
			// 启动
			connection.start();
			// 获取操作连接
			session = connection.createSession(Boolean.FALSE,
					Session.AUTO_ACKNOWLEDGE);
			// 获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在在ActiveMq的console配置
			destination = session.createQueue("FirstQueue");
			consumer = session.createConsumer(destination);
			while (true) {
				// 设置接收者接收消息的时间,为了便于测试,这里谁定为100s
				TextMessage message = (TextMessage) consumer.receive(1000);
				if (null != message) {
					System.out.println("收到消息" + message.getText());
				} else {
					break;
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (null != connection)
					connection.close();
			} catch (Throwable ignore) {
			}
		}
	}
}

 

 

 

 

分享到:
评论

相关推荐

    spring boot 集成rabbit mq 成功demo

    spring boot 集成rabbit mq 成功demo,spring boot 集成rabbit mq 成功demo

    SPRING-MVC-MQ-CXF-REST_Demo

    "SPRING-MVC-MQ-CXF-REST_Demo"这个项目很可能是用来演示如何在同一个应用中整合Spring MVC、MQ、CXF和REST技术。项目可能包含了以下部分: 1. Spring MVC配置:展示了如何设置DispatcherServlet、视图解析器以及...

    Spring + ActiveMq + maven demo

    **Spring + ActiveMQ + Maven 整合示例详解** 在当今的软件开发中,Spring框架因其强大的功能和灵活性,已经成为Java企业级应用的首选。同时,消息中间件ActiveMQ作为Apache出品的一款开源JMS(Java Message ...

    aliyun-mq-demo.zip

    在本项目"aliyun-mq-demo.zip"中,我们看到一个使用SpringBoot集成阿里云消息队列RocketMQ的示例。这个压缩包包含了构建这样一个应用所需的所有文件。下面将详细介绍SpringBoot与RocketMQ的整合以及相关知识点。 1....

    Springboot整合RabbitMQ简单demo

    整合Spring Boot和RabbitMQ,我们需要以下几个步骤: 1. **添加依赖**:在项目的pom.xml文件中,我们需要引入Spring Boot的`spring-boot-starter-amqp`依赖,以及RabbitMQ的客户端库`rabbitmq-client`。这样,...

    spring-boot示例项目

    mq-redis|[redis之mq实现,发布订阅模式](https://github.com/smltq/spring-boot-demo/blob/master/mq-redis) email|[email实现邮件发送](https://github.com/smltq/spring-boot-demo/blob/master/email) jGit|...

    Spring RabbitMQ demo

    在 Spring RabbitMQ demo 中,通常会有以下部分代码: ```java @Configuration public class RabbitConfig { @Value("${rabbitmq.host}") private String rabbitmqHost; @Value("${rabbitmq.port}") private ...

    springboot+mybatis+redis+jpa+mq 使用demo

    在本项目中,"springboot+mybatis+redis+jpa+mq 使用demo"是一个整合了多种技术的实战示例,旨在展示如何在Spring Boot框架下有效地集成MyBatis、Redis、JPA(Java Persistence API)以及消息队列MQ。下面将详细解释...

    ActiveMQ与Spring联合使用Demo

    在将ActiveMQ与Spring整合的过程中,我们需要完成以下步骤: 1. **配置ActiveMQ**:首先,我们需要在本地或服务器上安装并运行ActiveMQ。这可以通过下载ActiveMQ的二进制包,然后启动`bin/activemq`脚本来完成。...

    spring boot2.0 demo

    在“spring boot2.0 demo”这个项目中,开发者已经整合了多个关键的技术组件,以展示其在实际应用中的使用。 首先,我们来看MQ(Message Queue),这是一个消息中间件,例如RabbitMQ或Kafka,用于处理异步通信和...

    Spring + JMS + MQ Connection

    总结一下,Spring与JMS的整合主要涉及ConnectionFactory的配置、JmsTemplate的使用以及监听器容器的设置。通过这些配置,我们可以方便地在Spring应用中实现基于消息的通信,从而提高系统的可扩展性和解耦性。在实际...

    ActiveMQ整合Spirng的一个demo

    本示例"ActiveMQ整合Spring的一个demo"旨在展示如何将这两个强大的工具结合在一起,以实现高效、可靠的消息传递。 Apache ActiveMQ是开源的JMS(Java Message Service)提供商,它允许应用程序之间通过异步通信进行...

    54个spring boot demo

    在这个名为"54个spring boot demo"的项目中,提供了54个不同的示例,涵盖了Spring Boot的多种应用场景,包括数据访问、模板引擎、WebSocket、消息队列以及日志管理等。接下来,我们将深入探讨这些关键知识点。 1. *...

    springboot整合mongodb+redis+mybatis+mysql

    SpringBoot 整合 MySQL 通常使用 `spring-boot-starter-jdbc` 或 `spring-boot-starter-data-jpa` 依赖,其中 JPA(Java Persistence API)是 Java 提供的 ORM(对象关系映射)标准,可以方便地进行对象与数据库表...

    zeromq简易demo搭建(java版本)

    ZeroMQ,也被称为ØMQ、0MQ或 zmq,是一个轻量级的消息中间件,它提供了一个高级消息队列模型,允许分布式系统中的组件进行快速通信。 在Java中使用ZeroMQ,首先你需要下载ZeroMQ的Java绑定库JeroMQ,可以从其官方...

    springboot整合stream使用rabbitmq作为消息中间件

    当我们谈论"SpringBoot整合stream使用rabbitmq作为消息中间件"时,我们涉及的关键技术点主要包括Spring Boot的Stream模块、RabbitMQ的使用以及它们如何协同工作来实现高效的微服务通信。 Spring Boot Stream模块是...

    activeMQ demo

    《SpringBoot整合ActiveMQ的完整示例解析及MQ界面配置指南》 在现代分布式系统中,消息队列(Message Queue,简称MQ)扮演着至关重要的角色,它能够有效地解耦系统组件,提高系统的扩展性和容错性。本文将深入探讨...

    web-service-demo:基于Dubbo的微服务基础框架,整合Spring Boot 2与Dubbo对外提供独立服务,集成Redis、Rabbitmq、mybatis

    用于从大单体应用中解耦,实施前后端分离部署、分层部署、分服务部署,可使用独立数据库,应用redis缓存,发送MQ消息 ###基础依赖 JDK 8+ Zookeeper Redis Rabbitmq ###技术组件: Spring Boot 2.0.4.RELEASE ...

    MQ消息中间件之RabbitMQ以及整合SpringBoot2.x实战教程

    SpringBoot是一个简化Spring应用初始搭建以及开发过程的框架。整合RabbitMQ可以方便地在SpringBoot项目中使用消息队列。以下是一些核心概念: 1. **配置**: 首先,需要在`application.properties`或`application....

Global site tag (gtag.js) - Google Analytics