Apache kafka kafka消费者/生产者如何提交消息/分区?
我刚刚开始与卡夫卡合作,并开始在我的本地机器上玩卡夫卡。我能够使用confluent提供的工具生成和使用消息 到目前为止,我的理解是 kafka客户端(即消费者和生产者)维护一个消息队列。 生产者将在本地缓冲队列中存储生成的每条消息。生产者需要显式地将消息从本地缓冲区推送到kafka集群。 在使用者端,它将以某种方式从kafka集群获取消息,并将其存储在本地缓冲区队列中,然后通过api调用(如轮询)从缓冲区中提取这些消息 首先,我在这里失踪了吗 此外,我经常在两个客户机上遇到一个短语commit messages/offset。向卡夫卡提交消息/偏移量到底意味着什么 生产者将在本地缓冲队列中存储生成的每条消息。生产者需要明确地将消息推送到kafka集群 您可以配置批处理的大小、确认等,但不需要在调用producer.product后显式推送 在使用者端,它将以某种方式从kafka集群获取消息,并将其存储在本地缓冲区队列中,然后通过api调用(如轮询)从缓冲区中提取这些消息 你说得对 首先,我在这里失踪了吗 不,这些概念对于优化/性能非常重要,您应该注意如何配置生产者和消费者,但它们不应该影响您对生产者/消费者进行编码的方式,例如,不要对cosumer.poll进行计时 在生成端,有一个事务的概念,如果您不想发布消息,这是为了支持两阶段提交,但我不确定这如何与pythonapi一起工作。除此之外,你还应该考虑当你调用生产者产品时发送的消息。您不需要在每次producer.product之后都给producer.flush打电话 在消费端,有提交和偏移的概念。从较高的层次上讲,您可以这样想:当您进行民意调查时,您是在请求来自API的消息,但为了便于理解,您是在请求来自主题的消息。现在,当您浏览主题中的消息时,您可能希望以某种方式让卡夫卡知道您已经阅读并处理了一些消息,并且不希望再次看到它们 每个消息在主题中都有一个偏移量,这实际上是在分区中,但我们可以保持它的简单性并称之为主题。您可以将此偏移量视为主题中消息的位置—第一条消息0,第二条消息1,依此类推,添加的每条消息的偏移量都高于最后一条消息。当您显式调用commit时,实际上是在提交偏移量,并告诉Kafka您已经阅读了到目前为止的所有消息,不想再次看到它们Apache kafka kafka消费者/生产者如何提交消息/分区?,apache-kafka,Apache Kafka,我刚刚开始与卡夫卡合作,并开始在我的本地机器上玩卡夫卡。我能够使用confluent提供的工具生成和使用消息 到目前为止,我的理解是 kafka客户端(即消费者和生产者)维护一个消息队列。 生产者将在本地缓冲队列中存储生成的每条消息。生产者需要显式地将消息从本地缓冲区推送到kafka集群。 在使用者端,它将以某种方式从kafka集群获取消息,并将其存储在本地缓冲区队列中,然后通过api调用(如轮询)从缓冲区中提取这些消息 首先,我在这里失踪了吗 此外,我经常在两个客户机上遇到一个短语commit