栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot整合ActiveMQ过程解析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot整合ActiveMQ过程解析

目录结构

引入 maven依赖

 
    org.springframework.boot
    spring-boot-starter-parent
    1.5.4.RELEASE
     
  
  
    UTF-8
    UTF-8
    1.8
  
  
    
      org.springframework.boot
      spring-boot-starter
    
    
      org.springframework.boot
      spring-boot-starter-web
    
    
      org.springframework.boot
      spring-boot-starter-test
      test
    
    
      org.springframework.boot
      spring-boot-starter-activemq
    
  
  
    
      
 org.springframework.boot
 spring-boot-maven-plugin
      
    
  

引入 application.yml配置

spring:
 activemq:
  broker-url: tcp://127.0.0.1:61616
  user: admin
  password: admin
queue: springboot-queue
server:
 port: 8080

创建QueueConfig

@Configuration
public class QueueConfig {
  @Value("${queue}")
  private String queue;

  @Bean
  public Queue logQueue() {
    return new ActiveMQQueue(queue);
  }

  @Bean
  public JmsTemplate jmsTemplate(ActiveMQConnectionFactory activeMQConnectionFactory, Queue queue) {
    JmsTemplate jmsTemplate = new JmsTemplate();
    jmsTemplate.setDeliveryMode(2);// 进行持久化配置 1表示非持久化,2表示持久化
    jmsTemplate.setConnectionFactory(activeMQConnectionFactory);
    jmsTemplate.setDefaultDestination(queue); // 此处可不设置默认,在发送消息时也可设置队列
    jmsTemplate.setSessionAcknowledgeMode(4);// 客户端签收模式
    return jmsTemplate;
  }

  // 定义一个消息监听器连接工厂,这里定义的是点对点模式的监听器连接工厂
  @Bean(name = "jmsQueueListener")
  public DefaultJmsListenerContainerFactory jmsQueueListenerContainerFactory(
      ActiveMQConnectionFactory activeMQConnectionFactory) {
    DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
    factory.setConnectionFactory(activeMQConnectionFactory);
    // 设置连接数
    factory.setConcurrency("1-10");
    // 重连间隔时间
    factory.setRecoveryInterval(1000L);
    factory.setSessionAcknowledgeMode(4);
    return factory;
  }
}

创建生产者:

@SpringBootApplication
@Component
@EnableScheduling
public class Producer {
  
  @Autowired
  private JmsMessagingTemplate jmsMessagingTemplate;
  
  @Autowired
  private Queue queue;
  
  @Scheduled(fixedDelay=3000)
  public void send() {
    String result = System.currentTimeMillis()+"---测试";
    System.out.println("result"+result);
    jmsMessagingTemplate.convertAndSend(queue,result);
  }
  public static void main(String[] args) {
    SpringApplication.run(Producer.class, args);
  }
}

创建消费者的application.yml

spring:
 activemq:
  broker-url: tcp://127.0.0.1:61616
  user: admin
  password: admin
queue: springboot-queue
server:
 port: 8081

创建消费者:

@Component
@SpringBootApplication
public class consumer {

  private int count =0;
  
  @JmsListener(destination = "${queue}")
  public void receive(TextMessage textMessage,Session session) throws JMSException {
    String text = textMessage.getText();
    
    System.out.println("消费:"+text+"第几次获取消息count:"+(++count));
    
    System.out.println();
    String jmsMessageID = textMessage.getJMSMessageID();
  }
 
  public static void main(String[] args) {
    SpringApplication.run(consumer.class,args);
  }
}

结果显示:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/136978.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号