需要在我的 React-Native 应用程序中使用 Apache Kafka

Need to use Apache Kafka in my React-Native app

我在我的项目中使用了 Apache Kafka 并且需要将它集成到一个 react-native 应用程序中,该应用程序也是该项目的一部分。基本上,我的服务器是 Kafka 生产者,应用程序需要收听主题并成为消费者。

起初,我尝试使用这个 npm 包。 https://github.com/SOHU-Co/kafka-node
但是这个包依赖于 nodejs 的核心模块,这些模块不是 React Native 包的一部分。有没有其他方法可以让我在 React Native 应用程序中使用 Kafka 进行通信? 谢谢!

一个快速的解决方案是将 Kafka 集群置于简单的 REST API 之后。在你的 React Native 应用程序中使用像 kafka-rest could be an easy way to connect your React Native app using the built in fetch function. You could go a step further and try to integrate the kafka-rest-node 客户端这样的库;对 repo 的粗略概述不会导致任何核心节点依赖项。

另一种允许 "live" 更新的方法可能包括将 Kafka 置于将 Kafka 流转换为 WebSocket 连接的 Web 服务器之后。 kafka-websocket allow clients to both consume and produce, whereas a more simple library like Microsoft's kafka-proxy-ws 等库仅允许使用消息。

值得注意的是,移动客户端并不总是能很好地处理流数据,建议您在各种不确定的网络条件(延迟、信号丢失等)下测试基于 WebSocket 的实现。

尝试DeepstreamIO

它是一个实时套接字服务器,可以很好地与 React-Native 和 Kafka 集成。它可以使用 Kafka 作为消息代理,在分布式 Deepstream 节点之间传递消息,并将消息推送到其他订阅的客户端。它们是开源的,因此您可以根据您的特定需求配置它们的连接器。