【发布时间】:2021-05-19 23:44:30
【问题描述】:
- 我有一个 Java 程序要在 AWS 的 Apache flink 中运行我想运行 通过 Web 套接字进行实时通信我如何在 Apache flink Java 中集成无服务器 Web 套接字??? 谢谢你
【问题讨论】:
标签: websocket apache-flink serverless-framework serverless aws-serverless
【问题讨论】:
标签: websocket apache-flink serverless-framework serverless aws-serverless
Flink 旨在帮助您在存储或流解决方案之间连续处理和移动数据。由于以下原因,它不打算也不能直接与 websocket 一起使用:
提交作业时,运行时会序列化您的逻辑并将其移动到其他 TaskManager 实例,以便它可以并行化它们。 这些可以完全在另一台机器上。现在,如果您打算使用该代码为 websocket 提供服务,那么它刚刚转移到其他地方!
TaskManager 可以停止和重新启动(缩放事件、从检查点/保存点恢复等)。这就是你的 websocket 连接将被切断的地方。
此外,如果有助于处理,Flink 规划器可以决定您的源函数需要被读取两次。这意味着您的 websocket 需要维护收到的消息的历史记录,并确保将它们发送到每个 operator 实例一次。
也就是说,你可以让一个 webserver 管理 websocket,将消息来回传送到 Kafka 主题,然后 Flink 可以对其进行操作。
既然你在谈论 AWS,我建议你了解他们的Websocket API Gateway service。我相信这些都可以通过 Kinesis 轻松连接,Flink can read from and write to easily。
【讨论】: