【发布时间】:2021-11-25 08:24:58
【问题描述】:
据我了解,Kafka 中的 Consumer 总是轮询该主题。 至少我在这段代码中看到了:
ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));
因此,Kafka 的用例应该与 REST 世界非常不同。在 REST 中,您仅在您真正需要数据时“轮询”。不必要的“轮询”只是无用的网络流量。如果您是报纸出版商,您总是想要最新消息,因此您需要进行民意调查。 Kafka 的好用例。或者您想知道机器是否即将崩溃的物联网,因此您可以定期轮询并询问状态。
所以我真的不明白为什么 Kafka 在微服务中使用得这么多。 假设我们有一个微服务订单和一个微服务计算器。 如果计算器想在 REST 世界中计算上个月的订单,他会调用 get /orders/month/july 例如。 Kafka 在这个例子中会产生什么意义?首先,您不会将订单存储在主题中,而是存储在表格中。 据我了解,Kafka 主题就像“表格”。因此,当您使用 Kafka 时,不涉及其他数据库。对吧?
【问题讨论】:
-
我搜索了“Apache Kafka 用例”并立即在项目网站上找到了这个:kafka.apache.org/uses 和 many other pages,这可能比这里的任何答案都更能解释它。
-
感谢您的链接。但它仍然没有回答我的具体问题。我真的最需要回答我上面的具体问题
-
问题是您的整个问题都基于错误的前提:您将 Kafka 与 API 调用和数据库进行比较,但 这些不是 Kafka 的用途。这就像在说“我为什么要住在车里而不是房子里?” - 答案是“你不会,但汽车对这些事情很有用”。
标签: apache-kafka kafka-consumer-api