基于Flink进行秒级计算时,发现监控图表中CPU有数据中断现象,通过一段时间的跟踪定位,该问题目前已得到有效解决,以下是解决思路:
 
一、问题现象
      以SQL02为例,发现本来10秒一个点的数据,有时会出现断点现象,会少1-2个点甚至更多:
 
二、问题定位
  针对该问题,根据数据处理链路,制定了数据输出跟踪示意图,如下所示:
 

    通过输出的实际数据发现:
   1.监控Agent的数据已经正确上报Kafka
   2.从Kafka中可以正确取到监控Agent上报的数据
   3.从计算完毕的Kafka中取不到丢失点的数据
   4.从InfluxDB中取不到丢失点的数据
 
   因此定位到数据是在Flink进行处理时丢失了,于是在Flink处理窗口中增加了输出,以确认一个窗口起止时间以及实际计算的数据都有哪些:
 

   以下是一个时间窗口中的数据,可以发现数据报数时,乱序现象比较严重:

三、问题解决
 
 如果我们以10秒为一个窗口,以一分钟为例,则Flink划分的计算时间窗口会如下所示:
 
[00:50,01:00)
[00:40,00:50)
[00:30,00:40)
[00:20,00:30)
[00:10,00:20)
[00:00,00:10)
 
 这里的窗口是一个前闭后开的时间段,也就是:[窗口开始时间,窗口结束时间)
 
 Flink基于Event Time+窗口+水位来解决乱序及延迟到达问题,当满足以下条件时,触发一个窗口里的数据进行计算:
 
a.水位时间>=窗口的结束时间
b.窗口中有需要计算的数据存在
 
当窗口已经触发计算,默认情况下,后续到达的数据将会被丢弃,所以当延迟及乱序很严重时,水位(延迟时间)越小,被丢弃的可能性越大
 
当初为了能快速计算,设置的窗口大小是10秒,水位(延迟时间)是0.5秒,从前面输出可以看到,数据乱序比较严重,加上传输延迟,设置的0.5秒时间太短,导致触发窗口计算时,一些数据会被丢弃,从而导致监控图表上出现断点情况。
 
在窗口大小固定的情况下,要解决该问题,有两个解决方案:
 
a.增加水位(延迟时间),先后调整到1秒、5秒、10秒(已经和窗口一样大!)
b.调整监控数据报数时间,对于监控插件类型的,固定首次报数时间是整分钟后2秒,保证每次报数,都落在同一个10秒内,且不会有太大乱序,也可以有效避免两次报数落在同一个10秒内
 
目前在只进行了解决方案a的情况下,已经有效解决了该问题,但仍会偶尔出现1个断点,实施方案b后,将从根本上解决该问题,同时可以进一步降低方案a的延迟时间,保证低延迟

