Apache kafka 动物园管理员有什么用?

Apache kafka 动物园管理员有什么用?,apache-kafka,Apache Kafka,如果我们在application.properties文件中将Kafka服务器定义为一个属性,比如: spring.cloud.stream.kafka.binder.brokers=localhost:9092 那么zookeeper在维护代理集群方面有什么用途呢 在所有代理之间选择控制器。这台机器将告诉其他人谁是每个分区的领导者/追随者。动物园管理员做出选择管理员的决定,并委托他完成这项任务 他是“主题管理员”。他知道主题的数量、名称、配置、首选领导者等。他就是你打电话给他的人,例如,改变

如果我们在application.properties文件中将Kafka服务器定义为一个属性,比如:

spring.cloud.stream.kafka.binder.brokers=localhost:9092
那么zookeeper在维护代理集群方面有什么用途呢

  • 在所有代理之间选择控制器。这台机器将告诉其他人谁是每个分区的领导者/追随者。动物园管理员做出选择管理员的决定,并委托他完成这项任务
  • 他是“主题管理员”。他知道主题的数量、名称、配置、首选领导者等。他就是你打电话给他的人,例如,改变话题的保留时间
  • 控制群集成员资格。监视哪些代理处于活动状态以及它们属于哪个群集
  • 主题级别上的ACL(缩放节点)
  • 它也可以用于其他事情,比如配额(即使我不确定这在最近的版本中是否仍然是正确的),当然还有很多其他隐藏的同步内容。 但一般来说,这或多或少应该是动物园管理员的实际角色

  • 在所有代理之间选择控制器。这台机器将告诉其他人谁是每个分区的领导者/追随者。动物园管理员做出选择管理员的决定,并委托他完成这项任务
  • 他是“主题管理员”。他知道主题的数量、名称、配置、首选领导者等。他就是你打电话给他的人,例如,改变话题的保留时间
  • 控制群集成员资格。监视哪些代理处于活动状态以及它们属于哪个群集
  • 主题级别上的ACL(缩放节点)
  • 它也可以用于其他事情,比如配额(即使我不确定这在最近的版本中是否仍然是正确的),当然还有很多其他隐藏的同步内容。
    但一般来说,这或多或少应该是zookeeper的实际角色。

    根据您的回答,zookeeper将决定哪个Kafka代理处理我们的请求,但我担心的是,如果我在我的属性文件(例如:198.2.1.2:9092)中定义特定的代理地址,那么zookeeper将如何将请求发送给另一个代理。否,我没说动物园管理员选择谁来处理你的请求。Zookeeper选择一个控制器,即一个代理,该代理决定哪个代理接受您的请求。这就是为什么您只需要通过代理连接,因为您的客户不会与zookeeper交谈。根据您攻击的分区,不同的代理将处理该请求(因为所有分区都至少有一个前导和0到n个跟随者,具体取决于复制)。好的,我不知道我是否理解正确!!!。但如果我说有两个代理,一个在b1:9092上运行,另一个在b2:9092上运行,两者都形成一个集群,并连接到在z:2181上运行的zookeeper。现在,如果我在属性文件中定义broker b1:9092并尝试获取b2:9092上可用的消息。它会起作用吗?是的,它会像符咒一样起作用。将客户端连接到代理将其连接到整个集群。您列出的代理参数仅用于查询有关整个集群的元数据。动态发现集群的其余部分后,将连接到集群中包含应用程序正在使用的分区的所有代理。这就是允许Kafka使用并行处理和分布在集群中的分区进行水平扩展的原因。对于容错,您应该在代理列表中列出两个或三个代理,以防第一个代理关闭并且无法在应用程序启动时将群集元数据返回到应用程序根据您的回答,Zookeeper将决定哪个Kafka代理处理我们的请求,但我担心的是,如果我在我的属性文件(ex:198.2.1.2:9092)中定义了一个特定的代理地址,那么zookeeper将如何将请求发送给另一个代理。不,我没有说zookeeper选择谁来处理您的请求。Zookeeper选择一个控制器,即一个代理,该代理决定哪个代理接受您的请求。这就是为什么您只需要通过代理连接,因为您的客户不会与zookeeper交谈。根据您攻击的分区,不同的代理将处理该请求(因为所有分区都至少有一个前导和0到n个跟随者,具体取决于复制)。好的,我不知道我是否理解正确!!!。但如果我说有两个代理,一个在b1:9092上运行,另一个在b2:9092上运行,两者都形成一个集群,并连接到在z:2181上运行的zookeeper。现在,如果我在属性文件中定义broker b1:9092并尝试获取b2:9092上可用的消息。它会起作用吗?是的,它会像符咒一样起作用。将客户端连接到代理将其连接到整个集群。您列出的代理参数仅用于查询有关整个集群的元数据。动态发现集群的其余部分后,将连接到集群中包含应用程序正在使用的分区的所有代理。这就是允许Kafka使用并行处理和分布在集群中的分区进行水平扩展的原因。对于容错,您应该在代理列表中列出两个或三个代理,以防第一个代理关闭并且无法在应用程序启动时将群集元数据返回到应用程序