有两种情况消息会丢,一,单条消息的内容过大,超出允许范围,二,太长时间没有处理。
有种配置下,只要你当时消费者不在线,都不会发消息给你的
而且还和你配置的topic相关
tcp连接不会因为不稳定导致丢数据,丢包会重发的,没收到ack都需要重发,除非你网络彻底嗝屁了
是不是消息处理接收部分给丢失的啊。一般来说,MQ是不应该有消息丢失的
4、个人觉得 更稳妥的做法 是完成事物操作的当中 在当前应用的数据库中 插入一个消息记录 [和业务同一个事务]
然后在发到 mq,就算丢失 也可以检验。
5、kafka默认单条内容小于2M超了就会被拒绝接收。也不一定小于 2M 0.9 版本就改善了