rocketmq消息注解基于springboot的简单应用及默认详细配置

概述

        rocketmq消息组件在springboot框架中的应用,使用rocketmq的整合包进行编码实现。

编码参考

        <dependency>
            <groupId>org.apache.rocketmq</groupId>
            <artifactId>rocketmq-spring-boot-starter</artifactId>
            <version>2.2.3</version>
        </dependency>
  • 基本配置
rocketmq:
  name-server: 192.168.15.175:9876;192.168.15.77:9876
  producer:
    group: ta-cipher-encode

rocketmq.name-server:  rocketmq集群地址,单点或集群

rocketmq.producer.group : 生产者组名,用于标识一组具有相同功能的生产者

  • 其他配置

Name Server相关配置:
        rocketmq.namesrv.domain:Name Server的域名,用于自动发现Name Server地址。

Producer相关配置:
        rocketmq.producer.group:生产者组名,用于标识一组具有相同功能的生产者。
        rocketmq.producer.send-msg-timeout:发送消息的超时时间,默认为3秒。
        rocketmq.producer.compress-msg-body-over-howmuch:消息体大于指定字节大小时启用压缩。

Consumer相关配置:
        rocketmq.consumer.group:消费者组名,用于标识一组具有相同功能的消费者。
        rocketmq.consumer.consume-thread-min:消费者线程池的最小线程数。
        rocketmq.consumer.consume-thread-max:消费者线程池的最大线程数。
        rocketmq.consumer.consume-message-batch-max-size:批量消费消息时每次拉取的最大消息数量。
        rocketmq.consumer.pull-interval:拉取消息间隔时间,默认为0,表示尽可能快地拉取消息。

Message相关配置:
        rocketmq.message.max-size:消息的最大大小,默认为4MB。
        rocketmq.message.compress-level:消息压缩级别,可选值为0(不压缩)到9(最高压缩率)。
        rocketmq.message.timeout:消息的过期时间,默认为3天。

集群模式相关配置:
        rocketmq.broker.cluster.name:Broker集群的名称。
        rocketmq.broker.cluster.slave-read-only:Slave节点是否只读,默认为true。

  • 生产端代码
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
@Slf4j
public class RmqProvdier{
    @Autowired
    private RocketMQTemplate rocketMQTemplate;

    public boolean send(String message) {
        try {
            // 发送消息
            rocketMQTemplate.convertAndSend("ta-cipher-persist", message);
        } catch (Exception e) {
            log.error("send message:{}", message, e);
            return false;
        }
        return true;
    }
}
  • 消费端代码
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component;

@Component
@Slf4j
@RocketMQMessageListener(topic = "ta-cipher-persist", consumerGroup = "ta-cipher-encode")
public class RocketMQConsumer implements RocketMQListener<String> {

    @Override
    public void onMessage(String message) {
        try {
            log.info("message:{}", message);
        } catch (Exception e) {
            log.error("errorMessage:{}", message);
            // 抛出异常会重新消费消息
            throw new RuntimeException("Message processing failed", e);
        }
    }
}

@RocketMQMessageListener参数

  • topic 消费这从那个topic中读取消息
  • consumerGroup 当前消费者的消费组
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Spring Boot中配置RocketMQ集群需要经过以下步骤: 1. 添加RocketMQ的依赖:在`pom.xml`文件中添加RocketMQ的依赖,例如: ```xml <dependencies> <!-- RocketMQ --> <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>${rocketmq.version}</version> </dependency> </dependencies> ``` 确保`${rocketmq.version}`是正确的RocketMQ版本。 2. 配置RocketMQ的相关属性:在`application.properties`或`application.yml`文件中添加以下配置信息: ```yaml # RocketMQ NameServer地址 rocketmq.name-server=127.0.0.1:9876 # 是否启用VIP通道 rocketmq.use-vip-channel=false # 生产者相关配置 rocketmq.producer.group=producer_group # 消费者相关配置 rocketmq.consumer.group=consumer_group ``` 其中,`rocketmq.name-server`是RocketMQ的NameServer地址,这是集群中所有Broker的注册中心。`rocketmq.use-vip-channel`用于指定是否启用VIP通道。 `rocketmq.producer.group`是生产者组名,用于标识一组生产者。`rocketmq.consumer.group`是消费者组名,用于标识一组消费者。 3. 创建RocketMQ的生产者和消费者:使用RocketMQ的相关注解配置来创建生产者和消费者。例如: ```java // 生产者 @Service @RocketMQMessageProducer(topic = "topic_name") public class MyProducer { @Autowired private RocketMQTemplate rocketMQTemplate; public void sendMessage(String message) { rocketMQTemplate.convertAndSend("tag_name", message); } } // 消费者 @Service @RocketMQMessageListener(topic = "topic_name", consumerGroup = "consumer_group") public class MyConsumer implements RocketMQListener<String> { @Override public void onMessage(String message) { // 处理消费消息的逻辑 System.out.println("Received message: " + message); } } ``` 在上面的示例中,`@RocketMQMessageProducer`和`@RocketMQMessageListener`分别用于标识生产者和消费者。`topic`参数指定了要发送或接收消息的主题名称。 注意:以上只是一个简单的示例,实际使用中还可以进行更复杂的配置,例如设置消息序列化方式、消息消费模式等。 这样配置后,你就可以在Spring Boot中使用RocketMQ的集群功能了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lizz666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值