Springboot如何在运行时刷新属性配置

uedbet西甲赫塔菲官网

  早几年就已经接触过微服务的一些知识和用法,特别是对于分布式和实时配置等功能留下了比较深刻的印象,通过阅读源代码,知道和清楚了他们的一些实现逻辑和具体办法。对于Springboot而言,在没有引入Nacos或者cloud情况下,如果进行属性的实时刷新并更新到uedbet官网西甲赫bean中去,一直没有进行深入的探索和实践,今天有时间查了一些资料和文档,大致理清了思路,故进行一个整理和记录。

Flink的作业调度

调度

Flink 通过 Task Slots 来定义执行资源。每个 TaskManager 有一到多个 task slot,每个 task slot 可以运行一条由多个并行 task 组成的流水线。 这样一条流水线由多个连续的 task 组成,比如并行度为 n 的 MapFunction 和 并行度为 n 的 ReduceFunction。需要注意的是 Flink 经常并发执行连续的 task,不仅在流式作业中到处都是,在批量作业中也很常见。

Flink DataSource原理

Data Source 原理

核心组件

一个数据 source 包括三个核心组件:分片(Splits)分片枚举器(SplitEnumerator) 以及 源阅读器(SourceReader)

  • 分片(Split) 是对一部分 source 数据的包装,如一个文件或者日志分区。分片是 source 进行任务分配和数据并行读取的基本粒度。
  • 源阅读器(SourceReader) 会请求分片并进行处理,例如读取分片所表示的文件或日志分区。SourceReader 在 TaskManagers 上的 SourceOperators 并行运行,并产生并行的事件流/记录流。
  • 分片枚举器(SplitEnumerator) 会生成分片并将它们分配给 SourceReader。该组件在 JobManager 上以单并行度运行,负责对未分配的分片进行维护,并以均衡的方式将其分配给 reader。
  • Flink的窗口概念

    uedbet西甲赫塔菲官网

      窗口(Window)是处理无界流的关键所在。窗口可以将数据流装入大小有限的“桶”中,再对每个“桶”加以处理。 本文的重心将放在 Flink 如何进行窗口操作以及开发者如何尽可能地利用 Flink 所提供的功能。下面展示了 Flink 窗口在 keyed streams 和 non-keyed streams 上使用的基本结构。 我们可以看到,这两者唯一的区别仅在于:keyed streams 要调用 keyBy(...)后再调用 window(...) , 而 non-keyed streams 只用直接调用 windowAll(...)。留意这个区别,它能帮我们更好地理解后面的内容。

    typesafe之Config配置管理

    uedbet西甲赫塔菲官网

      Typesafe的Config库,可以用来管理系统的配置项,核心类Config可以将配置信息解析成uedbet官网西甲赫对象,通过相应的api可以获取配置项key对应的值,还是蛮方便的。

    Spring中Bean的销毁过程

    uedbet西甲赫塔菲官网

      当关闭spring的时候,上下文会根据创建bean时定义的流程和方法,对bean进行销毁,对此进行简单记录。

    正文

      spring在启动过程中会创建bean的uedbet官网西甲赫,在创建时,调用AbstractAutowireCapableBeanFactory类中doCreateBean方法来实际完成具体bean的登记,最终在destroyBean方法中根据登记信息来顺序完成销毁。

    Flink的常用算子

    uedbet西甲赫塔菲官网

    用户通过算子能将一个或多个 DataStream 转换成新的 DataStream,在应用程序中可以将多个数据转换算子合并成一个复杂的数据流拓扑。

    这部分内容将描述 Flink DataStream API 中基本的数据转换 API,数据转换后各种数据分区方式,以及算子的链接策略。

    Flink的DataStream API

    uedbet西甲赫塔菲官网

      Flink 中的 DataStream 程序是对数据流(例如过滤、更新状态、定义窗口、聚合)进行转换的常规程序。数据流的起始是从各种源(例如消息队列、套接字流、文件)创建的。结果通过 sink 返回,例如可以将数据写入文件或标准输出(例如命令行终端)。Flink 程序可以在各种上下文中运行,可以独立运行,也可以嵌入到其它程序中。任务执行可以运行在本地 JVM 中,也可以运行在多台机器的集群上。

    Flink的应用场景

    uedbet西甲赫塔菲官网

      Apache Flink 功能强大,支持开发和运行多种不同种类的应用程序。它的主要特性包括:批流一体化、精密的状态管理、事件时间支持以及精确一次的状态一致性保障等。Flink 不仅可以运行在包括 YARN、 Mesos、Kubernetes 在内的多种资源管理框架上,还支持在裸机集群上独立部署。在启用高可用选项的情况下,它不存在单点失效问题。事实证明,Flink 已经可以扩展到数千核心,其状态可以达到 TB 级别,且仍能保持高吞吐、低延迟的特性。世界各地有很多要求严苛的流处理应用都运行在 Flink 之上。