时长:大小12.26M
作者回复: 👍👍👍
作者回复: 消息积压是正常现象,积压越来越多就需要处理了。
就像一个水库,日常蓄水是正常的,但下游泄洪能力太差,导致水库水位一直不停的上涨,这个就不正常了。
作者回复: 非常好!
作者回复: 总结的非常好!
作者回复: 👍👍👍
作者回复: 你可以简单计算一下,消费并行度:单实例平均消费tps * 消费并行度 > 生产消息的总tps
消费并行度 = min(consumer实例数,分区数量)
作者回复: 理论上是可以的,但你要注意,像RocketMQ,采用默认配置的时候,onMessage方法结束后,如果没抛异常,默认就会自动确认了。
作者回复: 是这样的。
作者回复: 可以使用一个自增的原子变量,比如Java中的AtomicLong。
作者回复: 有的消息中间件提供了“死信队列”的功能,它会自动把这种反复消费都失败的消息丢到一个特殊的死信队列中,避免一条消息卡主队列的情况。
作者回复: 不会的。
作者回复: 生产端发送慢不会引起消息积压的。
作者回复: 有些消息队列有针对这个问题的解决方案,比如RocketMQ有死信队列,对于多次消费的失败的消息,扔到死信队列中,避免坏消息卡住队列。