关于Flink的旁路缓存与异步操作

这篇具有很好参考价值的文章主要介绍了关于Flink的旁路缓存与异步操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 旁路缓存

1. 什么是旁路缓存?

将数据库中的数据,比较经常访问的数据,保存起来,以减少和硬盘数据库的交互
比如: 我们使用mysql时 经常查询一个表 , 而这个表又一般不会变化,就可以放在内存中,查找时直接对内存进行查找,而不需要再和mysql交互

2. 旁路缓存例子使用

dim层使用的是hbase存储,因为dim层可能会出现大表,出现数据量过大,所以存储到磁盘合适,使用hbase
而dwd的连接, dwd是从kafka读取ods的数据,并且存入kafka.
因为dwd表是由ods表与dim表关联,所以需要经常和dim互动,互动的话,需要经常传输数据,而从磁盘到内存,显然比不过直接从内存中读取来的快,所以这里使用redis进行操作.
旁路缓存的步骤:

  1. 从缓存中查找数据 ,查找到 ,缓存命中, 结束, 查找不到,继续2
  2. 从dim(或者说磁盘数据库)中查找数据,

但是要注意,如果磁盘数据库中的数据发生变化,就需要将缓存的数据直接清除掉,
关于Flink的旁路缓存与异步操作,flink,缓存,大数据

同时,也要给缓存设置保存时间,不然保存过多就没有意义了

2.异步操作(异步IO)

https://nightlies.apache.org/flink/flink-docs-release-1.18/zh/docs/dev/datastream/operators/asyncio/

1. 同步与异步

同步就是,第二个任务必须等待第一个任务做完,也就是说,流水线
异步 两个任务同时做,不互相牵扯
例子: 饭店点餐:
同步: 只有一个服务员,点餐由服务员来登记,每个餐桌必须按顺序等服务员来记录
异步: 扫码点餐,互相不影响.

2.异步的实现

Flink官方为我们提供了JAVA方法RichAsyncFunction,主要方法是invoke,
关于Flink的旁路缓存与异步操作,flink,缓存,大数据
这里学习了一个博主的思路
https://blog.csdn.net/w306026355/article/details/109707269

1.CompletableFuture

1. 创建异步编排对象
  1. 有返回值
public static <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier);
public static <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier, Executor executor);

2.无返回值

public static CompletableFuture<Void> runAsync(Runnable runnable);
public static CompletableFuture<Void> runAsync(Runnable runnable, Executor executor);

2.后续的串行方法

then 表示是异步的串行方法,
run 表示 无参
accept 有参
apply 有参 有返回值
而async表示这个方法执行的任务最终还是异步文章来源地址https://www.toymoban.com/news/detail-789487.html

// 使线程串行执行,无入参,无返回值
public CompletableFuture<Void> thenRun(Runnable action);
public CompletableFuture<Void> thenRunAsync(Runnable action);
public CompletableFuture<Void> thenRunAsync(Runnable action, Executor executor);

// 使线程串行执行,有入参,无返回值
public CompletableFuture<Void> thenAccept(Consumer<? super T> action);
public CompletableFuture<Void> thenAcceptAsync(Consumer<? super T> action);
public CompletableFuture<Void> thenAcceptAsync(Consumer<? super T> action, Executor executor);

// 使线程串行执行,有入参,有返回值
public <U> CompletableFuture<U> thenApply(Function<? super T,? extends U> fn);
public <U> CompletableFuture<U> thenApplyAsync(Function<? super T,? extends U> fn);
public <U> CompletableFuture<U> thenApplyAsync(Function<? super T,? extends U> fn, Executor executor);

