后端在消息队列中的可靠性保证先从头说起——消息持久化。拿RabbitMQ举例,默认配置下消息全塞内存里,服务器一重启或者意外宕机,数据直接蒸发。所以我们得动手把队列和消息都设成持久化模式。具体操作就是在声明队列时加上,发消息时把设为2。别看就这么几个参数,关键时刻能救命。不过持久化毕竟耗磁盘I/O,高峰期可能拖慢吞吐量。我的经验是,除非业务对性能极度敏感,否则宁可牺牲点速度也得保数据安全。比如我们之前做积分系统,就因为没开持久化,一次机房断电直接丢了上千条积分记录,后来全靠日志回放补数据,差点没被运营同事骂死。