spring-cloud-stream - Spring Cloud Stream:spring.cloud.stream.default.consumer.concurrency 属性的确切含义
问题描述
我想知道使用 spring.cloud.stream.default.consumer.concurrency 属性时“并发”的确切含义。
文档(https://docs.spring.io/spring-cloud-stream/docs/Chelsea.RELEASE/reference/html/_configuration_options.html)说“入站消费者的并发性”,这可以用多种方式解释。
幕后创建了什么样的线程执行器?
谢谢!
解决方案
并发的语义取决于实际的绑定器实现。例如,在 Kafka binder 的情况下,当您设置并发时,该值将传递给底层MessageListenerContainer
. 假设您的消费者应用程序正在使用具有 3 个分区的主题,并且您将值设置concurrency
为 3。这将由容器创建 3 个线程,每个线程都在处理来自该主题的单个分区(实际上,在Kafka binder 的情况下,将在幕后创建 3 个 listener 容器)。如果主题上的分区数多于并发线程数,则分区将分布在各个线程上。相同的语义也适用于 Rabbit binder,尽管它的实际实现可能在内部略有不同。
推荐阅读
- python - 如何将具有相同文件名的csv导入数据框,应用一些程序,然后合并?
- azure - Azure 表:ExcuteBatch 返回什么结果?
- powershell - 从文本文件中获取最大数字并将其作为 var 递增 1
- r - 如何删除远程(postgresql)表上的排序?
- google-app-engine - “我的项目”的 App Engine 服务帐户不存在?
- jmeter - 如何将相对时间发送到 JMeter JTL 中的每个采样器
- c# - 在 Unity 中设置 Sprite 的位置
- c# - C#:使用 Microsoft Azure 文本到语音 API 的中文拼音 SSML 语法
- javascript - React Native TextInput 保存到 const
- php - 错误:未定义的属性:Account::$Account_model