问题标签 [kafka-cluster]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
583 浏览

filebeat - Filebeat 未将事件推送到单个 Kafka 集群中的多个 Kafka 代理

我设置中的 Filebeat 将事件推送到具有 2 个代理的 Kafka 集群。我在主机列表中只添加了一个节点,但发现了集群中的两个代理。我从 Filebeat 日志中了解到这一点。

但是,即使发现了两个经纪人,事件也仅发布给经纪人。

以下是用于输出的 filebeat 配置

即使在日志中,它也列出了它仅连接到一个已注册的代理。

zookeeper 控制台列出了集群中的两个代理,因此 Kafka 集群也很好。

我无法弄清楚导致 Filebeat 仅推送到一个 Kafka 代理的错误。

谢谢

0 投票
1 回答
480 浏览

apache-kafka - kafka 中集群资源的 ACL

kafka 中的集群操作是什么,通过在脚本中指定--cluster选项可以允许/拒绝哪些操作?kafka-acls.sh

从此_

代理间操作分为两类:集群和主题。集群操作是指管理集群所必需的操作,例如更新代理和分区元数据,更改分区的领导者和同步副本集,以及触发受控关闭

但我无法理解这里的实际用例。

0 投票
1 回答
3747 浏览

apache-kafka - 卡夫卡:选举新领导人的基于群体的方法?

有两种常见的策略来保持副本同步,主备份复制和基于仲裁的复制,如此处所述

在主备份复制中,领导者会等到组中每个副本的写入完成后才确认客户端。如果其中一个副本发生故障,领导者将其从当前组中删除并继续写入剩余的副本。如果失败的副本返回并赶上领导者,则允许它重新加入该组。使用 f 个副本,主备复制可以容忍 f-1 个故障。

在基于 quorum 的方法中,领导者等待直到大多数副本上的写入完成。即使某些副本关闭,副本组的大小也不会改变。如果有 2f+1 个副本,基于仲裁的复制可以容忍 f 个副本失败。如果领导者失败,它至少需要 f+1 个副本来选举一个新的领导者。

If the leader fails, it needs at least f+1 replicas to elect a new leader我对基于仲裁的方法中的声明有疑问。我的问题是为什么f+1需要 at 副本的 quorum(majority) 来选举新的领导者?为什么不f+1 选择同步副本(ISR)之外的任何副本?为什么我们需要选举而不是简单的任何选择?

对于选举,zookeeper 如何从剩余的副本中选出最终的领导者?它会比较哪个副本是最新更新的吗?另外,为什么我需要 Zookeper 的奇数(比如 3)来选举领导者而不是偶数(比如 2)?

0 投票
1 回答
1123 浏览

apache-kafka - 如何将单个 Kafka 服务器中使用的 Kafka 主题迁移到具有复制因子 2 的 Kafka 集群?

我正在运行具有多个生产者和消费者的单个 Kafka 服务器。现在我想通过添加另一个代理来实现 Kafka 集群。如何通过使用具有复制因子的相同主题来做到这一点。

0 投票
0 回答
726 浏览

apache-kafka - 当控制器成为第二个节点(id 2)时,zookeeper 和 Kafka 不工作

我们有一个包含三个节点的 Kafka 集群。我们有一个奇怪的问题。当控制器成为第二个节点(id 2)时,zookeeper 和 Kafka 不工作。

动物园管理员配置:

卡夫卡配置:

卡夫卡错误:

和动物园管理员错误:

0 投票
2 回答
208 浏览

apache-kafka - 如何控制 Kafka 集群发送的请求/消息?

假设我有 3 个 Kafka 代理、一个 Zookeeper、50 个生产者、50 个消费者和 1 个主题(testTopic1)。并且所有消费者都订阅了testTopic1。现在我将与 50 个生产者同时发送 50 条消息到同一个主题 ( testTopic1)。现在我希望 Kafka 集群不要同时向消费者发送超过 40 条消息。剩下的 10 个将继续排队或丢弃它。

也许这是 Kafka 中的负载均衡。我不明白我将如何完成这项工作。我是卡夫卡的新手,请帮忙。

0 投票
1 回答
89 浏览

spring-kafka - spring-kafka 不能与 kafka-cluster 一起使用

我已经配置了 3 个 kafka 集群,我正在尝试使用 spring-kafka。但是当我杀死一个卡夫卡时,我无法将其他消息发送到队列。

Kafka 2.0.0 版 spring-kafka 2.0.1 版

kafka-topics.sh --describe --zookeeper=zoo1:2181 打印

弹簧卡夫卡配置

领导者是 kafka2。当我杀死 kafka1 时。领导者仍然是kafka1。但是 spring-kafka 会抛出

看起来 spring-kafka 连接只使用 kafka1;

我的java代码

卡夫卡配置

0 投票
3 回答
409 浏览

java - 创建 Kafka 集群以测试基于 Java 的 Kafka 客户端

我有一个 Kafka 客户端,我需要测试它的功能。为此,我需要在本地创建一个 Kafka 集群并连接到它。根据限制,我不能为此使用 Docker 映像或 K8s。

我做了一个搜索,发现这个类用于测试,但我不能更改代理端口。

我尝试使用Debezium KafkaCluster,但它无法间歇性地创建集群,因此导致间歇性测试失败。

有没有办法在本地创建一个 Kafka 集群,为基于 java 的 Kafka 客户端运行集成测试?

0 投票
1 回答
1072 浏览

kubernetes - 如何使用多个 Google Kubernetes Engine (GKE) 集群制作多区域 Kafka/Zookeeper 集群?

我在 Google Cloud Platform 上的 3 个不同区域中有 3 个 GKE 集群。我想创建一个 Kafka 集群,在每个区域(每个 GKE 集群)中都有一个 Zookeeper 和一个 Kafka 节点(代理)。

这种设置旨在避免区域故障(我知道整个 GCP 区域出现故障是罕见的,而且极不可能发生)。

我正在尝试使用Incubator 提供的Helm Chart进行此设置。

我按照本指南在 3 个 GCP 虚拟机上手动尝试了此设置,并且我能够毫无问题地完成此设置。

但是,在 Kubernetes 上设置 Kafka 集群似乎很复杂。

我们知道我们必须在每个 zookeeper 配置文件中提供所有 zookeeper 服务器的 IP,如下所示:

正如我在 Helm 图表中看到的config-script.yaml文件有一个脚本,它为每个部署创建 Zookeeper 配置文件。

与zookeeper服务器相呼应的脚本部分如下所示:

截至目前,此 Helm 图表创建的配置在配置中具有以下 Zookeeper 服务器和一个副本(此处的副本意味着Kubernetes Pods replicas)。

在这一点上,我一无所知,不知道该怎么办,让所有的Zookeeper服务器都包含在配置文件中?

我该如何修改脚本?

0 投票
2 回答
6845 浏览

apache-kafka - 在 Kafka HA 中,为什么需要的最小代理数是 3 而不是 2

我们正在尝试使用 kafka 集群实现 Kafka HA。在做研发的时候,我们发现推荐给 zookeeper 和 kafka broker 的最小节点数是 3。

我们理解为什么 zookeeper 应该至少有 3 个节点,因为对于领导者选举,最少 (n+1)/2 个节点应该启动并运行。

但不清楚,为什么至少需要 3 个 kafka 经纪人。为什么我们不能用 2 个 kafka 代理和 3 个 zookeeper 节点来实现 HA?