kafka 配置中的引导服务器是什么?

nmx*_*mxl 6 apache-kafka

我刚刚开始学习 kafka 并且不断地遇到一个术语bootstrap-server

它在我的 kafka 集群中代表哪个服务器?

Ash*_*ana 56

我们知道一个kafka集群可以有数百个或数千个broker(kafka服务器)。但是我们如何告诉客户(生产者或消费者)要连接到哪个?我们是否应该在客户端配置中指定所有 1000 个 kafka 代理?不,那会很麻烦,而且列表会很长。相反,我们可以做的是,采用两到三个代理并将它们视为客户端最初连接的引导服务器。然后根据存活或间隔,这些经纪人将指向一个好的 kafka 经纪人。

我们在客户端中放置的配置也是如此bootstrap.servers,它是一个以逗号分隔的主机和端口对列表,这些主机和端口对是“引导”Kafka 集群中 Kafka 代理的地址,Kafka 客户端最初连接到该集群以引导自身。

主机和端口对使用 : 作为分隔符。

localhost:9092
localhost:9092,another.host:9092
Run Code Online (Sandbox Code Playgroud)

如前所述,bootstrap.servers提供初始主机作为 Kafka 客户端发现集群中完整活动服务器的起点。

特别说明:

  • 由于这些服务器仅用于初始连接以发现完整的集群成员资格(可能会动态更改),因此此列表不必包含完整的服务器集(不过,您可能需要多个服务器,以防万一服务器向下)。
  • 客户端(生产者或消费者)使用所有服务器,无论 bootstrap.servers 中指定哪些服务器进行引导。


Jav*_*cal 11

它是您提供的其中一个 Kafka 代理的 URL,用于获取有关您的 Kafka 集群的初始元数据。元数据由主题、它们的分区、这些分区的领导代理等组成。根据此元数据,您的生产者或消费者生产或消费数据。

您可以在生产者或消费者配置中拥有多个引导服务器。因此,如果其中一个代理不可访问,则它会回退到另一个。


Pat*_*hen 10

bootstrap.servers 是一个以逗号分隔的主机和端口对列表,这些主机和端口对是“引导”Kafka 集群中 Kafka 代理的地址,Kafka 客户端最初连接到该集群以引导自身。

卡夫卡经纪人

一个Kafka集群由多个Kafka Broker组成。每个 Kafka Broker 都有一个唯一的 ID(编号)。Kafka Brokers 包含主题日志分区。连接到一个代理会将客户端引导到整个 Kafka 集群。对于故障转移,您需要从至少三到五个代理开始。如果需要,Kafka 集群中可以有 10、100 或 1,000 个代理。

更多信息:检查这个官方文档