docker - 我可以在 Kafka 上自动重新分配分区吗?
问题描述
我正在 Kubernetes 上设置一个具有 3 个节点的 Kafka 集群。如果节点崩溃,我应该通过脚本自动重新分配分区吗?非常感谢。
解决方案
正如@asolanki 所提到的,Kafka 会自动将领导者故障转移到活跃的代理。我只是想指出,这不称为重新分配 - 它称为领导者故障转移。
在 Kafka 中,一个分区被分配给 N 个副本 (N=复制因子)。同步副本集 (ISR) 是同步的副本集(活动并具有最新数据)。ISR 自然地遵循副本集。
重新分配是指您更改应托管此分区的副本。我认为一个例子可以说明这一点:
一个简单的故障转移:
1. partition=0 is on brokers (replicas) replicas=[1,2,3], isr=[1,2,3]. Broker 1 is the leader
2. broker 1 fails. Kafka automatically fails over to another broker
3. replicas=[1,2,3], isr=[2,3] (broker 1 is dead)
一个简单的重新分配:
1. partition=0 is on brokers (replicas) replicas=[1,2,3], isr=[1,2,3]
2. We reassign partition=0 to replicas=[4,5,6]
3. replicas=[4,5,6], isr=[4,5,6]
推荐阅读
- google-apps-script - 自定义函数的独立脚本
- javascript - Vanilla JS 菜单下拉菜单不会关闭
- python - 如何让我的脚本很好地拒绝无效字符
- excel - 对所有 VLOOKUP 匹配求和
- google-bigquery - 如何返回具有最大值的 BigQuery 表行
- sql - 如何一次将多个 SSIS 包部署到 SQL Server?
- php - 向 laravel db 查询结果添加新的对象键值
- php - 如何通过单击“发送到信使”按钮检查用户是否登录到 Facebook?
- discord.js - Discord.JS V12 提到了一个用户中间状态
- python - Django 项目不会加载到 CSS 文件中