当前位置: 首页 > 知识库问答 >
问题:

Kafka使用者都将assigned_partition设置为0,但在运行时分配不同的分区

景宏朗
2023-03-14

我不确定我是否做错了什么--但如果有人能帮助澄清这一点。

场景:

    null
Listening on Topic : TOPIC_2PART
Status :True
ClientId : consumer_3_1
***************
  CONFIG 
***************
bootstrap_servers -> $node1_port
client_id -> consumer_3_1
group_id -> CGRP_TOPIC_2PART
value_deserializer -> <function CreateConsumer.consume.<locals>.<lambda> at 0x0000020175217DC8>
partition_assignment_strategy -> (<class 'kafka.coordinator.assignors.range.RangePartitionAssignor'>, <class 'kafka.coordinator.assignors.roundrobin.RoundRobinPartitionAssignor'>)
metric_group_prefix -> consumer
***************
  METRICS 
***************         
    consumer-fetch-manager-metrics
    **assigned-partitions->0.0**
Listening on Topic : TOPIC_2PART
Status :True
ClientId : consumer_3
***************
  CONFIG 
***************
bootstrap_servers -> $node1_port
client_id -> consumer_3
group_id -> CGRP_TOPIC_2PART
value_deserializer -> <function CreateConsumer.consume.<locals>.<lambda> at 0x00000118DC956DC8>
partition_assignment_strategy -> (<class 'kafka.coordinator.assignors.range.RangePartitionAssignor'>, <class 'kafka.coordinator.assignors.roundrobin.RoundRobinPartitionAssignor'>)
selector -> <class 'selectors.SelectSelector'>
***************
  METRICS 
***************
            kafka-metrics-count
            consumer-fetch-manager-metrics
            consumer-coordinator-metrics
    assigned-partitions->0.0
ConsumerRecord(topic='TOPIC_2PART', **partition=0**, offset=14, timestamp=1616346804116, timestamp_type=0, key=None, value={xxxx}, headers=[], checksum=None, serialized_key_size=-1, serialized_value_size=99, serialized_header_size=-1)
ConsumerRecord(topic='TOPIC_2PART', **partition=1**, offset=4, timestamp=1616346723367, timestamp_type=0, key=None, value={}, headers=[], checksum=None, serialized_key_size=-1, serialized_value_size=83, serialized_header_size=-1)
ConsumerRecord(topic='TOPIC_2PART', **partition=1**, offset=5, timestamp=1616346743556, timestamp_type=0, key=None, value={}, headers=[], checksum=None, serialized_key_size=-1, serialized_value_size=94, serialized_header_size=-1)

共有1个答案

张智
2023-03-14

assigned-partitions指标是分配给每个使用者的分区数,而不是分区ID。对于两个使用者和两个分区,一旦订阅,每个使用者和分区的值都应该设置为1。所以问题是--订阅什么时候发生?似乎您粘贴的信息是在订阅前提取的。

 类似资料:
  • Kafka-来自同一组的多个使用者分配了相同的分区 我刚刚开始学习Kafka和诺德。我已经写了一篇关于消费者的文章如下 输出 有四个分区。 编辑 我使用了,如下所示。 生产者正在发送100条消息,收到的消息如下。这就是我如何知道分配的分区(不是从对象)。 当我运行两个这样的使用者实例(相同的主题和组)时,其中只有一个接收来自分区0的所有内容。这不是问题吗? 这是生产商代码。

  • 多台机器生成事件。这些事件被发送到我们的Kafka集群,其中每台机器都有自己的主题(app.machine-events.machine-name)。因为顺序在每台机器的基础上很重要,而分区大小现在不是问题,所以所有主题都由一个分区组成。因此,目前,N个主题也意味着N个分区。 消费/处理应用程序使用了kafka-streams,我们给出了/“machine-event-processor”,它对每

  • 我有10个消费者和10个分区。我取分区数 并且使用相同的group.id创建相同数量的消费者。 我也发现很少这样的日志->

  • 我有一个JTabbedPane(比如myTabPane),有一个选项卡(为了清晰起见,我们只取一个选项卡)。在创建JTabbedPane时,我在这个选项卡中添加了一个JPanel(比如panel_A)。我在这个JPanel上有一个按钮。这个选项卡完美地显示了我的JPanel,上面有按钮。到目前为止一切都很好。 我已经在按钮上定义了一个侦听器,该侦听器创建了另一个扩展JPanel的类的实例(例如pa

  • 我知道kafka将一个主题的数据安排在许多分区上,一个消费者组中的消费者被分配到不同的分区,从那里他们可以接收数据: 我的问题是: 术语,它们是由主机/IP标识的,还是由客户端连接标识的? 换句话说,如果我启动两个线程或进程,使用相同的消费者组运行相同的Kafka客户端代码,它们被认为是一个消费者还是两个消费者?

  • 将kafka consumer offset重置为“最早”时,它会保留一些带有偏移量的分区 显示: 为什么分区1也没有0?