【问题标题】:Node as Kafka consumer节点作为 Kafka 消费者
【发布时间】:2017-02-03 11:09:43
【问题描述】:
【问题讨论】:
标签:
node.js
apache-kafka
kafka-consumer-api
【解决方案1】:
forever 之类的目的是让您的节点应用程序始终运行(如果它应该崩溃)。
这与这两个包做什么或不做什么是完全不同的。它们在您的节点应用程序中运行。如果您希望它们一直运行,那么您需要在始终运行的节点应用程序中使用它们。
您可以编写一个永远不会崩溃的坚如磐石的节点应用程序,以便它持续运行,或者您可以尝试这样做并像永远一样运行,这样如果您的应用程序死了,永远会自动重新启动它。
这些包是否让 node.js 一直订阅 kafka?
还是我需要一些像 forever 或 pm2 这样的软件包来实现这一目标?
没有。 forever 和 pm2 对 kafka 做什么或不做什么没有影响。他们只是确保您的应用在由于某种原因崩溃或退出时重新启动。
如果您使用的是 kafka API 的消费者端,那么您将不得不进行一些研究和测试,以了解该库在让您始终保持连接方面的能力,即使您正在连接的服务器临时重新启动也是如此或者有一个暂时的互联网故障。
通过查看this implementation 的代码,我可以看出,如果打开的连接出现错误,则连接刚刚关闭并且没有重新连接逻辑,因此您可能必须通过订阅来编写重新连接逻辑error 或 close 事件,然后在连接丢失时尝试重新连接。