到了这里,关于关于Flink的旁路缓存与异步操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Flink流数据接口与操作

    Flink是一个流处理框架,用于处理大规模的实时数据流。它提供了一种新的、高效的流处理模型,可以处理大量的数据,并在实时处理数据的同时,保持低延迟和高吞吐量。Flink流数据接口与操作是流处理的核心部分,它提供了一种高效的方式来处理和操作流数据。 在本文中

    2024年02月22日
    浏览(37)
  • Flink异步IO

    本文讲解 Flink 用于访问外部数据存储的异步 I/O API。对于不熟悉异步或者事件驱动编程的用户,建议先储备一些关于 Future 和事件驱动编程的知识。 本文代码gitee地址: https://gitee.com/ddxygq/BigDataTechnical/blob/main/Flink/src/main/java/operator/AsyncIODemo.java 在与外部系统交互(用数据库中

    2024年02月02日
    浏览(42)
  • flink重温笔记(二):Flink 流批一体 API 开发——Source 数据源操作

    前言:今天是第二天啦!开始学习 Flink 流批一体化开发知识点,重点学习了各类数据源的导入操作,我发现学习编程需要分类记忆,一次一次地猜想 api 作用,然后通过敲代码印证自己的想法,以此理解知识点,加深对api的理解和应用。 Tips:我觉得学习 Flink 还是挺有意思的

    2024年02月19日
    浏览(42)
  • Flink异步IO初步了解

            之前使用Flink查询Redis数据的过程中,由于对数据一致性的要求并不是很高,当时是用MapFunction +  State 的方案。先缓存一大堆数据到State中,达到一定数量之后,将批量Key提交到Redis中进行查询。         由于Redis性能极高,所以并没有出现什么问题,后来了解到了

    2024年02月03日
    浏览(45)
  • Flink异步io关联Hbase

    2024年03月16日
    浏览(41)
  • Apache Hudi初探(三)(与flink的结合)--flink写hudi的操作(真正的写数据)

    在之前的文章中Apache Hudi初探(二)(与flink的结合)–flink写hudi的操作(JobManager端的提交操作) 有说到写hudi数据会涉及到 写hudi真实数据 以及 写hudi元数据 ,这篇文章来说一下具体的实现 这里的操作就是在 HoodieFlinkWriteClient.upsert 方法: initTable 初始化HoodieFlinkTable preWrite 在这里几乎没

    2024年02月10日
    浏览(37)
  • 怎么理解flink的异步检查点机制

    flink的checkpoint监控页面那里有两个指标Sync Duration 和Async Duration,一个是开始进行同步checkpoint所需的时间,一个是异步checkpoint过程所需的时间,你是否也有过疑惑,是否只是同步过程中的时间才会阻塞正常的数据处理,而异步checkpoint的时间不会影响正常的数据处理流程? 这

    2024年02月09日
    浏览(62)
  • 一、Flink使用异步算子+线程池查询MySQL

    目录 Flink异步算子使用介绍 使用Flink异步算子+多线程异步查询MySQL 相关阅读 1 Flink使用异步算子请求高德地图获取位置信息 1、概述 1)Flink异步算子使用介绍 1.异步与同步概述 同步:向数据库发送一个请求然后一直等待,直到收到响应。在许多情况下,等待占据了函数运行的

    2024年02月14日
    浏览(43)
  • flink执行环境和读取kafka以及自定义数据源操作

    目录 创建执行环境 1. getExecutionEnvironment 2. createLocalEnvironment 3. createRemoteEnvironment  执行模式(Execution Mode) 1. BATCH 模式的配置方法 2. 什么时候选择 BATCH 模式 触发程序执行 数据源操作 读取kafka数据源操作  自定义Source           编 写 Flink 程 序 的 第 一 步 , 就 是 创 建 执

    2023年04月10日
    浏览(41)
  • 【Flink-Kafka-To-Mongo】使用 Flink 实现 Kafka 数据写入 Mongo(根据对应操作类型进行增、删、改操作,写入时对时间类型字段进行单独处理)

    需求描述: 1、数据从 Kafka 写入 Mongo。 2、相关配置存放于 Mysql 中,通过 Mysql 进行动态读取。 3、此案例中的 Kafka 是进行了 Kerberos 安全认证的,如果不需要自行修改。 4、Kafka 数据为 Json 格式,获取到的数据根据操作类型字段进行增删改操作。 5、读取时使用自定义 Source,写

    2024年02月22日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包