如果我使用listener.concurrency属性,这会使用KafkaMessageListenerContainer还是ConcurrentMessageListenerContainer?请注意,我没有明确定义任何 bean,并将所需的 bean 创建留给了 spring boot。
我想知道我的理解是否正确。我希望在使用来自具有多个分区(例如 3)的主题的消息时能够并行。那么,如果我按application.yml
如下方式在文件中配置它,可以吗?我尝试了下面的配置,看到创建了 3 个消费者。
spring:
kafka:
consumer:
group-id: group-id
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
producer:
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.apache.kafka.common.serialization.StringSerializer
listener:
concurrency: 3
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,我是否必须创建一个 bean 来配置ConcurrentMessageListenerContainer
,或者上面的侦听器配置将在内部使用ConcurrentMessageListenerContainer
,而不是KafkaMessageListenerContainer
在它看到时使用listener.concurrency=3
?
我试图找出一种在Java中基于反应/事件的异步编程中使用MDC的方法,但找不到。
有人可以解释如何在回调事件/方法中传播MDC变量吗?
在这种情况下,如何像在传统的同步编程中那样跟踪请求,直到响应被提供为止?
我已经将camel版本升级到最新,发现jar文件中缺少xsd。xsd 文件位于camel-spring-3.8.0.jar 中。由于这个原因,我在春季骆驼应用程序中遇到了异常。
这是一个错误吗?
java ×3
apache-camel ×1
apache-kafka ×1
logback ×1
logging ×1
mdc ×1
messaging ×1
slf4j ×1
spring ×1
spring-camel ×1