问题标签 [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.
filebeat - Filebeat 未将事件推送到单个 Kafka 集群中的多个 Kafka 代理
我设置中的 Filebeat 将事件推送到具有 2 个代理的 Kafka 集群。我在主机列表中只添加了一个节点,但发现了集群中的两个代理。我从 Filebeat 日志中了解到这一点。
但是,即使发现了两个经纪人,事件也仅发布给经纪人。
以下是用于输出的 filebeat 配置
即使在日志中,它也列出了它仅连接到一个已注册的代理。
zookeeper 控制台列出了集群中的两个代理,因此 Kafka 集群也很好。
我无法弄清楚导致 Filebeat 仅推送到一个 Kafka 代理的错误。
谢谢
apache-kafka - kafka 中集群资源的 ACL
kafka 中的集群操作是什么,通过在脚本中指定--cluster
选项可以允许/拒绝哪些操作?kafka-acls.sh
从此_
代理间操作分为两类:集群和主题。集群操作是指管理集群所必需的操作,例如更新代理和分区元数据,更改分区的领导者和同步副本集,以及触发受控关闭
但我无法理解这里的实际用例。
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)?
apache-kafka - 如何将单个 Kafka 服务器中使用的 Kafka 主题迁移到具有复制因子 2 的 Kafka 集群?
我正在运行具有多个生产者和消费者的单个 Kafka 服务器。现在我想通过添加另一个代理来实现 Kafka 集群。如何通过使用具有复制因子的相同主题来做到这一点。
apache-kafka - 当控制器成为第二个节点(id 2)时,zookeeper 和 Kafka 不工作
我们有一个包含三个节点的 Kafka 集群。我们有一个奇怪的问题。当控制器成为第二个节点(id 2)时,zookeeper 和 Kafka 不工作。
动物园管理员配置:
卡夫卡配置:
卡夫卡错误:
和动物园管理员错误:
apache-kafka - 如何控制 Kafka 集群发送的请求/消息?
假设我有 3 个 Kafka 代理、一个 Zookeeper、50 个生产者、50 个消费者和 1 个主题(testTopic1
)。并且所有消费者都订阅了testTopic1
。现在我将与 50 个生产者同时发送 50 条消息到同一个主题 ( testTopic1
)。现在我希望 Kafka 集群不要同时向消费者发送超过 40 条消息。剩下的 10 个将继续排队或丢弃它。
也许这是 Kafka 中的负载均衡。我不明白我将如何完成这项工作。我是卡夫卡的新手,请帮忙。
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代码
卡夫卡配置
java - 创建 Kafka 集群以测试基于 Java 的 Kafka 客户端
我有一个 Kafka 客户端,我需要测试它的功能。为此,我需要在本地创建一个 Kafka 集群并连接到它。根据限制,我不能为此使用 Docker 映像或 K8s。
我做了一个搜索,发现这个类用于测试,但我不能更改代理端口。
我尝试使用Debezium KafkaCluster,但它无法间歇性地创建集群,因此导致间歇性测试失败。
有没有办法在本地创建一个 Kafka 集群,为基于 java 的 Kafka 客户端运行集成测试?
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服务器都包含在配置文件中?
我该如何修改脚本?
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?