异步发送丢失消息的场景是:生产者设置UserAsyncSend=true,使用producer.send(msg)持续发送消息
由于消息不阻塞,生产者会认为所有send的消息均被成功发送至MQ
如果MQ突然宕机,此时生产者内存尚未发送至MQ的消息都会丢失

所以正确的异步发送办法需要回调接收

同步和异步发送的区别:
同步发送等send不阻塞就表示一定发送成功了
异步发送需要接收回执并由客户端再判断一次是否发送成功

Last modification:July 22, 2019
如果觉得这篇技术文章对你有用,请随意赞赏