Apache Flink系列-⑤应用程序构建块

应用程序构建块

有状态函数为构建事件驱动的应用程序提供了一个框架。这里,我们将解释有状态函数体系结构的重要方面。

事件入口

有状态函数应用程序直接位于事件驱动的空间中,因此自然要从将事件引入系统开始。

在有状态函数中,将记录接收到系统中的组件称为事件入口。这可以是任何内容,从卡夫卡主题到消息队列,再到http请求——任何可以将数据输入系统并触发初始函数开始计算的内容。

有状态函数

图的核心是同名的有状态函数。

把这些当做你服务的基石。它们可以任意地相互传递消息,这是该框架摆脱传统的流处理世界观的一种方式。这些函数不需要建立静态数据流DAG,而是可以以任意的、可能是循环的、甚至是往返的方式相互通信。

如果您熟悉actor编程,那么它在组件之间动态传递消息的能力上确实有一些相似之处。然而,有一些显著的差异。

持续状态

首先,所有函数都有本地嵌入状态,称为持久状态。

在失败的情况下,将回滚整个世界状态(持久状态和消息),以模拟完全无故障的执行。

这些保证不需要数据库,相反,有状态函数利用了Apache Flink经验证的快照机制。

事件出口

最后,应用程序可以通过事件出口将数据输出到外部系统。

当然,函数可以执行任意计算,并且可以做任何他们喜欢的事情,包括进行RPC调用和连接到其他系统。通过使用事件出口,应用程序可以利用构建在Apache Flink连接器生态系统之上的预构建集成。

Original: https://www.cnblogs.com/suprising/p/16211940.html
Author: 正经人Lee
Title: Apache Flink系列-⑤应用程序构建块

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/570630/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 王者荣耀第一弹

    1 当前使用 AI 玩对抗性游戏的主要分两种:以星际为首的 RTS 游戏,和以 DOTA为 首的 MOBA 游戏。两种游戏侧重的学习难点不同:对于星际类的游戏来说,单个 unit …

    Java 2023年6月5日
    090
  • Kubernetes-Volume

    1. 简介 我们都知道 Container 中的文件在磁盘上是临时存放的,这给 Container 中运行的较重要的应用 程序带来一些问题。 是当容器崩溃时文件丢失。(kubele…

    Java 2023年6月7日
    092
  • 升级java11后,maven命令打包报错

    一、问题 升级java11后,maven命令打包报错: mvn clean package -Dmaven.test.skip=true [ERROR] Failed to exe…

    Java 2023年5月29日
    072
  • Spring boot 2.x 源码分析- SpringApplication 启动分析

    springboot 自动装配原理概述: 1.当启动Springboot应用程序时,会先创建 SpringApplication 对象。在对象的构造函数中会进行参数的初始化工作,最…

    Java 2023年6月5日
    086
  • spring 拦截器流程 HandlerInterceptor AsyncHandlerInterceptor HandlerInterceptorAdapter

    HandlerInterceptor源码 3种方法: preHandle:拦截于请求刚进入时,进行判断,需要boolean返回值,如果返回true将继续执行,如果返回false,将…

    Java 2023年6月5日
    0128
  • SpringBoot-druid

    SpringBoot-druid 9.1 druid简介 Java程序很大一部分要操作数据库,为了提高性能操作数据库,又不得不使用数据库连接池。 Druid 是阿里巴巴开源平台上一…

    Java 2023年6月5日
    068
  • 【Java学习】API接口数据规范

    在日常开发中,一个优雅的API,必须提供简单明了的响应值,然后根据状态码就可以大概知道问题的所在。这里主要整理一下HTTP状态码和自定义状态码。 1、HTTP状态码 当浏览者访问一…

    Java 2023年6月5日
    0100
  • Spring 源码(16)Spring Bean的创建过程(7)属性填充

    知识回顾 上一篇介绍了 Spring中三级缓存的 singletonObjects、 earlySingletonObjects、 singletonFactories, Spri…

    Java 2023年6月14日
    081
  • [spring]spring和mybatis的整合与事务处理

    1.导包 junit junit 4.13.1 mysql mysql-connector-java 8.0.29 org.mybatis mybatis 3.5.3 org.sp…

    Java 2023年6月6日
    097
  • 记一次慢查询优化sql

    分析sql,从哪几方面考虑进行优化 SELECT IFNULL(SUM(total.cityPayMoneySum),0) AS cityPayMoneySum,total.cit…

    Java 2023年6月7日
    096
  • 鸿蒙(HarmonyOS)开发笔记一:系统简介

    1. HarmonyOS是什么? 根据华为官方的说明,harmonyOS是分布式,提供新交互,新服务,万物互联的一款操作系统。下面简单介绍一下何为:新服务,新交互 基于harmon…

    Java 2023年6月16日
    0109
  • pwnkit漏洞分析-CVE-2021-4034

    研究了一下前段时间的Polkit提权漏洞,里面有很多以前不知道的技巧。漏洞很好用,通杀CENTOS、UBUNTU各版本。 主要是分析这个POC触发原理。POC如下: /* * Pr…

    Java 2023年6月5日
    071
  • explain的基本使用介绍

    在进行mysql操作的时候,主要是crud. 更主要的是进行查询的操作.在开发工作过程中往往会遇到慢查询,导致整个程序很慢.这个时候就需要开发人员进行慢查询的分析.这个过程比较漫长…

    Java 2023年6月6日
    081
  • RestTemplate–解决中文乱码

    【原文链接】:https://blog.tecchen.xyz ,博文同步发布到博客园。由于精力有限,对文章的更新可能不能及时同步,请点击上面的原文链接访问最新内容。欢迎访问我的个…

    Java 2023年6月6日
    075
  • 获取数组子序列

    /** * 位对应法 * * @param array */ public void place(int[] array) { //获取数据长度 那么对应的就是二进制字节位数1存在…

    Java 2023年6月5日
    056
  • JAVA基础学习第六天!

    精华笔记: 1.数组: -复制: -System.arraycopy(a,1,b,0,4); -int[] b = Arrays.copyOf(a,6); a = Arrays.c…

    Java 2023年6月13日
    060
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球