RocketMQ で独自に遅延送信を実現する方法

RocketMQで独自の遅延送信を定義するには、メッセージの遅延レベルを設定します。遅延レベルはメッセージのプロパティを設定することで指定され、RocketMQでは1秒、5秒、10秒、30秒、1分、2分、3分、4分、5分、6分、7分、8分、9分、10分、20分、30分、1時間、2時間の18の遅延レベルがサポートされています。

カスタム遅延送信を実装するための手順は以下のとおりです。

  1. まず、メッセージオブジェクトをプロデューサー側で作成し、メッセージの遅延レベルを設定する必要があります。遅延レベルを設定するために、Message.setDelayTimeLevel(int level)メソッドを使用することができます。レベルは遅延レベルの値です。
  2. メッセージをRocketMQサーバーに送信するために、プロデューサーのsend(Message msg)メソッドを使用します。

以下にサンプルコードを示します。

import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.common.message.Message;

public class Producer {
    public static void main(String[] args) throws Exception {
        // 创建生产者实例
        DefaultMQProducer producer = new DefaultMQProducer("groupName");
        
        // 设置RocketMQ服务器地址
        producer.setNamesrvAddr("127.0.0.1:9876");
        
        // 启动生产者
        producer.start();
        
        // 创建消息对象
        Message message = new Message("topicName", "tagName", "Hello RocketMQ".getBytes());
        
        // 设置延迟级别为2分钟
        message.setDelayTimeLevel(6);
        
        // 发送消息
        producer.send(message);
        
        // 关闭生产者
        producer.shutdown();
    }
}

上記の例では、遅延レベル6のメッセージを作成して、topicNameトピックのtagNameタグで送信しました。

bannerAds