返回顶部
首页 > 资讯 > 后端开发 > GO >我如何知道要使用 Kafka 中的哪个分区?
  • 257
分享到

我如何知道要使用 Kafka 中的哪个分区?

2024-04-05 00:04:53 257人浏览 八月长安
摘要

golang不知道大家是否熟悉?今天我将给大家介绍《我如何知道要使用 kafka 中的哪个分区?》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能

golang不知道大家是否熟悉?今天我将给大家介绍《我如何知道要使用 kafka 中的哪个分区?》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢谢!希望我们能一起加油进步!

问题内容

我在 kafka 代理中有一个包含 3 个分区的主题 1 个分区有消息,2 个分区为空,我如何知道一次调用要消耗哪个分区?

首先,我分配一个分区等于 kafka.partitionany 的 topicpartition,但该值始终返回 -1

所以我必须手动使用计数器,当我成功从一个分区消费但消息为空时,然后 count++ 并从下一个开始,直到找到消息


for{

    partitions = append(partitions, kafka.TopicPartition{
        Topic:     &topic,
        Partition: partition,
        Offset:    offSet,
        Error:     err,
    })


    err = c.Assign(partitions)
    if err != nil {
         return err
    }

    // retrieve message
    ev, err := c.Poll(-1)
    if err != nil {
         return err
    }

    // if no message, check the next partition
    if ev == nil{
         partition++
    }else{
         break
    }

}

前两轮不返回任何消息,但要等待第三轮返回,有什么办法可以自动检测哪个分区存储着未消费的消息?

如果没有其他办法,kafka可以为我做循环路由吗?或者我必须自己记录计数器

谢谢! :)


解决方案


您绝对应该使用 subscribe() 方法,然后调用 poll()。 如果有可用记录,您将获得包含一条或多条记录(与不同分区关联)的记录答案。

处理记录后,您可以使用记录中包含的元数据(主题、分区、偏移量等)手动提交(如果您使用 enable.auto.commit = false)。

雅尼克

今天关于《我如何知道要使用 Kafka 中的哪个分区?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在编程网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

您可能感兴趣的文档:

--结束END--

本文标题: 我如何知道要使用 Kafka 中的哪个分区?

