RocketMQ 發送方式

RocketMQ 三種發送方式:

  1. Sync: 同步發送,等待結果後返回,可以設置超時時間。
  2. Async:異步的發送方式, 發送成功後,立刻返回,生產者在獲取到Broker響應後,會調用指定的CallBack,可以設置超時時間。
  3. OneWay: 消息發出之後,直接返回,不做任何操作,一般用於日誌

代碼示例:

/**
 * 生產者
 */
public class Producer {

    public static void main(String[] args) throws MQClientException, RemotingException, InterruptedException, MQBrokerException {
        // 創建生產者
        DefaultMQProducer producer = new DefaultMQProducer("TEST_GROUP");
        // 配置 NameServer
        producer.setNamesrvAddr("192.168.184.128:9876");
        // 啓動生產者
        producer.start();
        // 組裝Message
        Message message = new Message("TEST_TOPIC", "TEST_TAG", "MESSAGE".getBytes());

        // 1.Sync: 同步發送,等待結果後返回,可以設置超時時間。
        SendResult send = producer.send(message);

        // 2. Async:異步的發送方式, 發送成功後,立刻返回,生產者在獲取到Broker響應後,會調用指定的CallBack,可以設置超時時間。
        producer.send(message, new Producer.SendCallbackDemo());

        // 3. OneWay: 消息發出之後,直接返回,不做任何操作,一般用於日誌
        producer.sendOneway(message);
    }

    static class SendCallbackDemo implements SendCallback{

        @Override
        public void onSuccess(SendResult sendResult) {
            System.out.printf("異步發送結果:", sendResult);
        }

        @Override
        public void onException(Throwable e) {
            System.out.printf("異步發送數據異常");
        }
    }

}

END!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章