问题标签 [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.
docker - Zookeeper重启后Kafka集群丢失消息
我正在使用 Docker 启动一个 kafka 代理集群(例如,5 个代理,每个容器一个代理)。Kafka 版本 2.12-0.11.0.0,Zookeeper 3.4.10。
场景:
- 使用以下配置启动第一个代理
动物园.cfg
服务器属性
生产者属性
消费者属性
Zookeeper 以独立模式启动,然后启动 kafka
创建主题
/opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic my-test-topic1
- 发送消息
echo "test_kafka1" | /opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-test-topic1
- 检查消息
/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-test-topic1 --max-messages 1
收到消息
- 描述主题
/opt/kafka/bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-test-topic1
Topic:my-test-topic1 PartitionCount:1 ReplicationFactor:1 Configs:
Topic: my-test-topic1 Partition: 0 Leader: 1 Replicas: 1 Isr: 1
- 开始休息 4 个经纪人
zoo.cfg从第 1 到第 5 的每个经纪人(只有 0.0.0.0:2888:3888 位置不同)
从第 1 个到第 5 个代理上的server.properties(broker.id 是唯一的,broker_IP:broker_PORT 对于 ech 代理不同)
从第 1 到第 5 的每个经纪人的producer.properties
从第 1 到第 5 的每个经纪人的consumer.properties
重启每个broker上的zookeeper使zoo.cfg生效
动物园管理员聚集成集群
话题转移到经纪人 5
/opt/kafka/bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-test-topic1
Topic:my-test-topic1 PartitionCount:1 ReplicationFactor:1 Configs:
Topic: my-test-topic1 Partition: 0 Leader: 5 Replicas: 5 Isr: 5
这是正常行为吗?还是应该留在经纪人 1 上?
- 检查每个代理上的消息
/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-test-topic1 --max-messages 1
消息丢失(topic停留在broker 1时消息不丢失,为浮动情况)
apache-kafka - 一个集群中有多少个 Kafka 控制器,一个控制器的用途是什么?
Kafka 集群中的 Kafka 控制器负责管理分区领导者和复制。
如果 Kafka 集群中有 100 个代理,控制器是否只是一个 Kafka 代理?那么在 100 个经纪人中,控制者是领导者吗?
你怎么知道哪个经纪人是控制器?
Kafka Controller 的管理对于 Kafka 系统管理是否至关重要?
linux - 在 Linux RHEL7.5 虚拟机上配置 5 节点 Kafka 集群
我在 Linux RHEL7.5 虚拟机上配置 5 节点 Kafka 集群。谁能建议我必须使用 SAN 或 NAS 的存储类型?
apache-kafka - 在本地计算机上设置多代理集群时出错
在 Ubuntu 上使用 Kafka: Zookeeper 启动 Kafka 启动 主题创建 生产者启动 消费者启动 消息从生产者到消费者传递良好
我创建了 2 个新的 server.properties 文件为: server-1.properties 为:
server-2.properties 为:
当我启动新经纪人时:
得到错误为:
apache-kafka - 如果 ID=0 的代理关闭,Kafka 集群将无法工作
我有一个带有 3 个代理的 Kafka 集群,配置如下:
生产者以 Broker-2 为目标发布消息
我开始测试所有启动并运行的代理
A至此,生产者发布的所有消息都被消费者接收到了
然后我杀了Broker-0(现任领导)
此时,消费者不再收到生产者发布的消息
然后,我启用了 Broker-0
此时,生产者发布的所有消息都被消费者正确接收
然后我杀了Broker-1(现任领导)
此时,生产者发布的所有消息仍然被消费者正确接收。
为什么经纪人之间的行为如此不同?
更新 #1
我注意到一些可能有用的东西:
当我杀死 Broker-1 时,我在消费者控制台上看到以下警告(很多次)
但是当我杀死 Broker-0 时,我看到了这些警告消息(很多次)
我想知道 ID=2147483647 的经纪人是什么?
java - 了解Kafka写入速度
鉴于
1. 5 台机器 Kafka 集群
2. 1 个主题和 1 个分区
3. msgs 的持久存储
4. 每个 1 KB 的 msg
5. 10 个生产者
现在,这个集群的最大写入能力是否等于一个 java 线程在磁盘上的最大写入能力?如果没有,会是什么?
apache-kafka - 如何通过kafka客户端查看集群中运行的kafka服务器的数量和IP?
我有一个要求,我们必须通过一个休息点来验证系统的健康检查。这个想法是通过kafka客户端获取集群中kafka节点的数量及其IP。kafka是否在客户端提供任何API来获取此信息?
apache-kafka - Kafka:高可用性所需的最少代理数量是多少?
假设我想在小型部署的生产环境中拥有高可用性的 Kafka。我必须使用以下配置
如果 1 个代理崩溃并且 1 个副本随之消失,Kafka 会开始制作新的副本吗?
在任何情况下,我们是否必须至少拥有default.replication.factor数量的代理才能继续工作?
apache-kafka - 两个(Kafka)S3 连接器不能同时工作
我有一个 Kafka Connect 在一个集群(3 个节点)中工作,带有 1 个连接器(主题 - > S3),一切都很好:
但是当我创建另一个连接器时,任务状态总是这样:
我不知道为什么我在配置中做错了同一个插件的两个连接器不能一起工作,如果我停止运行正常的连接器#1,重新启动后连接器#2,工作正常。有谁知道我应该在配置中改变什么?
apache-kafka - Kafka集群增加副本因子不起作用
嗨,当按照本文档中的步骤操作时,我遇到了一个奇怪的问题,即增加 Kafka 的副本因子:https ://kafka.apache.org/documentation/#basic_ops_increase_replication_factor
症状看起来像复制因子增加根本不起作用。
请帮忙
我的卡夫卡设置是
卡夫卡版本:kafka_2.12-2.1.0
服务器:主机名 server-0 (192.168.0.1)
- 卡夫卡经纪人 ID:0
- 卡夫卡端口:9092
- 动物园管理员端口:2181
服务器:主机名 server-1 (192.168.0.2)
- 卡夫卡经纪人 ID:1
- 卡夫卡端口:9092
- server-1 上没有 Zookeeper
话题
- 主题数:1
- 主题名称:数据
- 分区数:1
DATA 主题仅首先使用来自 server-0 的副本因子 1 创建
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic DATA
结果看起来像
bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic DATA
Topic:DATA PartitionCount:1 ReplicationFactor:1 Configs:
Topic: DATA Partition: 0 Leader: 0 Replicas: 0 Isr: 0
创建主题后,我生成了一些测试消息
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic DATA
message 1
message 2
然后通过仅在 server-0 中运行命令将主题 DATA 的副本因子增加到 2
下面的 json 文件与 Kafka-reassign-partitions.sh 一起使用以增加副本因子
{
"version":1,
"partitions":[ {"topic":"DATA","partition":0,"replicas":[0,1]} ]
}
命令行:
bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file topics-to-expand.json --execute
从表面上看,通过描述主题结果看起来不错
bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic DATA
Topic:DATA PartitionCount:1 ReplicationFactor:2 Configs:
Topic: DATA Partition: 0 Leader: 0 Replicas: 0,1 Isr: 0,1
我在这里制作了更多测试消息
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic DATA
message 3
message 4
但是,当我尝试从 server-1 进行测试时,问题就出现了
现在我从 server-0 杀死了 kafka 进程
kill -9 [kafka-pid]
当我从 server-1 运行控制台消费者时会出现问题
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic DATA --from-beginning
没有消息显示,控制台只是在空白屏幕上阻塞。
我认为根据文档,我应该能够看到消息,因为副本是/曾经同步的?不?
描述主题显示
bin/kafka-topics.sh --zookeeper server-0:2181 --describe --topic DATA
Topic:DATA PartitionCount:1 ReplicationFactor:2 Configs:
Topic: DATA Partition: 0 Leader: 1 Replicas: 0,1 Isr: 1
然后我从 server-0 重新启动了 kafka 进程,消费者控制台屏幕突然显示历史中的所有消息
message 1
message 2
message 3
message 4
看起来来自 server-1 的消费者没有在本地消费来自 server-1 的任何数据,因为主题数据没有复制到 server-1。相反,它仍然等待 server-0 恢复提供数据。甚至 server-1 也被标记为领导者。
谁能复制我的问题?我想附加我的属性,但我不知道如何在 stackoverflow 中附加文件,对此感到抱歉...