问题标签 [kafka-partition]
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.
apache-kafka - 将 Kafka 拆分为单独的主题或单个主题/多个分区
像往常一样,看到拆分方法优于其他方法的好处有点令人困惑。
- 我看不出拥有之间的区别/利弊
Topic1 -> P0
和Topic 2 -> P0
- 一个消费者从 2个
Topic 1 -> P0, P1
主题或单个主题/2 个分区中拉取,同时P0
将P1
持有不同的事件类型或实体。
你唯一的好处我可以看到如果另一个消费者需要主题 2 数据,那么它很容易消费
- 关于主题自动生成,这种方式背后有什么好处,或者一段时间后它会失控吗?
谢谢
java - 是否可以使用键和分区来消费 kafka 消息?
我正在使用kafka_2.12版本2.3.0,我使用分区和密钥将数据发布到 kafka 主题中。我需要找到一种方法,使用它可以使用键和分区组合来使用来自主题的特定消息。这样我就不必消耗所有消息并迭代正确的消息。
现在我只能做到这一点
apache-kafka - Kafka中的分区选择
我很好奇如果我有主题 A 和 B,它们具有相同数量的分区,如果我将带有密钥的消息发送x
到主题 A,那么它会进入分区0
让我们说。当我对主题 B 使用完全相同的键但它们是独立的时,在主题 B 中x
,在 kafka 流过程中,消息是否仍会转到主题 B 上的分区?
apache-kafka - 解释为什么 metricbeat Kafka 分区指标的计数高于消费者指标
问题
嗨,我正在尝试使用 Grafana 可视化 Kafka 滞后。我一直在尝试使用 Metricbeat 记录 kafka 滞后并自己进行数学计算,因为 Metricbeat 不支持在我正在使用的版本中记录 Kafka 滞后(但它最近已经实现)。max(partition.offset.newest) - max(consumergroup.offset)
我没有使用来计算滞后,而是sum(partition.offset.newest) - sum(consumergroup.offset)
在特定的kafka.topic.name
. 但是,总和不合,经过进一步调查,我发现计数甚至不合!分区偏移的计数是每 10 秒 30 个,而消费者组偏移的计数是每 10 秒 12 个。我希望两者的计数相同
我不明白为什么 Metricbeat 记录的分区多于消费者组。起初我以为是因为我的 Metricbeat 配置定义了 2 个主机组,这可能导致它被多次记录。但是,在更改我的配置后,计数只下降了一半。
TL;博士
为什么partition和consumergroup的Metricbeat计数不同?
设置
- 卡夫卡 2 经纪人
- Kafka 主题分区:
- Metricbeat 配置(modules.d/kafka.yml):
版本
- 卡夫卡 2.11-0.11.0.0
- Elasticsearch-7.2.0
- Kibana-7.2.0
- Metricbeats-7.2.0
apache-kafka - 不同代理上相同主题的相同 Kafka 分区是否包含相同的消息(相互重复)?
所以确实Broker 1 Topic 1 Partition 1
包含与Broker 3 Topic 1 Partition 1
但Broker 3 Topic 1 Partition 1
包含不同的Broker 3 Topic 1 Partition 2
?
apache-kafka - 只有在每个分区的副本上写入成功时,对 Kafka 主题的写入才会成功?
只有在每个分区的副本上写入成功时,对 Kafka 主题的写入才会成功?或者是否有可以配置的法定人数?
假设你有
- 制片人
- Server1 和 Topic1 Partition1(Leader)
- Server2 和 Topic1 Partition1(副本)
- Server3 和 Topic1 Partition1(副本)
Producer 写入 Topic1。仅当收到来自领导者和两个副本的确认时才存储消息是否有规则?或者是否可以配置一个 quorum: only leader?
apache-kafka - 如何使用多个工作人员(相同数量的分区)在同一主题上扩展 kafka 消费者应用程序
我想了解如何扩展使用来自 Kafka 的同一主题的消息的应用程序(多个实例)。我的疑问是我是否有一个具有 4 个分区的 A 主题,并且我创建了一个 @KafkaListener 属性 concurrency = 4 和一个 groupId = "FixedGroup" 所以 spring 将创建 4 个工作人员,并且 kafka 将选择这 4 个工作人员来使用消息,每个分区一个工作人员,如果我扩大同一个应用程序的新实例(规模),这 4 个工作人员已经被分配为每个分区工作,并且新应用程序与前一个应用程序在同一个组中(因为它只是一个自动缩放)将处于空闲状态,并且自动缩放不会通过水平缩放提高消息处理性能,
apache-kafka - 在控制台模式下运行时,Kafka 的并行概念是否适用?
所以,我是 Kafka 的新手,我已经阅读了一段时间。我在 confluent 上找到了这些信息。
https://docs.confluent.io/current/streams/architecture.html
所以我从中了解到的是,假设我有一个名为 plain_text 的主题,我只是将一堆记录作为纯文本发送,而我只有一个具有单个主题和单个分区的代理。我现在启动 2 个消费者实例 ConsumerA 和 ConsumerB。由于我的分区计数小于消费者计数,因此只有一个消费者应该主动消费消息,而另一个消费者则处于空闲状态。如果我错了,请纠正我。
我使用 kafka-console-* 脚本进行了测试
启动 Zookeeper 集群
在 localhost:9092 上启动一个 kafka 代理
创建一个带有一个分区的纯文本主题
开始制作人
启动属于同一组的 2 个消费者(运行相同的命令两次)
因此,两个消费者中的一个应该拥有该单个分区(如果我错了,请再次纠正我),但是我在生产者控制台上生成的任何内容在两个消费者控制台上都是可见的。为什么两个消费者都在使用来自单个分区的消息。是否有我遗漏的东西或适用于 kafka-console-* 脚本的不同规则。