1.spring集成ActiveMQ,依赖包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>4.2.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-client</artifactId>
<version>5.13.3</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-spring</artifactId>
<version>5.13.3</version>
</dependency>
2.配置spring文件,主要配置ConnectionFactory,和ActiveMQDestination,JSMTemplate
<!-- ActiveMQConnectionFactory -->
<bean id="activeMQConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<constructor-arg index="0" value="tcp://127.0.0.1:61616"/>
<property name="trustedPackages">
<list>
<value>com.lance.mq</value>
<value>java.util</value>
</list>
</property>
</bean>
<!-- 创建pooledConnectionFactory连接池, JmsTemlate每次发送消息都重新打开一个Connection -->
<bean id="pooledConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
<property name="connectionFactory" ref="activeMQConnectionFactory"/>
<property name="maxConnections" value="5"/>
</bean>
<!-- CachingConnectionFactory
<bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<constructor-arg index="0" ref="activeMQConnectionFactory"/>
</bean>
-->
<!-- jmsTemplate -->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="pooledConnectionFactory"/>
<property name="messageConverter">
<bean class="org.springframework.jms.support.converter.SimpleMessageConverter"/>
</property>
</bean>
<!-- ActiveMQQueue -->
<bean id="activeMQQueue" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg index="0" value="queue"/>
</bean>
3.消息发送
/**
* 发送Text消息队列
* @param message
*/
public void sendTextQueueMessage(final String message) {
jmsTemplate.send(activeMQQueue, new MessageCreator(){
@Override
public Message createMessage(Session session) throws JMSException {
return session.createTextMessage(message);
}
});
}
/**
* 发送消息并处理消息返回值
* @param message
* @throws JMSException
*/
public String sendTextQueueMessageAndReceive(final String message) throws JMSException {
Message replyMessage = jmsTemplate.sendAndReceive(activeMQQueue, new MessageCreator(){
@Override
public Message createMessage(Session session) throws JMSException {
return session.createTextMessage(message);
}
});
log.info("sendTextAndReceive: {}", JSON.toJSONString(replyMessage));
TextMessage textMessage = (TextMessage)replyMessage;
return textMessage.getText();
}
/**
* 订单入队列
* @param info
* @throws JMSException
*/
public String sendObjectQueueMessage(final OrderInfo info) throws JMSException {
Message message = jmsTemplate.sendAndReceive(activeMQQueue, new MessageCreator() {
@Override
public Message createMessage(Session session) throws JMSException {
return session.createObjectMessage(info);
}
});
log.info("sendTextAndReceive: {}", JSON.toJSONString(message));
TextMessage textMessage = (TextMessage)message;
return textMessage.getText();
}
5.可以模拟多个生产者,在高并发下,多台服务器请求进入消息队列,交给消费者统一生成订单,详见demo地址:
https://github.com/leelance/demo/tree/master/demo-springmvc-activemq
分享到:
相关推荐
Spring集成ActiveMQ配置详解 Spring框架与ActiveMQ的集成,为开发者提供了一种高效、可靠的JMS消息处理机制。在企业级应用中,这种集成能够极大地提升系统的响应速度和容错能力,特别是在需要异步通信和分布式事务...
在Spring框架中集成ActiveMQ,我们可以创建一个高效的、可扩展的系统,利用消息队列来解耦生产者和消费者,提高系统的响应速度和可靠性。以下将详细介绍如何进行Spring与ActiveMQ的集成,并提供一些关键知识点。 1....
Spring提供了`spring-jms`模块,它包含了一组丰富的API和配置选项,使得在Spring应用中集成ActiveMQ变得简单。通过使用`JmsTemplate`类,我们可以方便地发送和接收消息。 1. **配置ActiveMQ**:在开始之前,我们...
8. **监控与管理**:ActiveMQ提供了一个Web控制台,可以实时查看消息队列的状态、监控性能等。 在实际项目中,"springTest"这个压缩包可能包含了实现以上功能的代码示例,包括配置文件、Java类以及相关的测试用例。...
2. **创建消息生产者**:在Spring中,你可以使用`JmsTemplate`作为消息生产者,发送消息到ActiveMQ的队列或主题。配置`JmsTemplate`并设置ActiveMQ的连接工厂,然后在需要发送消息的地方调用其`convertAndSend`方法...
在提供的文件名"activemq-provider"中,我们可以推测这是实现消息生产者的一端,可能包含配置文件、消息发送逻辑以及相关的`MessageProducer`实现。"activemq-consumer"则可能是消息消费者的一端,包含了消息监听器...
以上就是Spring集成ActiveMQ的基本流程,涉及Queue和Topic的创建、持久化到MySQL以及消息的发送与接收。这个测试Demo涵盖了消息中间件的核心功能,可以帮助你理解并实践消息传递系统在实际项目中的应用。
Spring作为Java领域的主流框架,与ActiveMQ的集成使得这种消息中间件的使用更加便捷。本文将详细探讨Spring与ActiveMQ的整合过程,以及相关的知识点。 1. **Spring框架**:Spring是Java开发中的一个全功能框架,...
Spring 框架提供了与 ActiveMQ 集成的能力,使得开发者可以轻松地在 Spring 应用中使用 ActiveMQ。整合主要通过以下组件实现: 1. **Spring JMS**: Spring 提供了 JmsTemplate 类,它是发送和接收 JMS 消息的主要...
- ActiveMQ提供了Web控制台,可以通过浏览器进行监控和管理,查看队列状态、消息统计等信息。 - Spring也提供了健康检查和指标暴露的功能,便于在微服务环境中监控消息系统的运行状况。 总之,"spring配置...
总结来说,通过Spring Boot集成ActiveMQ、DataJPA和Ehcache,我们可以构建一个高效、响应快速的应用平台。ActiveMQ提供可靠的异步通信,DataJPA简化了数据库操作,而Ehcache则提高了数据访问的速度。这种集成方式在...
标题“spring+activemq”暗示了我们将探讨如何将Spring框架与ActiveMQ集成,以便利用JMS进行高效的消息传递。下面我们将深入讨论这个主题。 首先,**Spring对JMS的支持**:Spring框架提供了一套强大的JMS抽象层,...
总结来说,Spring Boot集成ActiveMQ提供了便捷的方式来利用JMS进行异步通信。通过理解JMS和ActiveMQ的工作原理,以及在Spring Boot中的配置和使用方法,开发者可以有效地优化应用程序的架构,提升系统的整体性能和...
9. **Spring注解**:在提供的实例中,可能包含了使用注解的方式配置Spring与ActiveMQ的集成,如`@EnableJms`启动JMS支持,`@JmsListener`定义消息监听器等。 10. **Tomcat服务器**:Tomcat是一个流行的Java Web...
5. **管理工具**:ActiveMQ提供了Web控制台和命令行工具,便于管理和监控消息队列。 6. **性能优化**:ActiveMQ在5.4.2版本中进行了性能优化,能够处理大量并发连接和高吞吐量的消息传输。 在"jmsSend"这个文件名...
在IT行业中,Spring框架是Java领域最常用的轻量级应用框架之一,而ActiveMQ则是Apache组织提供的一个开源消息中间件,常用于实现应用程序之间的异步通信。本案例将详细讲解如何将Spring与ActiveMQ整合,以提升系统的...
而Spring框架,作为一个Java平台的全功能模块化解决方案,提供了与ActiveMQ集成的能力,让开发者能够轻松地在Spring应用中使用消息队列。本篇将深入探讨Spring与ActiveMQ的集成及其配置过程。 首先,理解Spring与...
Spring框架作为Java领域广泛使用的应用框架,提供了与ActiveMQ集成的能力,使得我们可以方便地在Spring应用中实现消息的发布与订阅。现在我们来详细探讨Spring和ActiveMQ的整合以及消息的发布订阅机制。 首先,让...
10. **监控和管理**:ActiveMQ提供了一个Web控制台,可以通过Web界面监控消息队列的状态,查看消息、消费者、生产者等信息。这对于排查问题和优化系统非常有用。 通过以上步骤,你可以将ActiveMQ成功集成到Spring ...