本篇将开始结合各种使用场景,运用合适的 API 解决具体的实际问题。
消息发送方式
RocketMQ 支持同步、异步、Oneway 三种发送方式。
- 同步:客户端发起一次消息发送后会同步等待服务器的响应结果。
- 异步:客户端发起一下消息发起请求后不等待服务器响应结果而是立即返回,这样不会阻塞客户端子线程,当客户端收到服务端(Broker)的响应结果后会自动调用回调函数。
- Oneway:客户端发起消息发送请求后并不会等待服务器的响应结果,也不会调用回调函数,即不关心消息的最终发送结果。
下面首先用 Demo 演示一下异步消息发送模式。
public static void main(String[] args) throws Exception{
DefaultMQProducer producer = new DefaultMQProducer("testProducerGroup");
producer.setNamesrvAddr("192.168.3.10:9876");
try {
producer.start();
//发送单条消息
Message msg = new Message("TOPIC_TEST", "hello rocketmq".getBytes());
producer.send(msg, new SendCallback() {
// 消息发送成功回调函数
public void onSuccess(SendResult sendResult) {
System.out.printf(&