如何为事务管理DefaultKafkaProducerFactory缓存



在春季kafka文档中https://docs.spring.io/spring-kafka/docs/2.3.3.RELEASE/reference/html/#transactions

它提到;

通过向DefaultKafkaProducerFactory提供transactionIdPrefix来启用事务。在这种情况下,工厂维护事务生产者的缓存,而不是管理单个共享生产者。当用户对生产者调用close((时,它会返回到缓存中进行重用,而不是实际关闭。每个生产者的transactional.id属性为transactionIdPrefix+n

  • 如何配置此缓存,例如生产者池大小
  • 当给定事务的缓存中没有任何可用的生产者时,它是否会动态创建一个新的生产者

这取决于事务是否仅为生产者,以及默认情况下为trueproducerPerConsumerPartition(对于消费者发起的事务(。

此属性用于支持EOSMode.ALPHA(或在使用BETA但代理版本早于2.5时回退到ALPHA(。

请参阅此处,以获取有关精确一次语义的更多信息。

当使用producerPerConsumerPartition=false并且仅用于生产者事务时,缓存大小没有限制;当高速缓存为空时创建新的生产者;关闭";。

相关内容

  • 没有找到相关文章

最新更新