继续关于Kafka文档的阅读

This commit is contained in:
2023-02-28 18:48:19 +08:00
parent 5400fe07ee
commit 44e6f4122f

View File

@@ -625,3 +625,16 @@ KafkaMessageListenerContainer会在单线程中接收所有来自topic和分区
默认情况下当使用事务时interceptor会在事务开始之前被调用。可以设置listener container的interceptBeforeTx属性为false来令interceptor的调用时机为事务开始之后。 默认情况下当使用事务时interceptor会在事务开始之前被调用。可以设置listener container的interceptBeforeTx属性为false来令interceptor的调用时机为事务开始之后。
ConcurrentMessageListenerContainer支持“静态成员”即固定消费者即使消费者实例重启如此可以降低事件在消费者之间重新负载均衡的开销当并发量大于1时。`group.instance.id`的后缀为`-n`其中n从1开始。 ConcurrentMessageListenerContainer支持“静态成员”即固定消费者即使消费者实例重启如此可以降低事件在消费者之间重新负载均衡的开销当并发量大于1时。`group.instance.id`的后缀为`-n`其中n从1开始。
可以通过如下构造函数来使用MessageListenerContainer
```java
public KafkaMessageListenerContainer(ConsumerFactory<K, V> consumerFactory,ContainerProperties containerProperties)
```
该构造方法接收一个ConsumerFactory并通过ContainerProperties实例来接收其他配置。ContainerProperties拥有如下的构造函数
```java
public ContainerProperties(TopicPartitionOffset... topicPartitions)
public ContainerProperties(String... topics)
public ContainerProperties(Pattern topicPattern)
```
- 第一个构造方法接收一个TopicPartitionOffset的数组作为参数来显式指定container使用哪些分区通过consumer的assign方法并可以附带一个可选的初始offset。默认情况下如果offset为正值代表其是绝对的offset。若offset为负值则offset代表在默认分区中相对于current last offset的相对位置。并且对于TopicPartitionOffset类其提供了一个接收额外boolean参数的构造方法如果该值设置为true无论init offset为正值或者负值都是相对于consumer当前位置的相对值。当容器启动时offset将会被使用。