节点为Kafka消费者

时间:2017-02-03 02:24:55

标签: node.js apache-kafka kafka-consumer-api

我搜索了Node这样的软件包:https://www.npmjs.com/package/kafkahttps://www.npmjs.com/package/no-kafka

我的问题是:这些软件包是否使node.js始终订阅kafka?或者我是否需要像ever或pm2这样的包来实现这一目标?

1 个答案:

答案 0 :(得分:0)

forever之类的目的是让您的节点应用程序始终运行(如果它应该崩溃)。

这与这两个包做或不做的几乎是分开的。它们在您的节点应用程序中运行如果您希望它们一直运行,那么您需要将它们用于始终运行的节点应用程序中。

你可以编写一个不会崩溃的坚如磐石的节点应用程序,以便它可以连续运行,或者你可以尝试这样做并运行类似永久的东西,这样如果你的应用程序死了,永远会自动重启它。

  

这些包是否使node.js始终订阅kafka?   或者我是否需要像ever或pm2这样的包来实现这一目标?

没有。 foreverpm2对卡夫卡做或不做的事情没有影响。他们只是确保您的应用程序因某些原因崩溃或退出时重新启动。

如果您正在使用kafka API的消费者方面,那么您将不得不进行一些研究和测试,以了解库是否始终保持连接,即使您连接的服务器暂时重新启动或者有一个临时的互联网故障。

从我可以看到this implementation的代码,如果在打开的连接上有错误,连接刚刚关闭,没有重新连接逻辑,所以你可能不得不通过订阅来编写重新连接逻辑到errorclose事件,然后在连接丢失时尝试重新连接。