SpringBoot与ActiveMQ整合实现手动ACK

本文详细介绍了如何在SpringBoot项目中与ActiveMQ整合,实现消息手动确认(ACK)。通过自定义JmsTemplate、使用DefaultMessageListenerContainer和SimpleJmsListenerContainerFactory,分别展示了手动ACK的配置和实现方式。同时,文中提到了默认配置下自动确认的原理以及在使用INDIVIDUAL_ACKNOWLEDGE模式下的手动确认操作。
摘要由CSDN通过智能技术生成

        看这篇文章之前,我相信大家已经有过ActiveMQ的基本知识,已经知道JmsTemplete、MessageListenerContainer、Connection、Session、ConnectionFactory等相关知识,在后续的介绍里,还是会简单的进行介绍,以便更好的了解。

      项目搭建

         和SpringBoot整合之前,我们先导入相关依赖包,如下所示:

<!--activemq依赖-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
<!--lombok-->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>
<!--测试依赖包-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

           application.properties相关配置:

#配置ActiveMq
spring.activemq.broker-url=tcp://127.0.0.1:61616
spring.activemq.password=admin
spring.activemq.user=admin
#队列名称
activemq.first.queue=FIRST_QUEUE

        下面我们先实现生产者和消费者:

        JmsTemplate是消息处理核心类(线程安全),被用作消息的发送和接受,在发送或者是消费消息的同时也会对所需资源进行创建和释放。消息消费采用receive方式(同步、阻塞的),这里不做具体描述。关于消息的发送,常用的方式为send()以及convertAndSend()两种,其中send()发送需要我们自己指定消息格式,使用convertAndSend可以根据定义好的MessageConvert自动转换消息格式。大家请注意,在自定义JmsTemplate时,一定要指定ConnectionFactory,否则会出错。

          生产者,使用JmsTemplate.convertAndSend()实现消息的发送。

@Component
@Slf4j
public class FirstQueueProducer {
    @Resource
    private JmsTemplate jmsTemplate;

    /**
     * 用于发送消息到mq服务
     * @param destination queue或者topic
     * @param message 消息体
     */
    public void send(String destination, String message) {
        this.jmsTemplate.convertAndSend(destination,message);
        log.info("发送消息成功
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值