当我使用spring.cloud.stream.default.consumer.concurrency属性时,我想知道“并发”的确切含义。
文档(https://docs.spring.io/spring-cloud-stream/docs/Chelsea.RELEASE/reference/html/_configuration_options.html)表示“入站使用者的并发性”,这可以用几种方式解释。
幕后创建了什么样的线程执行器?
谢谢!
答案 0 :(得分:3)
并发的语义取决于实际的绑定器实现。例如,对于Kafka活页夹,当您设置并发时,该值将传递给基础MessageListenerContainer
。假设您的使用者应用程序正在使用具有3个分区的主题,并且将concurrency
的值设置为3。这将通过容器创建3个线程,每个线程都在其中处理该主题的单个分区(实际上,对于Kafka活页夹,将在后台创建3个侦听器容器)。如果该主题上的分区多于并发线程,则这些分区将分布在各个线程之间。同样的语义也适用于Rabbit活页夹,尽管其实际实现可能在内部略有不同。