当我运行这个命令时,我得到 2 个主题。我知道我创建了测试主题,但我看到了一个名为“__consumer_offsets”的附加主题。顾名思义,它与消费者偏移量有关,但它是如何使用的?
$ bin/kafka-topics.sh --list --zookeeper localhost:2181
__consumer_offsets
test
$ bin/kafka-topics.sh --describe --zookeeper localhost:2181
Topic:__consumer_offsets PartitionCount:50 ReplicationFactor:1 Configs:segment.bytes=104857600,cleanup.policy=compact,compression.type=producer
Topic: __consumer_offsets Partition: 0 Leader: 0 Replicas: 0 Isr: 0
Topic: __consumer_offsets Partition: 1 Leader: 0 Replicas: 0 Isr: 0
*
*
*
Topic: __consumer_offsets Partition: 48 Leader: 0 Replicas: 0 Isr: 0
Topic: __consumer_offsets Partition: 49 Leader: 0 Replicas: 0 Isr: 0
Run Code Online (Sandbox Code Playgroud)
这发生在 Kafka 1.1.0 以及为什么有 50 个分区。也在寻找一种方法来禁用它,因为每次我尝试运行“描述”主题时,它首先打印 __consumer_offsets 的 50 个分区,然后打印我的主题。
当我运行两个具有完全相同属性的 Kafka-console-consumers 实例(使用默认的一个 config/consumer.properties)时,我在两个实例上都收到相同的消息。
./bin/kafka-console-consumer.sh --bootstrap-server :9092 --topic test1
Run Code Online (Sandbox Code Playgroud)
如果两个实例具有相同的消费者组 ID,那么 Kafka 不应该只向其中一个消费者发送给定的消息吗?如何将它们作为一个消费者群体运行?
在 RHEL v6.9 上使用 Kafka v2.1.0 的Kafka 快速入门
当 Kafka 代理之一出现故障时,消费者无法接收数据。
执行步骤:
1. 启动zookeeper
2. 启动Kafka-Server0 (localhost:9092, kafkalogs1)
3. 启动Kafka-Server1 (localhost:9094, kafkalog2)
4. 创建topic "test1", num of partitions = 1, replication factor = 2
5. 为主题“test1”运行生产者
6. 运行消费者
7. 从生产者发送消息
8. 在消费者端接收消息。
以上所有步骤都没有任何问题。
当我关闭 Kafka-Server0 时,消费者停止从生产者获取数据。当我重新启动 Kafka-Server0 时,消费者开始从它停止的地方获取消息。
这些是使用的命令
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test1
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test1
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 2 --partitions 1 --topic test1
Run Code Online (Sandbox Code Playgroud)
当我使用 --bootstrap-server 选项中指定的两个服务器运行消费者时,行为是相同的(消费者端没有收到消息)。
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092,localhost:9094 --topic test1
Run Code Online (Sandbox Code Playgroud)
知道为什么即使主题 test1 …
apache-kafka ×3