RocketMQ--生产者消息返回状态

it2025-07-16  13

SendStatus

package org.apache.rocketmq.client.producer; public enum SendStatus { SEND_OK, //消息已经发送成功 //后面这三种情况,如果业务不允许丢消息,需要做相应的补偿,做可靠性的重投 FLUSH_DISK_TIMEOUT, //消息发送成功,但是服务器刷盘的时候超时了,消息已经进入服务器队列,只有服务器宕机,消息才会丢失 // 会等待下一次刷盘时机再去刷盘,如果服务器宕机,broker挂掉,消息就会丢失,返回此状态需要考虑重发消息 FLUSH_SLAVE_TIMEOUT,//主从同步的时候,同步到slave的时候超时了,消息已经步入到slave,但是消息也是超时了,在slave宕机的时候 //消息才会丢失,返回此状态需要考虑重发消息,需要保证可靠性 SLAVE_NOT_AVAILABLE, //消息已经发送成功,但是此时slave是不可用的 }

getSendStatus()

SendResult sr = producer.send(message); SendStatus status = sr.getSendStatus(); System.err.println(status);
最新回复(0)