Springboot简单集成ActiveMQ

Easter79
• 阅读 771

##Springboot简单集成ActiveMQ ###消息发送者的实现 ####pom.xml添加依赖 org.springframework.boot spring-boot-starter-activemq org.messaginghub pooled-jms ####测试代码 @Autowired JmsMessagingTemplate template; @Test public void contextLoads() { template.convertAndSend("tym_002","hello_02"); } ###消息接受者的实现 ####pom文件依赖和发送者一样 ####创建JmsListener int a=0; @JmsListener(destination = "tym_002",containerFactory = "jmsQueryListenerFactory") public void testreceiveQueue(TextMessage textMessage, Session session) throws JMSException { try { int i=1/0; System.out.println("接受到:"+textMessage.getText()); textMessage.acknowledge(); } catch (Exception e) { a++; System.out.println("重试了 :"+a); session.recover(); } } ####其中containerFactory的赋值为自定义的配置类:

@Configuration
public class ActiveMqConfig {
@Bean
public RedeliveryPolicy redeliveryPolicy(){
    RedeliveryPolicy redeliveryPolicy=new RedeliveryPolicy();
    redeliveryPolicy.setUseExponentialBackOff(true);
    redeliveryPolicy.setMaximumRedeliveries(3);
    redeliveryPolicy.setInitialRedeliveryDelay(1000L);
    redeliveryPolicy.setBackOffMultiplier(2);
    redeliveryPolicy.setMaximumRedeliveryDelay(-1);
    return redeliveryPolicy;
}
@Bean
public ActiveMQConnectionFactory getActiveMQConnectionFactory(@Autowired RedeliveryPolicy redeliveryPolicy,@Value("${spring.activemq.broker-url}") String url){
    ActiveMQConnectionFactory activeMQConnectionFactory=new ActiveMQConnectionFactory(url);
    activeMQConnectionFactory.setRedeliveryPolicy(redeliveryPolicy);
    return activeMQConnectionFactory;
}
@Bean
public JmsTemplate getJmsTemplate(@Autowired ActiveMQConnectionFactory factory){
    JmsTemplate jmsTemplate=new JmsTemplate();
    jmsTemplate.setConnectionFactory(factory);
    return jmsTemplate;
}
@Bean(name="jmsQueryListenerFactory")
public DefaultJmsListenerContainerFactory jmsListenerContainerFactory(@Autowired ActiveMQConnectionFactory activeMQConnectionFactory){
    DefaultJmsListenerContainerFactory factory=new DefaultJmsListenerContainerFactory();
    factory.setConnectionFactory(activeMQConnectionFactory);
    factory.setConcurrency("1-10");
    factory.setRecoveryInterval(1000L);
    factory.setSessionAcknowledgeMode(4);
    return factory;
}
}

####其中factory.setSessionAcknowledgeMode(4)设置4是手动接受消息,防止在接受自动消息时,抛出异常导致消息无效。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
SpringBoot中使用rabbitmq,activemq消息队列和rest服务的调用
1\.activemq  首先引入依赖  pom.xml文件<dependency<groupIdorg.springframework.boot</groupId<artifactIdspringbootstarteractivemq</artifactId</depe
Stella981 Stella981
3年前
Spring Boot日志集成
!(https://oscimg.oschina.net/oscnet/1bde8e8d00e848be8b84e9d1d44c9e5c.jpg)SpringBoot日志框架SpringBoot支持JavaUtilLogging,Log4j2,Lockback作为日志框架,如果你使用star
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Easter79 Easter79
3年前
SpringBoot中使用rabbitmq,activemq消息队列和rest服务的调用
1\.activemq  首先引入依赖  pom.xml文件<dependency<groupIdorg.springframework.boot</groupId<artifactIdspringbootstarteractivemq</artifactId</depe
Stella981 Stella981
3年前
IDEA+SpringBoot+Mybatis Generator+MySQL8.0.17自动生成实体类和Mapper
1、搭建SpringBoot项目2、修改pom.xml文件添加依赖:!(https://oscimg.oschina.net/oscnet/15023a0b19569ea825b5255db0d44d1a651.png)<dependency<groupIdmysql</groupId<artifactIdmysq
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
Easter79
Easter79
Lv1
今生可爱与温柔,每一样都不能少。
文章
2.8k
粉丝
5
获赞
1.2k