我用过 Apache Kafka在我的项目中,需要将它集成到一个 react native 应用程序中,该应用程序也是该项目的一部分。基本上,我的服务器是 Kafka 生产者,应用程序需要收听主题并成为消费者。
起初,我尝试使用这个 npm 包。 https://github.com/SOHU-Co/kafka-node .
但是这个包依赖于 nodejs 的核心模块,这些模块不是 React Native 包的一部分。有没有其他方法可以让我在 React Native 应用程序中使用 Kafka 进行通信?
谢谢!
最佳答案
一个快速的解决方案是将 Kafka 集群置于一个简单的 REST API 之后。使用类似 kafka-rest 的库可能是使用内置的 fetch
函数连接 React Native 应用程序的简单方法。您可以更进一步,尝试集成 kafka-rest-node客户端进入你的 React Native 应用;对 repo 的粗略概述不会导致任何核心 Node 依赖项。
另一种允许“实时”更新的方法可能包括将 Kafka 置于 Web 服务器之后,该服务器将 Kafka 流转换为 WebSocket 连接。 kafka-websocket 等图书馆允许客户既消费又生产,而像 Microsoft 的 kafka-proxy-ws 这样更简单的库只允许消费消息。
值得注意的是,移动客户端并不总是能很好地处理流数据,建议您在各种不确定的网络条件(延迟、信号丢失等)下测试基于 WebSocket 的实现。
关于javascript - 需要在我的 React-Native 应用程序中使用 Apache Kafka,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42531690/