如何在Flink应用程序中连接和协同处理两个以上的流?



我如何决定在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种类型组合在一起。

相关内容

  • 没有找到相关文章

最新更新