Flink系列文档-(YY11)-watermark工作机制

news2024/12/30 3:27:37

1 WaterMark生成工作机制

 观察源码

/**
 * A WatermarkGenerator for situations where records are out of order, but you can place an upper
 * bound on how far the events are out of order. An out-of-order bound B means that once an event
 * with timestamp T was encountered, no events older than {@code T - B} will follow any more.
 *
 * <p>The watermarks are generated periodically. The delay introduced by this watermark strategy is
 * the periodic interval length, plus the out-of-orderness bound.
 */
@Public
public class BoundedOutOfOrdernessWatermarks<T> implements WatermarkGenerator<T> {

    /** The maximum timestamp encountered so far. */
    private long maxTimestamp;

    /** The maximum out-of-orderness that this watermark generator assumes. */
    private final long outOfOrdernessMillis;

    /**
     * Creates a new watermark generator with the given out-of-orderness bound.
     *
     * @param maxOutOfOrderness The bound for the out-of-orderness of the event timestamps.
     */
    public BoundedOutOfOrdernessWatermarks(Duration maxOutOfOrderness) {
        checkNotNull(maxOutOfOrderness, "maxOutOfOrderness");
        checkArgument(!maxOutOfOrderness.isNegative(), "maxOutOfOrderness cannot be negative");

        this.outOfOrdernessMillis = maxOutOfOrderness.toMillis();

        // start so that our lowest watermark would be Long.MIN_VALUE.
        this.maxTimestamp = Long.MIN_VALUE + outOfOrdernessMillis + 1;
    }

    // ------------------------------------------------------------------------

    @Override
    public void onEvent(T event, long eventTimestamp, WatermarkOutput output) {
        maxTimestamp = Math.max(maxTimestamp, eventTimestamp);
    }

    @Override
    public void onPeriodicEmit(WatermarkOutput output) {
        output.emitWatermark(new Watermark(maxTimestamp - outOfOrdernessMillis - 1));
    }
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/54467.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]Python计算机毕业设计SSM酒店管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

alertmanager 基于webhook-adapter插件实现企业微信机器人提醒服务

前言 Alertmanager处理客户端应用程序&#xff08;例如 Prometheus 服务器&#xff09;发送的警报。它负责删除重复数据、分组并将它们路由到正确的接收器集成&#xff0c;例如电子邮件、PagerDuty 或 OpsGenie。它还负责警报的静音和抑制。 前提要求 安装docker&#xff0c;…

分布式搜索引擎 ElasticSearch(ES)

一、初识elasticsearch 1.了解ES 1&#xff09;elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎&#xff0c;具备非常多强大功能&#xff0c;可以帮助我们从海量数据中快速找到需要的内容。elasticsearch结合kibana、Logstash、Beats&#xff0c;也就是elast…

基于SSH的周报管理系统

来公司的第一个实习项目&#xff0c;前端使用的是Freemark,刚开始上手比较复杂&#xff0c;慢慢摸索也算是圆满完成了&#xff0c;加油&#xff01;

LockSupport与线程中断

LockSupport与线程中断 线程中断机制 voidinterrupt()中断此线程static booleaninterrupted()获取当前线程中断标志位 true|falsebooleanisInterrupted()获取当前线程中断标志位true|false static boolean interrupted&#xff08;&#xff09;和boolean isInterrupted&#x…

【unity】安卓环境配置(踩坑整理)

一、基础环境配置 1、模块安装 可能报错&#xff1a;Currently selected scripting backend (IL2CPP) is notinstalled. 解决&#xff1a;部分项目依赖于IL2CPP&#xff0c;及WebGL组件&#xff0c;因此也需要勾上。 2、打开偏好设置 3、设置需要的VS版本 可能报错&#xf…

Linux动态库与静态库

Linux动态库与静态库 文章目录Linux动态库与静态库1.库的概念、种类与使用2.链接简述2.1 链接过程理解2.2 静态链接与动态链接概念2.3 静态链接与动态链接的例子3.动态库与静态库的生成方法3.1 静态库的生成3.2 静态库的打包3.2 静态库的使用3.3 动态库的生成3.4 动态库的打包3…

[附源码]JAVA毕业设计基于web的面向公众的食品安全知识系统(系统+LW)

[附源码]JAVA毕业设计基于web的面向公众的食品安全知识系统&#xff08;系统LW&#xff09; 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&…

设备发现:通向全面网络可见性的途径

