springboot整合ActiveMq实现发布/订阅、点对点数据传输

springboot 整合amq 分别使用MQ Queue、Topic 实现消息接收和发送

依赖

<dependency>
  <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-activemq</artifactId>
    <version>2.3.0.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

配置

server:
  port: 8081

spring:
  activemq:
    broker-url: tcp://127.0.0.1:61616
    user: admin
    password: admin
  jms:
    pub-sub-domain: true  #true-topic  false-queue

#配置队列或topic名称
queue_name: guan-queue
topic_name: guan-topic

Queue

  • 队列配置
@Configuration
@EnableJms
public class AMQConfig {

    @Value("${queue_name}")
    private String queueName;

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

  • 生产者
@Component
public class QueueProducer {

    @Autowired
    private JmsMessagingTemplate jmsMessagingTemplate;

    @Autowired
    private Queue queue;

    @Scheduled(fixedRate = 3000)
    public void produceMsg(){
        jmsMessagingTemplate.convertAndSend(queue,"hello queue");
    }
}

  • 消费者
@Configuration
public class QueueCustomer {
    @JmsListener(destination = "${queue_name}")
    public void getMessage(TextMessage message) throws JMSException {
        System.out.println("接收到消息:"+message.getText());

    }
}

Topic

  • topic 配置
@Configuration
@EnableJms
public class TopicConfig {

    @Value("${topic_name}")
    private String topicName;

    @Bean
    public Topic topic(){
        return new ActiveMQTopic(topicName);
    }
}
  • 生产者
@Configuration
public class TopicProducer {

    @Autowired
    private JmsMessagingTemplate jmsMessagingTemplate;

    @Autowired
    private Topic topic;

    @Scheduled(fixedRate = 5000)
    public void getTopicMsg(){
        jmsMessagingTemplate.convertAndSend(topic, "hello topic");
    }
}

  • 消费者
@Configuration
public class TopicCustomer {

    @Autowired
    private JmsMessagingTemplate jmsMessagingTemplate;

    @JmsListener(destination = "${topic_name}")
    public void getTopicMessage(TextMessage textMessage) throws JMSException {
            System.out.println(textMessage.getText());
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值