Spring Boot 整合ActiveMQ的过程

综合编程 2017-12-30

  1. 安装ActiveMQ服务器,(也可以不安装,如果不安装,会使用内存mq)
  2. 构建Spring boot项目,增加依赖项,只需要添加这一项即可

    org.springframework.boot
    spring-boot-starter-activemq
  1. 增加Application类
@SpringBootApplication
@EnableScheduling //使用定时任务发送消息
public class MqTestApplication {
    public static void main(String[] args) {
        SpringApplication.run(MqTestApplication.class, args);
    }
}
  1. 配置application.yml
spring:
  activemq:
    broker-url: tcp://127.0.01:61616
    packages:
      trust-all: true
  1. 构建一个数据Model,可以发送和消费的数据类型有: String, byte array, Map, Serializable object.
// 如果发送的消息是一个对象,必须implements Serializable接口
public class TModel implements Serializable {
    private static final long serialVersionUID = -921008687184331557L;

    private int count;

    public TModel(int count) {
        this.count = count;
    }

    @Override
    public String toString() {
        return "TModel [count=" + count + "]";
    }

}
  1. 构建Producer
@Component
public class Producer {
    // 在Producer中注入JmsTemplate,我们可以通过这个template发送消息
    private final JmsTemplate jmsTemplate;
    private int count = 0;

    @Autowired
    public Producer(JmsTemplate jmsTemplate) {
        this.jmsTemplate = jmsTemplate;
    }

    // 这里使用Spring Boot的定时任务发送消息
    @Scheduled(fixedRate = 1000)
    public void create() {
        // 使用convertAndSend发送消息
        jmsTemplate.convertAndSend("queue1", new TModel(count++));
    }
}
  1. 构建Consumer
@Component
public class Consumer {
    @JmsListener(destination = "queue1")
    public void comsume(TModel content) {
        System.out.println("recive message from queue1 [" + content + "]");
    }
}

特别备注:如果我们的生产者和消费者在不同的Module中时,最好将要消费的数据抽象成公共Module.程序是通过Serializable来序列化和反序列化对象的。必须保证生产者和消费者的对象模型的serialVersionUID是一致的。

项目地址: https://github.com/ldwqh0/active-mq-spring.git

简书

责编内容by:简书 (源链)。感谢您的支持!

您可能感兴趣的

Message Durability in ActiveMQ 5.x I get asked quite a bit to explain the basics of how ActiveMQ works with respect to how it stores messages (or doesn’t in some cases). Here’s the high...
Spring Boot集成Mybatis简洁版 概述 现在互联网应用中,大部分还是使用Mybatis来操作数据库的,本文介绍一下Spring Boot中如何集成Mybatis。 创建Spring Boot工程 在 Spring Boot 开篇-创建和运行 一文中有一个小节介绍了如何使用Spring Boot的组件来创建工程。如果要集...
ActiveMQ Integration in Mule and Performance Tunin... ActiveMQ is one of the popular open source messaging providers. Mule is one of the most famous integration providers, which provides an ESB feature an...
SpringBoot开发案例从0到1构建分布式秒杀系统... 前言 ​最近,被推送了不少秒杀架构的文章,忙里偷闲自己也总结了一下互联网平台秒杀架构设计,当然也借鉴了不少同学的思路。俗话说,脱离案例讲架构都是耍流氓,最终使用SpringBoot模拟实现了部分秒杀场景,同时跟大家分享交流一下。 秒杀场景 秒杀场景无非就是多个用户在同时抢...
activeMq消息转投rabbitMq研究 在研究activemq转投消息到rabbitmq的过程中还是发现了很多有趣的细节。 消息发送端分为PERSISTENT与NON_PERSISTENT,该类型表示是否持久化消息到数据库中。 Activemq默认使用kahaDB。我大Q9使用的也是kahaDB。当然也是支持mysql等数据...