spring-kafka - 为每个 KafkaTemplate 指定 client.id
问题描述
我知道可以client.id
为每个@KafkaListener
.
是否可以client.id
为每个定义KafkaTemplate
?
如果我可以定义client.id
perKafkaTemplate
而不是依赖 Spring 为每个生产者分配后缀,那么阅读 kafka 日志会更容易。
解决方案
Spring Kafka 不会将任何内容分配client.id
给Producer
它创建的:
protected Producer<K, V> createKafkaProducer() {
return new KafkaProducer<K, V>(this.configs, this.keySerializer, this.valueSerializer);
}
除非您ProducerConfig.CLIENT_ID_CONFIG
在提到的那些中提供一个通孔configs
。
因此,对于每个您KafkaTemplate
需要声明一个单独的DefaultKafkaProducerFactory
并通过 共享公共属性,但对每个实例Map<String, Object> configs
使用唯一的。ProducerConfig.CLIENT_ID_CONFIG
或者,您可以实现自己的以在每次调用时ProducerFactory
填充唯一的。ProducerConfig.CLIENT_ID_CONFIG
createProducer()
推荐阅读
- marklogic - 禁用计划任务的 MarkLogic 功能
- typescript - 跨多个文件合并打字稿“模块”
- vue.js - 变得与众不同
- node.js - 使用相同的 POST 请求将文件上传到 MongoDB 和本地服务器
- python - 将pytorch写的vgg模型转换成caffe2的时候遇到了这个问题
- reactjs - 为什么 IntelliJ 不自动导入反应路由器挂钩?
- mysql - 如何根据不具有相同数据的最新日期显示一个数据
- html - 如何创建表单并能够将表单中的数据输入到文本文件中并能够以 HTML 格式输出文本文件的内容
- python - 属性错误 - int 对象没有属性键 - Python
- c# - 如何在显示任务栏的情况下运行winform?