我如何决定在Flink应用程序中有多少处理?
这是我的代码结构。
<Project>
model
Events
projections
TestProcess1
TestProcess2
serializer
TestEventDeseriaIizer
TestEventSerializer
util
NameKeySelector
FlinkMain
如果我有三个通道,我怎么知道我应该使用多少个处理?我们是否允许在Flink应用程序中只使用两个处理?
这些技术可以用来克服Flink的协进程函数和协平面映射只能连接两个流的限制:
- 使用SQL连接。Table和SQL api中的连接使用一个特殊的操作符,可以连接任意多的流,而不仅仅是两个。(这个操作符不能从标准的数据流API中获得,因为它有一些怪癖,并且不容易使用。)
- 连接流级联-例如,连接a和B,然后连接C到结果
- 使用
union
合并流。这将要求被联合的流都具有相同的类型。如果有必要,你可以使用Either
混合两种不同类型的流(参见文档),或者实现你自己的变体,可以将3种类型组合在一起。