基于Flink秒级计算时CPU监控图表数据中断问题的更多相关文章

  1. 《阿里如何实现秒级百万TPS?搜索离线大数据平台大数据平台架构解读》读后感

    在使用淘宝时发现搜索框很神奇,它可以将将我们想要的商品全部查询出来,但是我们并感觉不到数据库查询的过程,速度很快.通过阅读这篇文章让我知道了搜索框背后包含着很多技术,对我以后的学习可能很有借鉴. 平时 ...

  2. [开源]CSharpFlink(NET 5.0开发)分布式实时计算框架,PC机10万数据点秒级计算测试说明

    github地址:https://github.com/wxzz/CSharpFlinkgitee地址:https://gitee.com/wxzz/CSharpFlink  1         计算 ...

  3. 基于supervisor秒级Laravel定时任务

    背景介绍 公司需要实现X分钟内每隔Y秒轮训某个接口,Linux自带的crontab貌似只精确到分钟,虽然可以到精确到秒,但是并不满足需求. 选型 公司项目都是 基于 Laravel 框架,所以这个没得 ...

  4. js 小数计算时出现多余的数据

    根据资料显示:是由于十进制换算成二进制,处理后,再由二进制换算成十进制时,造成的误差. 得出:所以(0.1+0.2)!=0.3 而是=0.30000000000000004的结果 解决方法: 参考:h ...

  5. 腾讯新闻基于 Flink PipeLine 模式的实践

    摘要  :随着社会消费模式以及经济形态的发展变化,将催生新的商业模式.腾讯新闻作为一款集游戏.教育.电商等一体的新闻资讯平台.服务亿万用户,业务应用多.数据量大.加之业务增长.场景更加复杂,业务对实时 ...

  6. 基于 Flink 的实时数仓生产实践

    数据仓库的建设是“数据智能”必不可少的一环,也是大规模数据应用中必然面临的挑战.在智能商业中,数据的结果代表了用户反馈.获取数据的及时性尤为重要.快速获取数据反馈能够帮助公司更快地做出决策,更好地进行 ...

  7. 基于Kafka的实时计算引擎如何选择?Flink or Spark?

    1.前言 目前实时计算的业务场景越来越多,实时计算引擎技术及生态也越来越成熟.以Flink和Spark为首的实时计算引擎,成为实时计算场景的重点考虑对象.那么,今天就来聊一聊基于Kafka的实时计算引 ...

  8. 基于 HTML5 WebGL 的 CPU 监控系统

    前言 科技改变生活,科技的发展带来了生活方式的巨大改变.随着通信技术的不断演进,5G 技术应运而生,随时随地万物互联的时代已经来临.5G 技术不仅带来了更快的连接速度和前所未有的用户体验,也为制造业, ...

  9. (二)基于商品属性的相似商品推荐算法——Flink SQL实时计算实现商品的隐式评分

    系列随笔: (总览)基于商品属性的相似商品推荐算法 (一)基于商品属性的相似商品推荐算法--整体框架及处理流程 (二)基于商品属性的相似商品推荐算法--Flink SQL实时计算实现商品的隐式评分 ( ...

随机推荐

  1. jfinal使用配置文件注意事情

    使用Popkit @Override public void configConstant(Constants me) { me.setViewType(ViewType.JSP); PropKit. ...

  2. EL&&JSTL

    一.JSP技术 1.jsp脚本和注释 jsp脚本: 1)<%java代码%> ----- 内部的java代码翻译到service方法的内部 2)<%=java变量或表达式> - ...

  3. http服务详解(2)——httpd2.2的配置文件常见设置

    摘要:一个服务的配置文件非常重要,弄懂配置文件是熟练掌握服务的必要前提. 一.httpd-2.2常见文件介绍 (1)配置文件: 主配置文件尽量别改,改自己的子配置文件 /etc/httpd/conf/ ...

  4. Lustre文件系统测试——obdfilter-survey测试

    Lustre文件系统测试--obdfilter-survey测试 介绍 该测试主要是在lustre文件系统工作环境下进行,将直接在ost上生成工作负载模拟并行文件访问,可准确检测盘阵在lustre文件 ...

  5. 【JAVA零基础入门系列】Day9 Java中的那个大数值

    什么是大数值?用脚趾头想也知道,当然是"大"的数值(233).Java中有两个用于表示大数值的类,BigInteger和BigDecimal,那到底能表示多大的数值呢?理论上,可以 ...

  6. 基于FFMpeg的C#录屏全攻略

    最近负责一个录屏的小项目,需要录制Windows窗口内容并压缩保存到指定文件夹,本想使用已有的录屏软件,但是本着学习的态度去探索了FFMpeg,本文主要介绍基于FFMpeg开源项目的C#录屏软件开发. ...

  7. phalcon——访问控制列表ACL

    一个完整的使用实例(将acl封装成一个插件使用): use Phalcon\Acl; use Phalcon\Acl\Role; use Phalcon\Acl\Resource; use Phalc ...

  8. Linux命令用法

    1.cut http://www.cnblogs.com/dong008259/archive/2011/12/09/2282679.html 2.sed http://www.cnblogs.com ...

  9. LeetCode 55. Jump Game (跳跃游戏)

    Given an array of non-negative integers, you are initially positioned at the first index of the arra ...

  10. 汇总一些知名的 JavaScript 开发开源项目

    汇总一些知名的 JavaScript 开发开源项目   转自:CTOLib , www.ctolib.com/topics-107352.html ggraph - 图形可视化的凌乱数据 这是一个建立 ...