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

Kafka复制问题

乐正意智
2023-03-14

我正在使用3代理Kafka。如果我停止第三个节点:没问题,我可以从节点1或2消耗日志。如果我停止第二个节点:没问题,我可以从节点1或3消耗日志。如果我停止第一个节点:我不能消耗任何东西。

当我重新启动kafka runner服务时。日志在这里,写得很好。

我的主题配置是:主题:log_topic主题ID:xxx分区计数:32复制因子:3配置:segment.bytes=1073741824,retention.ms=7200000主题:log_topic分区:0领导者:2副本:1,2,3 Isr:2,3,1主题:log_topic分区:1领导者:2副本:1,2,3 Isr:2,3,1主题:log_topic分区:2领导者:2副本:1,2,3 Isr:2,3,1主题:log_topic分区:3领导者:2副本:1,2,3 Isr:2,3,1主题:log_topic分区:4领导者:2副本:1,2,3 Isr:2,3,1主题:log_topic分区:5领导者:2副本:1,2,3 Isr:2,3,1主题:log_topic分区:6领导者:2副本:1,2,3 Isr:2,3,1主题:log_topic分区:7领导者:2副本:1,2,3 Isr:2,3,1主题:log_topic分区:8领导者:2副本:1,2,3 Isr:2,3,1主题:log_topic分区:9领导者:2副本:1,2,3 Isr:2,3,1主题:log_topic分区:10领导者:2副本:2,3,1 Isr:2,3,1主题:log_topic分区:11领导者:3副本:3,1,2 Isr:2,3,1主题:log_topic分区:12领导者:3副本:1,3,2 Isr:2,3,1主题:log_topic分区:13领导者:2副本:2,1,3 Isr:2,3,1主题:log_topic分区:14领导者:3副本:3,2,1 Isr:2,3,1主题:log_topic分区:15领导者:2副本:1,2,3,3 Isr:2,3,1主题:log_topic分区:16领导者:2副本:2,3,1 Isr:2,3,1主题:log_topic分区:17领导者:3副本:3,1 Isr:3,1 Isr: 18领导者: 3副本: 1,3,2 Isr: 2,3,1主题:log_topic分区: 19领导者: 2副本: 2,1,3 Isr: 2,3,1主题:log_topic分区: 20领导者: 3副本: 3,2,1 Isr: 2,3,1主题:log_topic分区: 21领导者: 2副本: 1,2,3 Isr: 2,3,1主题:log_topic分区: 22领导者: 2副本: 2,3,1 Isr: 2,3,1主题:log_topic分区: 23领导者: 3副本: 3,1,2 Isr: 2,3,1主题:log_topic分区: 24领导者: 3副本: 1,3,2 Isr: 2,3,1主题:log_topic分区: 25领导者: 2副本: 2,1,3 Isr: 2,3,1主题:log_topic分区: 26领导者: 3副本: 3,2,1 Isr: 2,3,1主题:log_topic分区: 27领导者: 2副本: 1,2,3 Isr: 2,3,1主题2副本: 2,3,1 Isr: 2,3,1主题:log_topic分区: 29领导者: 3副本: 3,1,2 Isr: 2,3,1主题:log_topic分区: 30领导者: 3副本: 1,3,2 Isr: 2,3,1主题:log_topic分区: 31领导者: 2副本: 2,1,3 Isr: 2,3,1

当我停下来的时候。领导适当地改变。

有什么想法吗?

共有2个答案

方璞
2023-03-14

确保你的\uuuu consumer\u offset主题有三个副本,并且不仅托管在broker 1上。默认情况下,它只有一个副本,这是在服务器中建立的。属性

楚意
2023-03-14

这似乎是消费者补偿主题的配置问题。

_consumer_offsets用于存储每个主题的已提交偏移量信息:每个消费者组的分区(GroupID)

每当一个组中的消费者从Kafka读取数据时,它会定期存储该点上的信息,直到在一个名为_消费者_偏移量的特殊主题中读取数据。这样做是为了在出现故障时,消费者可以从其最后位置恢复。

问题

__consumer_offset主题的复制因子将被设置为1,该主题的所有分区也将出现在broker 1中。

您可以在上面描述要验证的__consumer_offsets主题。如果是这样,那么解决问题的最简单方法是删除__consumer_offsets主题,并使用所需的复制因子重新创建它。

如果删除不是一个选项,那么按照下面线程中的说明

如何更改Kafka主题的副本数量?

 类似资料:
  • 我有两个vm服务器(比如S1和S2),需要在集群模式下安装kafka,其中只有一个分区和两个副本(一个是领导者本身,另一个是追随者),以确保可靠性。 从这个集群设置中获得了高层次的想法,希望确认以下策略是否正确。 首先将zookeeper设置为两个节点上的群集,以实现高可用性(HA)。如果我只在单个节点上设置zk,然后该节点关闭,则整个集群将关闭。正当在最新的Kafka版本中也必须使用zk吗?看来

  • 我有一个配置bean 然而,当我检查时 似乎没有设置我的任何设置。 我假设我可能在放入配置之前无意中创建了主题。我的问题是如何让我的应用程序检测到NewTopic的值与当前的配置匹配,否则会终止应用程序上下文。 或者强制更新。

  • 我用经纪人ID的20、21、22创建了3个Kafka经纪人设置。然后我创建了这个主题: 其结果是: 当生产者向主题zeta发送消息“Hello World”时,Kafka首先将消息写入哪个分区? 如果我有8个用户在他们自己的进程或线程中并行地运行,并订阅了zeta主题,那么Kafka如何分配分区或代理来并行地为这些用户服务?

  • 本文向大家介绍什么是Kafka中的地域复制?相关面试题,主要包含被问及什么是Kafka中的地域复制?时的应答技巧和注意事项,需要的朋友参考一下 答:对于我们的集群,Kafka MirrorMaker提供地理复制。基本上,消息是通过MirrorMaker跨多个数据中心或云区域复制的。因此,它可以在主动/被动场景中用于备份和恢复;也可以将数据放在离用户更近的位置,或者支持数据位置要求。

  • 我正在用单个主题和多个分区实现kafka producer。我通过消息中的一个特定值(消息json中的feedName属性值)选择消息到哪个分区。我正在为feedName-partitionId映射维护一个SQL表。我的问题是,leader和副本的分区Id是否相同?如果不同,如何在所有代理中唯一地标识分区?

  • 我们已经设置了MirrorMaker来跨两个Kafka集群复制消息。我们还在镜像制造商消费者属性中设置了来复制内部主题。我假设这也将复制,这将反过来同步辅助集群中的消费者组偏移量。 但是,当我们在二级集群中启动消费者组时,它从一开始就开始使用消息,因此看起来消费者组偏移量在二级群集中没有得到复制。 有人能提供一些建议吗?我们如何使用MirrorMaker或任何其他解决方案在辅助集群中同步消费者组偏