当前位置: 首页 > article >正文

spring boot整合ArtemisMQ进行手动消息确认

1、SpringBoot整合ArtemisMQ进行手动消息确认使用的是:
factory.setSessionTransacted(false);
factory.setSessionAcknowledgeMode(ActiveMQJMSConstants.INDIVIDUAL_ACKNOWLEDGE);

2、SpringBoot整合ActiveMQ进行手动消息确认使用的是:
factory.setSessionTransacted(false);
factory.setSessionAcknowledgeMode(4);

import org.apache.activemq.ActiveMQSession;
import org.apache.activemq.artemis.api.jms.ActiveMQJMSConstants;
import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.config.DefaultJmsListenerContainerFactory;

import javax.jms.JMSException;
import javax.jms.Session;

@Configuration
public class ArtemisConfig {

    @Bean(name = "artemisConnectionFactory")
    public ActiveMQConnectionFactory artemisConnectionFactory() throws JMSException {
        ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory();
        factory.setBrokerURL("tcp://127.0.0.1:61616");
        factory.setUser("admin");
        factory.setPassword("xxx");
        return factory;
    }

    /**
     * 生产者配置
     * @param connectionFactory
     * @return
     */
    @Bean(name = "artemisJmsTemplate")
    public JmsTemplate activeMQJmsTemplate(@Qualifier("artemisConnectionFactory") ActiveMQConnectionFactory connectionFactory) {
        JmsTemplate jmsTemplate = new JmsTemplate(connectionFactory);
        jmsTemplate.setPubSubDomain(false);
        return jmsTemplate;
    }

    /**
     * 消费者配置
     * @param connectionFactory
     * @return
     */
    @Bean(name = "artemisListenerContainerFactory")
    public DefaultJmsListenerContainerFactory artemisListenerContainerFactory(@Qualifier("artemisConnectionFactory") ActiveMQConnectionFactory connectionFactory) {
        DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
        // 设置手动确认机制
        factory.setSessionTransacted(false);
        factory.setSessionAcknowledgeMode(ActiveMQJMSConstants.INDIVIDUAL_ACKNOWLEDGE);     // 每个消息监听时都需要手动确认
        factory.setConnectionFactory(connectionFactory);
        // 设置为true以启用发布/订阅模式
        factory.setPubSubDomain(false);
        return factory;
    }
}

http://www.kler.cn/a/418237.html

相关文章:

  • 三十二:网络爬虫的工作原理与应对方式
  • springboot366高校物品捐赠管理系统(论文+源码)_kaic
  • 【目标检测】YOLO:深度挖掘YOLO的性能指标。
  • 算法编程题-煎饼排序 不含AAA或者BBB的字符串
  • 量化交易系统开发-实时行情自动化交易-8.2.发明者FMZ平台
  • 力扣刷题TOP101:8.BM10 两个链表的第一个公共结点
  • 了解哈希并用线性探测和链地址法解决哈希冲突
  • Asio2网络库
  • 微信小程序首页实现轮廓图及动态渲染的高级教程
  • USBasp给arduino nano烧写bootloader
  • 使用lumerical脚本语言创建定向耦合器并进行数据分析(纯代码实现)
  • 【c++篇】:探索哈希表--数据结构中的独特存在,打开数据组织与查找的新视界
  • 深入解析 Kubernetes 节点操作:Cordon、Uncordon 和 Drain 的使用与最佳实践
  • Leecode刷题C语言之N皇后
  • 若依框架保姆级入门使用
  • IREE AI编译器关键模块分析
  • TypeScript核心语法(3)——类型系统
  • vue3中是如何实现双向数据绑定的
  • 实测数据处理(BP算法处理)——SAR成像算法系列(十)
  • Rsa加解密 + 签名验签
  • 鸿蒙面试 --- 性能优化
  • 【梦幻工厂的探索】亚马逊——基础设施的打造者
  • 游戏引擎学习第29天
  • 文件包含(精讲)
  • 【论文复现】StreamPETR
  • 数据分析自动化工具对比指南Cursor Composer和Google Data Science Agent