我正在使用flink 1.5.2解决CEP问题。
我的数据来自列表,系统运行时,其他一些过程会将新的Event对象添加到该列表中。它不是套接字或网络消息。我一直在阅读官方网站示例。这是我想我应该做的步骤。
但是我的输入流应该不受限制。我没有在DataStream <>对象中找到任何add()方法。我该如何完成?而且,是否需要告诉DataStream <>何时清除过时的事件?
答案 0 :(得分:1)
仅当使用预先固定的有界输入集(例如编写测试或只是进行实验)时,集合才适合用作Flink的输入源。如果您想要无限制的流,则需要选择其他来源,例如套接字或诸如Kafka之类的消息排队系统。
套接字很容易用于实验。在Linux和MacOS系统上,您可以使用
nc -lk 9999
创建一个Flink可以绑定到端口9999的套接字,并且您作为nc
(netcat)输入提供的任何内容都将一次流进Flink作业中。 Netcat也可用于Windows,但尚未预先安装。
但是,您不应该计划在生产环境中使用套接字,因为它们不能倒回(这对于在故障恢复期间使用Flink获得准确的结果至关重要)。