想实现企业网络安全防护&#xff0c;它首先需要完全了解其网络中发生的所有事件。有了这种可见性&#xff0c;企业网络安全管理员可以分析用户在网络环境中进行了哪些危险的操作&#xff0c;并采取必要的应对措施来主动保护企业网络免受攻击。 日志取证 但是&#xff0c;如果攻…

Java 每日一练 (7)

Java每日一练(7) 单选 1. JAVA属于&#xff08; &#xff09;。   A 操作系统 B 办公软件 C 数据库系统 D 计算机语言 答案 &#xff1a; java 是属于一门语言&#xff0c;是 计算可以识别的语言&#xff0c; 所以 答案 D 2. 类声明中&#xff0c;声明抽象类的关键字是 ( …

9.HTTP协议

通信有三要素&#xff0c;分别是通信的主体(通信的双方是谁)&#xff0c;通信的内容&#xff0c;通信的方式(打电话&#xff0c;写信这种)| 通信协议是通信双方完成通信所必须遵守的规则和约定 网页内容叫做超文本(HyperText)&#xff0c;网页内容的传输协议叫做超文本传输协…

JDSU故障测试仪维修OTDR光时域反射仪维修MTS2000

应用范围&#xff1a;邮电通信工程与维护&#xff0c;有线电视工程与维护&#xff0c;光缆制造商&#xff0c;光纤综合布线系统。 功能特点&#xff1a; 结构紧凑&#xff0c;重量轻&#xff0c;高度集成 已经可以支持40多个应用模块 有IL/ORL、OTDR、PMD、CD 或WDM 插拔模…

忆享科技聚焦|数字经济、网络安全、5.5G、数字火炬手……热点资讯一览

“忆享聚焦”栏目第十期来啦&#xff01;本栏目汇集近期互联网最新资讯&#xff0c;聚焦前沿科技&#xff0c;关注行业发展动态&#xff0c;筛选高质量讯息&#xff0c;拓宽用户视野&#xff0c;让您以最低的时间成本获取最有价值的行业资讯。 目录 行业资讯 1. 工信部&#xf…

十三、Vue CLI(1)

本章概要 简介安装创建项目 vue create使用图形界面 在开发大型单页面应用时&#xff0c;需要考虑项目的组织结构、项目构建、部署、热加载、代码单元测试等多方面与核心业务逻辑无关的事情&#xff0c;对于项目中用到的构建工具、代码检查工具等还需要一遍一遍地重复配置。…

大数据技术——结合Flume官方理解常用组件

Flume的常用组件包括Event和Agent。Agent又包含了Source、Channel以及Sink&#xff0c;本片文章将从官方说明文档入手&#xff0c;详细描述各组件以及组件的属性和功能。 文章目录1 常用的Source类型描述1.1 Netcat Source1.2 Exec Source1.3 Spooling Directory Source1.4 Tai…

【SQL】redo log | undo log

【SQL】日志redo日志和undo日志REDO LOGredo的整体流程UNDO LOG小结redo日志和undo日志 REDO LOG 称为重做日志&#xff0c;提供再写入操作&#xff0c;恢复提交事务修改的页操作&#xff0c;用来保证事务的持久性。 事务提交后&#xff0c;刚写完缓冲池&#xff0c;数据库宕…

Linux 必知必会

一、Linux 简介 Linux 与 Windows 和 Mac OS 等系统一样&#xff0c;它也是一个操作系统&#xff0c;并且是一个开源的类 unix 操作系统。凭借着其免费、安全、高稳定性等特点&#xff0c;被广泛应用于服务器、嵌入式开发等领域&#xff0c;并且在服务器领域一枝独秀&#xff0…

docker-compose Install Prometheus

前言 Prometheus是一个开源的系统监控和报警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上…

蒙代尔-弗莱明模型

蒙代尔-弗莱明模型 – 潘登的宏观经济学笔记 文章目录蒙代尔-弗莱明模型 -- 潘登的宏观经济学笔记IS-LM-BP蒙代尔-弗莱明模型资本完全流动固定汇率制度浮动汇率制资本完全不流动固定汇率制浮动汇率制资本不完全流动(KA主导&#xff0c;BP斜率小)固定汇率制浮动汇率制资本不完全…

代码随想录刷题|买卖股票问题的总结

目录 总结 121.买卖股票的最佳时机 问题描述 特点分析 动态规划思路 122.买卖股票的最佳时机Ⅱ 问题描述 特点分析 动态规划思路 123.买卖股票的最佳时机III 问题描述 特点分析 动态规划思路 188.买卖股票的最佳时机IV 问题描述 特点分析 动态规划思路 309.最…