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(四)集群之kafka

kafka NoClassDefFoundError kafka / Kafka

解开Kafka神秘的面纱:kafka优雅应用

解开Kafka神秘的面纱:kafka优雅应用

kafka NoClassDefFoundError kafka/Kafka

Kafka原理及Kafka群集部署