springbooot整合ActiveMQ实现消息队列和主题

简介: springbooot整合ActiveMQ实现消息队列和主题

一、Springbot整合ActiveMQ需要引入依赖


1.pom


        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-activemq</artifactId>
        </dependency>


2.application.yml


# activemq的配置
spring:
  activemq:
    broker-url: tcp://127.0.0.1:61616
    user: admin
    password: admin
    pool:
      max-connections: 100
  jms:
    pub-sub-domain: false # false代表队列,true代表topic
# 队列的名称 常量 @Value(${})获取属性
myqueue: boot-active-queue
mytopic: boot-active-topic


二、整合Queue


1.QueueConfig.java


@Component
public class QueueConfig {
    @Value("${myqueue}")
    private String myQueue;
    @Bean
    public Queue queue(){
        return new ActiveMQQueue(myQueue);
    }
}


2.QueueProducer.java

@Component
public class QueueProducer {
    @Autowired
    private JmsMessagingTemplate jmsMessagingTemplate;
    @Autowired
    private Queue queue;
    // 每隔3s发送
    @Scheduled(fixedDelay = 3000)
    public void produceMsg(){
        jmsMessagingTemplate.convertAndSend(queue,"message"+ new Date().toLocaleString());
    }
}


3.QueueConsumer.java


@Component
public class QueueConsumer {
    //监测消息,立马消费
    @JmsListener(destination = "${myqueue}")
    public void receive(TextMessage textMessage) throws JMSException {
        System.out.println("消费到的消息是:"+ textMessage.getText());
    }
}


三、整合Topic主题


1.TopicConfig.java


@Component
public class TopicConfig {
    @Value("${mytopic}")
    private String myTopic;
    @Bean
    public ActiveMQTopic topic(){
        return new ActiveMQTopic(myTopic);
    }
}


2.TopicProducer.java


@Component
public class TopicProducer {
    @Autowired
    private JmsMessagingTemplate jmsMessagingTemplate;
    @Autowired
    private Topic topic;
    // 每隔3s发送
    @Scheduled(fixedDelay = 3000)
    public void produceMsg(){
        //设置成主题 方式
        jmsMessagingTemplate.getJmsTemplate().setPubSubDomain(true);
        jmsMessagingTemplate.convertAndSend(topic,"message"+ new Date().toLocaleString());
        System.out.println("发送消息。。。");
    }
}


3.TopicConsumer.java


@Component
public class TopicConsumer {
    //监测消息,立马消费
    @JmsListener(destination = "${mytopic}")
    public void receive(TextMessage textMessage) throws JMSException {
        System.out.println("消费到的主题消息是:"+ textMessage.getText());
    }
}


四、测试启动


@SpringBootApplication
@EnableJms //启用消息队列
@EnableScheduling //定时任务
public class SpringbootAvtivemqApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringbootAvtivemqApplication.class, args);
    }
}


目录
相关文章
|
4月前
|
消息中间件 搜索推荐 RocketMQ
消息队列 MQ使用问题之如何将一个主题的多个分区分布到不同的Broker上
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
4月前
|
消息中间件 Java Apache
使用Spring Boot实现与ActiveMQ的消息队列集成
使用Spring Boot实现与ActiveMQ的消息队列集成
|
消息中间件 Java Maven
ActiveMQ向消息队列存入消息(点对点模式)
创建一个maven工程, 引入ActiveMQ的依赖
|
消息中间件 Java 数据安全/隐私保护
企业实战(12)消息队列之Docker安装部署ActiveMQ实战
企业实战(12)消息队列之Docker安装部署ActiveMQ实战
259 0
|
消息中间件 Java API
可靠消息传递的选择:深入了解 Apache ActiveMQ 消息队列
在分布式系统中,可靠的消息传递是实现异步通信、解耦和数据同步的关键。Apache ActiveMQ,作为一款开源的消息队列系统,为开发者提供了一个强大的工具来实现可靠的消息传递。本文将为您详细介绍 Apache ActiveMQ 的核心概念、特性以及在分布式架构中的应用。
194 0
|
消息中间件 存储 JavaScript
消息队列原理和选型:Kafka、RocketMQ 、RabbitMQ 和 ActiveMQ
消息队列原理和选型:Kafka、RocketMQ 、RabbitMQ 和 ActiveMQ
消息队列原理和选型:Kafka、RocketMQ 、RabbitMQ 和 ActiveMQ
|
消息中间件 存储
消息队列之RabbitMQ之主题(Topics)模式
RabbitMQ是一个消息中间件,它接受并转发消息。它有6中工作模式,而主题模式是它的核心。在主题模式中,主要是通配符的添加与使用。
273 0
|
消息中间件 Linux 开发工具
消息队列:第二章:安装 ActiveMQ
消息队列:第二章:安装 ActiveMQ
137 0
消息队列:第二章:安装 ActiveMQ
|
消息中间件 传感器 NoSQL
redis灵魂拷问:如何使用stream实现消息队列
redis灵魂拷问:如何使用stream实现消息队列
789 0
redis灵魂拷问:如何使用stream实现消息队列
|
消息中间件 API
HarmonyOS系统内核中消息队列的实现
大家好,今天主要来聊一聊,如何使用HarmonyOS开发实现消息队列。
333 0
HarmonyOS系统内核中消息队列的实现