rocketmq消息发送方式
时间: 2023-09-30 19:09:01 浏览: 102
在 RocketMQ 中,消息的发送方式有两种:同步发送和异步发送。
1. 同步发送
同步发送是指消息发送者向消息中间件发送一条消息后,会一直阻塞等待消息中间件返回发送结果,只有在返回发送成功结果后才会继续执行后续代码。同步发送的代码示例:
```
DefaultMQProducer producer = new DefaultMQProducer("producer_group");
producer.setNamesrvAddr("namesrv_addr:9876");
producer.start();
Message msg = new Message("topic", "tag", "key", "body".getBytes());
SendResult sendResult = producer.send(msg);
System.out.println(sendResult);
producer.shutdown();
```
2. 异步发送
异步发送是指消息发送者向消息中间件发送一条消息后,不会阻塞等待发送结果,而是立即返回,之后通过回调函数来处理发送结果。异步发送的代码示例:
```
DefaultMQProducer producer = new DefaultMQProducer("producer_group");
producer.setNamesrvAddr("namesrv_addr:9876");
producer.start();
Message msg = new Message("topic", "tag", "key", "body".getBytes());
producer.send(msg, new SendCallback() {
@Override
public void onSuccess(SendResult sendResult) {
System.out.println(sendResult);
}
@Override
public void onException(Throwable throwable) {
throwable.printStackTrace();
}
});
producer.shutdown();
```
需要注意的是,在异步发送回调函数中,要处理可能出现的异常。
阅读全文