本文链接: https://lsjlt.com/news/596043.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 我如何知道要使用 Kafka 中的哪个分区?
    Golang不知道大家是否熟悉?今天我将给大家介绍《我如何知道要使用 Kafka 中的哪个分区?》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能...
    99+
    2024-04-05
  • 我如何知道使用命令行安装了哪个 MongoDB 版本?
    首先打开CMD,然后到达MongoDB的BIN目录。打开CMD提示截图如下。在上面,我们通过按“开始”,然后键入“RUN”和“ENTER”进入“运行”对话框。现在,键入 CMD 并按“确定”按钮获取命令行。截图如下 -到达MongoDB的B...
    99+
    2023-10-22
  • 使用kafka如何选择分区数及kafka性能测试
    kafka选择分区数及kafka性能测试 1、简言 ​ 如何选择合适的分区,这是我们经常面临的问题,不过针对这个问题,在网上并没有搜到固定的答案。因此,今天在这里主要通过...
    99+
    2024-04-02
  • 4个Java8中你需要知道的函数式接口分享
    目录前言为什么需要知道这几个函数式接口Function 接口说明apply 方法andThen 和 compose 方法identify 方法Consumer 接口说明accept ...
    99+
    2023-05-14
    Java8函数式接口 Java 函数式接口 Java8 接口
  • 数组是框架的重要组成部分,你知道ASP和Bash中如何使用吗?
    数组是计算机编程中常用的数据结构之一,它可以将多个相关的数据组合在一起,并根据需要进行访问和处理。在框架的开发中,数组也是一个重要的组成部分。在ASP和Bash中,数组的使用也是非常重要的。在本文中,我们将介绍如何在ASP和Bash中使用数...
    99+
    2023-10-19
    bash 框架 数组
  • Kafka中的分区再均衡是如何实现的
    Kafka中的分区再均衡是通过消费者组协调器(Consumer Group Coordinator)来实现的。当消费者加入或离开消费...
    99+
    2024-04-02
  • 你知道如何在Go中使用Git吗?
    Go是一种非常流行的编程语言,它的简洁、高效、安全和易于学习的特点让它成为了许多开发者的选择。Git则是一种非常强大的版本控制系统,它可以让我们更加方便地管理代码。那么,你知道如何在Go中使用Git吗?本文将为你详细介绍。 一、安装Git ...
    99+
    2023-11-15
    git 索引 并发
  • 你真的知道如何在Go中使用Git吗?
    在现代软件开发中,Git已经成为了最流行的版本控制系统之一。而Go语言则是一种相对新的编程语言,它具有简洁、高效和可靠等特点。对于大多数Go开发者来说,掌握如何在Go中使用Git是非常重要的。在本篇文章中,我们将深入探讨如何在Go中使用Gi...
    99+
    2023-10-12
    git shell 函数
  • 你真的知道如何在 PHP 中使用 NumPy 吗?
    在 PHP 中使用 NumPy 是一项非常强大的功能。NumPy 是一个 Python 库,提供了高性能的多维数组和矩阵计算功能。它是数据科学和机器学习领域中不可或缺的工具之一。虽然 PHP 不是一种数据科学或机器学习语言,但它仍然可以使用...
    99+
    2023-10-11
    关键字 git numpy
  • 你知道如何在Java IDE中使用Bash吗?
    在现代软件开发中,Java是一种极其流行的编程语言。Java开发人员经常使用Java集成开发环境(IDE)来编写、调试和测试Java代码。同时,Bash是一种流行的Unix shell,它提供了强大的命令行工具和脚本语言。虽然Java开发...
    99+
    2023-06-17
    ide bash javascript
  • 你知道如何在Laravel中使用对象吗?
    Laravel是一种流行的PHP Web应用程序框架,它提供了一系列的工具和服务来帮助开发者快速构建高质量的Web应用程序。在Laravel中,对象是一种非常重要的概念。本文将介绍如何在Laravel中使用对象。 在Laravel中,对象是...
    99+
    2023-09-25
    编程算法 laravel 对象
  • 您是否知道如何在Java中使用NPM?
    当谈到使用Node.js的包管理工具NPM时,Java开发者可能会感到有些困惑。不过,这并不是一个难以克服的问题。在本文中,我们将为您介绍如何在Java中使用NPM。 首先,您需要安装Node.js。您可以从官方网站上下载Node.js的安...
    99+
    2023-09-02
    函数 关键字 npm
  • 你是否知道如何在Go中使用Git?
    Git是现代软件开发中最流行的版本控制系统之一。它可以帮助我们轻松地管理代码,协作开发,以及跟踪代码变更。Go是一种高效且易于学习的编程语言,它在Web开发、云计算、网络编程等领域得到了广泛应用。本文将介绍如何在Go中使用Git来管理代码...
    99+
    2023-10-14
    对象 http git
  • 您是否知道如何在ASP中使用npm?
    ASP是一种广泛使用的Web应用程序框架,而npm是一种流行的包管理器,用于在JavaScript应用程序中安装和管理依赖项。在本文中,我们将探讨如何在ASP中使用npm。 首先,让我们了解一下npm是什么以及它的作用。npm是Node.j...
    99+
    2023-10-24
    path numpy npm
  • vue项目中如何使用mock你知道吗
    目录第一步:第二步,在request.js中进行相关配置,request.js代码如下:第三步,在mock.js中进行相关配置,mock.js代码如下:第四步,在main.js中需引...
    99+
    2024-04-02
  • 你知道如何在 Go 中使用数组吗?
    当我们编写程序时,经常需要使用到数组。在 Go 语言中,数组是一种简单而强大的数据结构,它可以存储一组相同类型的数据。在本文中,我们将探讨如何在 Go 中使用数组。 声明数组 在 Go 中,声明数组的语法如下: var a [5]int...
    99+
    2023-08-18
    开发技术 数组 关键字
  • 你是否知道如何在Bash中使用Numpy?
    你是否知道如何在Bash中使用Numpy? Numpy是一个Python库,用于科学计算和数据分析。它具有高效的数组操作和数学函数,使得它成为处理大规模数据的利器。但是,你是否知道Numpy也可以在Bash中使用吗?在本文中,我们将介绍如何...
    99+
    2023-08-08
    numpy linux bash
  • 你知道如何在Unix系统中使用ASP来处理大数据吗?我的学习笔记
    在Unix系统中使用ASP来处理大数据是一项非常重要的技能。ASP(Active Server Pages)是一种网页编程语言,它可以在Unix系统中使用。在本文中,我将分享我的学习笔记,教大家如何在Unix系统中使用ASP来处理大数据。 ...
    99+
    2023-08-07
    unix 大数据 学习笔记
  • 我了解到的新知识之----如何使用Pyt
    这个需求本来是来源于公司同事工作中需求,用户需要使用数据分析工具Power BI抓取多页的中国银行官网上当天的外汇数据。但是没能研究出来。 我就开始在网络上找关于使用python来抓取当天汇率的案例分享,没想到“知乎”上有一个网友分享了以...
    99+
    2023-01-30
    如何使用 新知识 Pyt
  • 你知道如何在Java分布式系统中使用Spring函数吗?
    Java分布式系统是目前应用最广泛的分布式系统之一,而Spring函数作为一种新兴的编程模型,可以为Java分布式系统的开发带来很多便利。本文将介绍如何在Java分布式系统中使用Spring函数,并附带演示代码。 一、Spring函数的概述...
    99+
    2023-09-27
    分布式 spring 函数
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作