SpringBoot 2.1.3 整合 RocketMQ 4.4.0完整教程

 rocketMq和activeMq,rabbitMQ,kafka为目前主流的消息中间件,其中rocketMq是阿里巴巴公司开源的一个消息中间件,现已贡献给apache组织。apache官网描述:Apache RocketMQ是一个分布式消息传递和流媒体平台,具有低延迟,高性能和可靠性,万亿级容量和灵活的可扩展性。它由四部分组成:名称服务器,代理,生产者和消费者。它们中的每一个都可以水平扩展而没有单一的故障点。

    今天我们将讨论springboot如何整合rocketmq。

1、安装RocketMQ,参见博客:https://blog.youkuaiyun.com/weixin_42315600/article/details/88677674

2、引入maven依赖

 <!--RocketMQ-->
 <dependency>
    <groupId>org.apache.rocketmq</groupId>
    <artifactId>rocketmq-client</artifactId>
    <version>4.4.0</version>
 </dependency>
 <!--PropertySource注解解析properties文件-->
 <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
 </dependency>

3、Resource目录下常见config文件夹,创建rocketmq.properties配置文件

# 指定namesrv地址
sbootitframe.rocketmq.namesrvAddr=localhost:9876

#生产者group名称
sbootitframe.rocketmq.producerGroupName=user_group

#事务生产者group名称
sbootitframe.rocketmq.transactionProducerGroupName=order_transaction

#消费者group名称
sbootitframe.rocketmq.consumerGroupName=user_consumer_group

#生产者实例名称
sbootitframe.rocketmq.producerInstanceName=user_producer_instance

#消费者实例名称
sbootitframe.rocketmq.consumerInstanceName=user_consumer_instance

#事务生产者实例名称
sbootitframe.rocketmq.producerTranInstanceName=user_producer_transacition

#一次最大消费多少数量消息
sbootitframe.rocketmq.consumerBatchMaxSize=1

#广播消费
sbootitframe.rocketmq.consumerBroadcasting=false

#消费的topic:tag
sbootitframe.rocketmq.subscribe[0]=user-topic:white

#启动的时候是否消费历史记录
sbootitframe.rocketmq.enableHistoryConsumer=false

#启动顺序消费
sbootitframe.rocketmq.enableOrderConsumer=false

4、创建配置文件实例化bean,把rocketmq.properties读取到bean中

package com.cmos.sbootitframe.web.controller.mq;

import java.util.ArrayList;
import java.util.List;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

/**
 * @Function 读取配置文件信息
 */
@Component
@Configuration
@PropertySource("classpath:config/rocketmq.properties")
@ConfigurationProperties(prefix = "sbootitframe.rocketmq")
public class RocketMQProperties {

    private String namesrvAddr;
    private String producerGroupName;
    private String transactionProducerGroupName;
    private String consumerGroupName;
    private String producerInstanceName;
    private String consumerInstanceName;
    private String producerTranInstanceName;
    private int consumerBatchMaxSize;
    private boolean consumerBroadcasting;
    private boolean enableHistoryConsumer;
    private boolean enableOrderConsumer;
    private List<String> subscribe = new ArrayList<String>();

    public String getNamesrvAddr() {
        return namesrvAddr;
    }

    public void setNamesrvAddr(String namesrvAddr) {
        this.namesrvAddr = namesrvAddr;
    }

    public String getProducerGroupName() {
        return producerGroupName;
    }

    public void setProducerGroupName(String producerGroupName) {
        this.producerGroupName = producerGroupName;
    }

    public String getTransactionProducerGroupName() {
        return transactionProducerGroupName;
    }

    public void setTransactionProducerGroupName(String transactionProducerGroupName) {
        this.transactionProducerGroupName = transactionProducerGroupName;
    }

    public String getConsumerGroupName() {
        return consumerGroupName;
    }

    public void setConsumerGroupName(String consumerGroupName) {
        this.consumerGroupName = consumerGroupName;
    }

    public String getProducerInstanceName() {
        return producerInstanceName;
    }

    public void setProducerInstanceName(String producerInstanceName) {
        this.producerInstanceName = producerInstan
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值