应用程序构建块 有状态函数为构建事件驱动的应用程序提供了一个框架。这里,我们将解释有状态函数体系结构的重要方面。 事件入口 有状态函数应用程序直接位于事件驱动的空间中
有状态函数为构建事件驱动的应用程序提供了一个框架。这里,我们将解释有状态函数体系结构的重要方面。
事件入口有状态函数应用程序直接位于事件驱动的空间中,因此自然要从将事件引入系统开始。
在有状态函数中,将记录接收到系统中的组件称为事件入口。这可以是任何内容,从卡夫卡主题到消息队列,再到http请求——任何可以将数据输入系统并触发初始函数开始计算的内容。
有状态函数图的核心是同名的有状态函数。
把这些当做你服务的基石。它们可以任意地相互传递消息,这是该框架摆脱传统的流处理世界观的一种方式。这些函数不需要建立静态数据流DAG,而是可以以任意的、可能是循环的、甚至是往返的方式相互通信。
如果您熟悉actor编程,那么它在组件之间动态传递消息的能力上确实有一些相似之处。然而,有一些显著的差异。
持续状态首先,所有函数都有本地嵌入状态,称为持久状态。
在失败的情况下,将回滚整个世界状态(持久状态和消息),以模拟完全无故障的执行。
这些保证不需要数据库,相反,有状态函数利用了Apache Flink经验证的快照机制。
事件出口最后,应用程序可以通过事件出口将数据输出到外部系统。
当然,函数可以执行任意计算,并且可以做任何他们喜欢的事情,包括进行RPC调用和连接到其他系统。通过使用事件出口,应用程序可以利用构建在Apache Flink连接器生态系统之上的预构建集成。