多语言展示
当前在线:715今日阅读:195今日分享:14

快速消费与严格消费各有什么优劣

在CTG-MQ2.2.0或以上的版本,提供快速消费与严格消费两种机制。此机制可以在Consumer Group的级别上设定,在CTG-MQ中,请尽量使用快速消费。
方法/步骤
1

快速消费速度非常快:拉取时,broker端并不需要做任何跟消费进度有关的处理;在签收时,消费者使用Oneway方式把命令发送到broker端,无需等待响应。

2

JSON进度文件是定时异步刷盘,无性能影响;. 能实现批量消息签收事务:拉取一批消息,要不全部签收成功,要不全部签收

3

严格消费能做到单条消费签收确认:能过BDB存储,能做到前序消息不签收,不影响有序消息消费签收。消费端成功收到签收影响,则消息不会被再次重复消费。客户端个数调整(rebalance)时,不会重复消费。

4

快速消费异常情况下消息有可能重复:在客户端或服务端异常时,会出现重复消费;在网络异常时,会出现重复消费。消费者负载均衡 (实例数调整)情况下消息可能重复。

5

严格消费性能下降较严重:由于消费、签收都需要经过BDB操作,所以性能损耗严重,约为快速模式的1/2。增加IO操作,增加磁盘损坏的概率,异步刷新+实时同步可以大大减少IO操作。

6

在快速消息的场景下,签收为“重试”,实际为将消息放入另一条重试队列,原消息则会被签收。重投的MsgID不一样。

7

在严格消息的场景下,签收为“重试”,将保存到BDB中,此消息不会被签收。重投的MsgID一样。支持消息轨迹查询,需要部署ES日志分析系统。

推荐信息