flink消费rabbitmq,设置prefetch count不生效有人碰到过吗

flink消费rabbitmq,设置prefetch count不生效有人碰到过吗

展开
收起
游客6vdkhpqtie2h2 2022-09-08 10:43:58 1332 分享 版权
2 条回答
写回答
取消 提交回答
  • 十分耕耘,一定会有一分收获!

    楼主你好,不生效的原因,你可以从这方面入手: prefetch_count生效的条件和特性(从参数设置的一些demo和源码上感知): prefetch_count参数仅仅在basic.consume的autoAck参数设置为false的前提下才生效,也就是不能使用自动确认,自动确认的消息没有办法限流。 basic.consume如果在非自动确认模式下忘记了手动调用basic.ack,那么prefetch_count正是未ack消息数量的最大上限。 prefetch_count是由RabbitMQ服务端控制,一般情况下能保证各个消费者线程中的未ack消息分发是均衡的,这点笔者猜测是consumerTag起到了关键作用。

    2023-01-30 11:12:39
    赞同 1 展开评论
  • 我觉得这是因为RabbitMQ的prefetch count只对每个消费者有效,而Flink消费RabbitMQ时,会创建多个消费者,每个消费者的prefetch count都是默认值1,所以设置prefetch count不会生效。 要解决这个问题,你可以在Flink消费RabbitMQ时,设置每个消费者的prefetch count,这样就可以控制每个消费者一次从队列中拉取的消息数量了。

    2023-01-17 17:31:21
    赞同 展开评论

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

收录在圈子:
实时计算 Flink 版(Alibaba Cloud Realtime Compute for Apache Flink,Powered by Ververica)是阿里云基于 Apache Flink 构建的企业级、高性能实时大数据处理系统,由 Apache Flink 创始团队官方出品,拥有全球统一商业化品牌,完全兼容开源 Flink API,提供丰富的企业级增值功能。
还有其他疑问?
咨询AI助理