Kafka ProducerConfig.CLIENT_ID_CONFIG 的目的是啥?
Posted
技术标签:
【中文标题】Kafka ProducerConfig.CLIENT_ID_CONFIG 的目的是啥?【英文标题】:What is the purpose of Kafka ProducerConfig.CLIENT_ID_CONFIG?Kafka ProducerConfig.CLIENT_ID_CONFIG 的目的是什么? 【发布时间】:2021-07-12 19:03:52 【问题描述】:将ProducerConfig.CLIENT_ID_CONFIG
设置为kafka生产者的真正目的是什么。医生说
发出请求时传递给服务器的 id 字符串。目的 这是为了能够跟踪请求的来源,而不仅仅是 通过允许将逻辑应用程序名称包含在 ip/port 中 服务器端请求日志记录。
默认值:(空)
属性:client.id
因此,生产者似乎将此信息发送到代理/主题/分区。但是,如何在服务器上检索/验证这些信息。 重要的是,消费者能否读取/检索此(client.id)信息并找到消息是由哪个生产者发布的。
当两个生产者有意或无意地使用同一个 client.id 时会发生什么。
【问题讨论】:
【参考方案1】:根据我的经验,生产者客户端 ID 仅在服务器端有一个授权类来批准/拒绝客户端访问主题的情况下有用,而不仅仅是基于主机的访问。分布式跟踪库也可以使用它来显示有关生产者请求的信息
id 不会转发给消费者
服务器无法跟踪重复的客户端,因为集群不知道每个生产者的用例。它所知道的只是生产者在多个主机上运行,并将二进制数据发送到多个主题。 如果你像我提到的那样添加授权者,客户端需要明确访问主题,那么你很快就会发现主题访问中的重叠
【讨论】:
感谢The id is not forwarded to consumers
+1。这有帮助。但是没有机制来验证它,任何生产者都可以设置任何 client.id。以上是关于Kafka ProducerConfig.CLIENT_ID_CONFIG 的目的是啥?的主要内容,如果未能解决你的问题,请参考以下文章
kafka NoClassDefFoundError kafka / Kafka