首页 > 解决方案 > 我如何在 Apache Flink Serverless Java 中运行 Web 套接字

问题描述

  1. 我有一个 Java 程序要在 AWS 的 Apache flink 中运行我想通过 Web 套接字运行实时通信我如何在 Apache flink Java 中集成无服务器 Web 套接字???感谢您

标签: websocketapache-flinkserverless-frameworkserverlessaws-serverless

解决方案


Flink 旨在帮助您在存储或流解决方案之间连续处理和移动数据。由于以下原因,它不打算也不能直接与 websocket 一起使用:

  • 提交作业时,运行时序列化您的逻辑并将其移动到其他 TaskManager 实例,以便它可以并行化它们。这些可以完全在另一台机器上。现在,如果您打算使用该代码为 websocket 提供服务,那么它刚刚转移到其他地方!

  • TaskManager 可以停止和重新启动(缩放事件、从检查点/保存点恢复等)。这就是您的 websocket 连接将被切断的地方。

  • 此外,如果有助于处理,Flink 规划器可以决定您的源函数需要被读取两次。这意味着您的 websocket 需要维护收到的消息的历史记录,并确保将它们发送到每个操作员实例一次。


话虽如此,您可以拥有一个管理 websocket 的网络服务器,将消息来回传送到 Kafka 主题,然后 Flink 可以对其进行操作。

既然你在谈论 AWS,我建议你了解他们的Websocket API Gateway 服务。我相信这些可以很容易地与 Kinesis 连接,Flink 可以轻松地读取和写入


推荐阅读