当前位置: 首页 > 知识库问答 >
问题:

Kafka国际通讯经纪人

高弘光
2023-03-14

我知道生产者/消费者需要与经纪人交谈以了解分区的领导者。经纪人与zk交谈以告诉他们加入了集群。

是真的吗

  1. 经纪人从zk知道谁是给定分区的负责人
  2. zk发现经纪人离开/死亡。然后重新选举领导人,并向所有经纪人发送新的领导人信息

问题:

  1. 为什么我们需要经纪人相互沟通?这只是为了让tehy可以移动分区,或者他们也可以互相查询元数据。如果是这样,元数据交换的例子是什么

共有2个答案

颜英博
2023-03-14

代理是在Kafka集群中运行的Kafka服务器

“Kafka群集由多个Kafka代理组成。每个Kafka代理都有一个唯一的ID(编号)。Kafka代理包含主题日志分区。连接到一个代理会将客户端引导到整个Kafka群集”

每个代理持有多个分区,每个分区可以是主题的领导者或副本。对主题的所有写入和读取都通过领导者,领导者协调使用新数据更新副本。如果领导者失败,副本将作为新领导者接管。

颜奇希
2023-03-14

生产者/消费者从其中一个代理请求元数据(因为每个代理都缓存元数据),这就是他们知道谁是分区的领导者的方式。

关于“是真的吗”部分:

  1. 由于zk和其中一位经纪人,经纪人知道谁是给定分区的领导者。更准确地说,他们中的一个决定谁将成为领导者。那个经纪人被称为控制器。第一个连接到zookeeper的代理成为控制器,他的角色是决定哪个代理将成为领导者,哪些代理将成为复制品,并通知他们。控制器本身不排除在该过程之外。它和其他任何一家经纪公司一样,肩负着选择领导者和复制品的特殊责任
  2. zk确实能检测到经纪人何时去世/离开,但它不会重新选举领导人。这是控制员的责任。当其中一个代理离开集群时,控制器从zk获取信息,并开始重新分配

关于你的问题——代理之间确实会进行通信(副本正在读取来自领导者的消息,控制器正在通知其他代理有关更改),但它们之间不会交换元数据——它们会将元数据写入zookeeper

 类似资料:
  • 我正在尝试仅为代理间kerberos配置Kafka代理。然而,由于它似乎也想通过Kerberos连接到Zookeeper,所以我似乎总是遇到错误。我目前还没有设置任何Zookeeper键。 我的Kafka代理 JAAS 配置如下: 服务器属性 我用上述配置得到的错误如下: 换句话说,我只想要经纪人到经纪人的 kerberos 和经纪人 - 动物园管理员的普通SASL_SSL。这可能吗?

  • 我有两个< code>kafka 0.10.1的代理集群,之前在我的开发服务器上正确运行< code>zookeeper 3.3.6。 我最近尝试将broker版本升级到最新的,但没有开始。配置没有太大变化 谁能告诉我可能会出什么问题吗。为什么经纪人没有起步? 已更改服务器。代理服务器1上的属性 已更改代理服务器2上的server.properties 注意: 1.Zookeeper正在两台服务器

  • 我在Windows子系统Linux上安装了kafka,并开始使用命令服务启动,所有服务都已启动。现在,当我尝试从Windows运行我的kafka-spring应用程序时,它显示以下错误:- 无法建立与节点-1(localhost/127.0.0.1:9092)的连接。经纪人可能不可用。 我的服务器属性是:- 我哪里出错了???

  • 在Flink中,我执行以下代码: 我推出3次同样的工作。 如果我用一个代理执行这段代码,它工作得很好,但是用3个broke(在3个不同的机器上)只读取一个分区。 null

  • 我们正在使用带有 5 个代理的 Apache Kafka 2.2 版本。我们每天收到 50 数百万个事件,但我们达到了高 kafka CPU 使用率。我们使用默认的生产者/消费者/代理设置。 我对表演有一些疑问; 我们有不同的kafka流应用程序,它们进行聚合或连接操作以携带丰富的消息。我们所有的kafka-流应用程序都包含以下设置: < li >恰好一次:true < li >最小同步副本:3

  • 我有一组Kafka代理实例作为集群运行。我有一个客户正在生产数据给Kafka: 当我们使用tcpdump进行监控时,我可以看到只有到broker1和broker2的连接被建立,而对于broker3,没有来自我的生产者的连接。我有一个只有一个分区的单一主题。 我的问题是: > 为什么在我的情况下,我无法连接到broker3?或者至少我的网络监控没有显示我的制作人与broker3建立了连接? 如果我能