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);