幼儿饰品瑜伽美体用品微软
投稿投诉
微软创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品

微服务治理在接口服务监控预警和心跳检测中引入Flink思考

  今天重点是谈下开源流处理框架Flink的使用场景,而实际的问题背景则是在SOA和微服务治理中,基于原有的服务监控预计,服务心跳检测等场景驱动,有引入该框架的必要性。从接口服务监控预警问题谈起
  在前面谈服务治理和监控预警的文章中谈到过,接口服务的监控预警主要是根据服务运行次数,时长,异常和失败数量等进行阈值的设置,当超过这个阈值则进行预警。
  在整个规则配置里面有一个关键内容,即时间窗口。
  也就是说我们需要分析的是单位时间内的服务运行次数,平均运行时长,错误次数等。这个单位时间本身又可以灵活设置,可以是30秒,也可以是1分钟,5分钟。
  在我们原来的实现方式中,我们是如何做呢?
  即首先是将服务运行实例数据写入到数据库进行持久化存储,然后再单独开一个定时处理任务,对新增的实例数据进行统计计算,进行出Groupby后的统计数据值。再形成一个中间统计结果表。由于这种方式很难做到实时,只能够是偏批处理的方式,因此但是时间间隔一般只能够做到1分钟进行批处理一次。
  简单来说整个处理过程是:实时流数据》持久化入库》单独Job统计计算》得出规则结果。这个一方面是导致较大的时延,一方面是引起更大的内存消耗。
  而我们希望的方式是什么呢?
  即在获取到服务实例运行数据后,实例数据的入库和规则的计算两者是并行进行的,即一方面不影响服务实例入库,一方面又能够拿到实例数据流后,实时基于时间窗口或周期进行计算,得出最终的统计结果并触发告警预警规则。
  也就是实例日志在入库前,我们已经基于流处理的方式在内存中完成了该有的统计分析和计算过程,而不是等实例持久化后再查询出来数据进行统计分析。
  这个实际在类似早期的Storm大数据流处理框架中本身就能够完成类似的事情。但是这个场景有一个关键点就是流处理时间周期,这个就有点类似于流处理批处理的结合方式。
  如果时间周期是到秒足够小,本身就变成了完全的流处理方式,最小时延下完成实时统计处理。但是如果时间周期较长,比如5分钟,10分钟,我们又希望是偏批处理方式,以获取更大的吞吐量。
  而Flink本身更好地兼容了这两种模式。ApacheFlink流处理框架概述
  ApacheFlink是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。
  任何类型所有数据都可以形成一种事件流。信用卡交易、传感器测量、机器日志、网站或移动应用程序上的用户交互记录,所有这些数据都形成一种流。
  数据可以被作为无界或者有界流来处理。
  无界流有定义流的开始,但没有定义流的结束。它们会无休止地产生数据。无界流的数据必须持续处理,即数据被摄取后需要立刻处理。我们不能等到所有数据都到达再处理,因为输入是无限的,在任何时候输入都不会完成。处理无界数据通常要求以特定顺序摄取事件,例如事件发生的顺序,以便能够推断结果的完整性。
  有界流有定义流的开始,也有定义流的结束。有界流可以在摄取所有数据后再进行计算。由于界流所有数据可以被排序,所以并不需要有序摄取。
  这里的有界流正是前面谈到的批处理方式,当每个批的量或时间间隔足够小的时候本身就完全变成了流处理模式。ApacheFlink擅长处理无界和有界数据集精确的时间控制和状态化使得Flink的运行时(runtime)能够运行任何处理无界流的应用。有界流则由一些专为固定大小的数据集特殊设计的算法和数据结构进行内部处理,产生了出色的性能。
  对于Flink简单总结就是:ApacheFlink是一个开源的分布式、高性能、高可用的流处理框架。主要有Java代码实现,支持scala和javaAPI。支持实时流(stream)处理和批(batch)处理,批数据只是流数据的一个极限特例。Flink原生支持了迭代计算、内存管理和程序优化。
  ApacheFlink架构
  从上图可以看到整个Flink架构仍然是分为三层,最底层是物理部署和存储层,中间是核心层重点是处理运行时的分布式流数据处理,最上面是API接口层。对于API接口本身又分为了数据流处理接口和数据集批处理API接口。
  Runtime核心层
  对于Runtime核心层如上图,可以看到其包括了资源管理,分布式任务调度和处理,状态管理,持久化存储等内容。实际里面的核心仍然是分布式任务处理和调度逻辑,这个本身是基于事件处理架构模式的,可以灵活进行作业的编排,组装和组合。
  其次就是State状态管理,可以实现关键状态的管理,中间计算结果的缓存等。
  APILibraries层
  Flink提供了支持流式计算和批计算的接口,通过在此基础之上抽象出不同应用类型的组件库,比如:基于流式处理的CEP(复杂事件处理)、SQLTable库、基于批处理的FlinkML、Gelly(图处理库)等,API层包括DataStreamAPI和批计算的DataSetAPI,两者都提供给用户丰富的数据处理高级API,比如Map、FlatMap、KeyBy等,用户也可以通过ProcessFunctionAPI直接操作状态和时间的底层数据。
  具体工作机制和原理大家可以参考下这篇文章:
  https:www。cnblogs。comwh984763176p13680907。htmlFlink应用场景分析
  ApacheFlink功能强大,支持开发和运行多种不同种类的应用程序。它的主要特性包括:批流一体化、精密的状态管理、事件时间支持以及精确一次的状态一致性保障等。Flink不仅可以运行在包括YARN、Mesos、Kubernetes在内的多种资源管理框架上,还支持在裸机集群上独立部署。在启用高可用选项的情况下,也不存在单点失效的问题。
  对于Flink的应用场景,官方网站给出了主要包括三类场景。EventdrivenApplications(事件驱动)、DataAnalyticsApplications(数据分析)、DataPipelineApplications(管道式ETL)。下面进行初步分析如下:
  事件驱动型应用
  事件驱动型应用是一类具有状态的应用,它从一个或多个事件流提取数据,并根据到来的事件触发计算、状态更新或其他外部动作。事件驱动型应用是在计算存储分离的传统应用基础上进化而来。在传统架构中,应用需要读写远程事务型数据库。
  相反,事件驱动型应用是基于状态化流处理来完成。在该设计中数据和计算不会分离,应用只需访问本地(内存或磁盘)即可获取数据。
  在前面我已经谈到接口服务监控预警就是一个典型的例子。
  其中每一次接口服务运行实例本身就是一个消息事件,传统的处理方式都是事件消息先持久化进入到数据库,然后再单独起一个Job进行逻辑规则计算,得出最终的计算结果。也就是常说的数据和计算两者是分离开的。
  而更好的方式是在获取到事件流信息后,能够基于制定的规则实时的进行计算,得到你希望的中间结果信息,再进行事件消息的持久化入库处理。这两件事情在一个流处理管道中可以同时完成,计算和数据存储不分离。
  简单来讲这种场景可以归结为:消息事件不断地产生,需要根据批量规则或时间窗口规则进行实时的逻辑处理和计算,同时在计算完成后又需要对消息事件进行持久化存储。
  事件驱动的核心仍然是将采集到的数据,或消息事件先写入到消息中间件或消息队列,然后Flink再发起对消息队列中数据的消费,并进行内存实时统计计算,最终得出最终的结果。当然整个处理过程又足够灵活,比如可以将流处理规则分解为多个不同的任务或Job,并进行灵活的组合和编排。
  典型的事件驱动类应用,包括欺诈检测(Frauddetection)、异常检测(Anomalydetection)、基于规则的告警(Rulebasedalerting)、业务流程监控(Businessprocessmonitoring)、Web应用程序(社交网络)等。
  而前面谈到的服务告警预警,心跳监控可以看到都适合该类场景。
  数据分析类应用
  数据分析任务需要从原始数据中提取有价值的信息和指标。传统的分析方式通常是利用批查询,或将事件记录下来并基于此有限数据集构建应用来完成。为了得到最新数据的分析结果,必须先将它们加入分析数据集并重新执行查询或运行应用,随后将结果写入存储系统或生成报告。
  借助一些先进的流处理引擎,还可以实时地进行数据分析。和传统模式下读取有限数据集不同,流式查询或应用会接入实时事件流,并随着事件消费持续产生和更新结果。这些结果数据可能会写入外部数据库系统或以内部状态的形式维护。仪表展示应用可以相应地从外部数据库读取数据或直接查询应用的内部状态。
  如下图所示,ApacheFlink同时支持流式及批量分析应用。
  还是拿SOA服务治理中的服务运行统计分析来举例。
  在我们常规的服务运行统计分析中,往往是以5分钟为时间间隔,可以看到最近一个5分钟时间窗口实际的服务运行次数,时长,错误数等关键的统计指标数据。
  以5分钟为单位的主要原因仍然是服务实例日志数据需要先写入到数据库持久存储,然后再有一个定时任务对服务实例数据进行统计计算,将统计结果数据写入到中间表。也就是服务运行统计实际查看的是中间表的统计结果数据。
  在这种情况下数据和计算也是分离的,也无法做大实时或准实时的统计结果计算。
  比如我们想做一个监控大屏,想实时看到最终的服务运行总量,错误量数据,那么这个时候只能够做到按分钟级这种定时的刷新效果,而很难做到实时的数据动态变化。要做到实时或低延迟的数据分析。就需要在采集到数据后实时计算,并将计算结果推送到前端显示。
  对于类似热榜展示,实时在线交易额统计展示,监控大屏实时统计量刷新等都属于数据分析类场景。都可以采用Flink流处理方式来进行以减少数据的延迟。
  数据管理类应用
  提取转换加载(ETL)是一种在存储系统之间进行数据转换和迁移的常用方法。ETL作业通常会周期性地触发,将数据从事务型数据库拷贝到分析型数据库或数据仓库。
  数据管道和ETL作业的用途相似,都可以转换、丰富数据,并将其从某个存储系统移动到另一个系统。但数据管道是以持续流通模式运行,而非周期性触发。因此它支持从一个不断生成数据的源头读取记录,并将它们以低延迟移动到终点。
  例如:数据管道可以用来监控文件系统目录中的新文件,并将其数据写入事件日志;另一个应用可能会将事件流物化到数据库或增量构建和优化查询索引。
  下图描述了周期性ETL作业和持续数据管道的差异。
  可以看到,对于采集到的数据加工,转换,清洗处理等都可以编排到实时数据处理管道中。即当获取到数据后,在内存中就对数据进行处理,最终将处理结果进行持久化即可。
  数据管道本身不仅仅需要支持传统的ETL数据库SQL接口的集成和适配,同时也需要支持类似文件采集,HDFS库采集,消息中间件数据采集等多种大数据采集和适配模式。
  对于ETL数据集成,当前为了简化过程和提升效率更多都采用的ELT模式,即先采集数据完成到目标端的装载处理,然后在目标端数据库进行相关的数据清洗,裁剪,整合统计操作。那么在这种场景下就存在一个关键问题,即:
  我们采集的一个大批量数据,但是最终我们仅仅需要少部分需要的数据进行持久化入库,如果按照ELT的思路那么就带来明显的延迟,计算,存储能力消耗等。
  比如采集大量的日志文件数据,但是仅仅需要解析出里面的异常数据进行入库,或者说大量的实例调用信息,只需要将统计结果数据入库等。那么采用这种数据流处理方式即是最佳的一种方式。

撒贝宁又飘了!节目中分享生活趣事,公开调侃妻子的说话方式尼格买提用胶带给撒贝宁封口导读:节目中被胶带封住嘴巴的撒贝宁,又开始作了,吐槽妻子太粗暴继北大还行之后,被贴上凡尔赛boy标签的撒贝宁,又飘了。近日,在综艺节目《你……随礼千张一元纸币称是给兄弟婚后的私房钱3月15日山东济南的一个婚礼上发生了一件趣事,事件的起因就是,许先生参加了一位朋友的婚礼,在参加的婚礼的时候,按照礼俗,许先生是要给新人礼钱,来表示祝贺新人新婚姻,但是没有想到……长津湖里的易烊千玺时间真的很能证明一切的,易烊千玺,最初知道他只是一个唱歌的组合,基本上没记住,听说组团,然后解散,最后人人单飞了。电影《送你一朵小红花》,我是无意中看到的,一个抗癌的故事……宠物医院治愈你的,不止是天使,还有它们最近b站出了一个宠物版《人世间》的节目《宠物医院》,相信赚足不少人的眼泪。本来以为它是一部纪录片,结果没想到是一档真人秀节目,通过记录宠物医院的日常,以及宠物,主人与医生……美国男篮8790不敌尼日利亚,今年美国男篮阵容存在哪些问题?问题分析一hr美国男篮缺少一位真正意义上攻防一体的球员几年前,美国后卫线上有基德,保罗,库里等擅长于组织和得分的控卫,并且在防守端也能在一定程度上限制与自己对位的对……吴亦凡为灾区捐款2000万却不被领情?网友的评论一针见血近日,可以说吴亦凡事件频频刷爆朋友圈,更是占据了各大新闻平台的头版头条,随着爆料人和媒体的频频发声,这次事件也是愈演愈烈,先不说吴亦凡的公关团队能否克服这个难关,但从目前的情况……讲真,安又琪当年的长相,能去拍偶像剧了吧?《乘风破浪的姐姐2》(以下称浪姐2)还没有播出就有各路八卦出来看了这个名单,我的回忆涌上心头尤其是看到了安又琪这个名字,爷青回了要知道,安又琪是第一届快乐女声……我们都是没伞的孩子,但我们在雨中奔跑的样子最美!星期天想约发小,有10天左右没见面了,非常想念,我们在农村的一个小学教学的时候曾同床共枕过。但发小却说她头疼欲裂,正在输液,第二天打电话再询问时,说要办住院检查一下,不然……从男生角度看,真正的人类高质量男性该是什么样?1、谈吐礼貌,内容得当前一阵子网络上很火的高质量男性,虽然视频内容有些滑稽,但的确很多网友被他圈粉。圈粉的主要原因,恰恰来自于他礼貌优雅的谈吐,整洁干净的着装,和真……陈情令金光瑶一个大奸大恶之人,为什么却让人心疼?在《陈情令》中,金光瑶设计陷害魏无羡,导致含光君问灵十三载,杀死结拜大哥聂明玦,让他五马分尸。不仅如此,他还弑父杀兄,甚至连自己的妻儿也不放过,可谓是凶残至极。说他恶吗?……有翡殷沛被那么多人真心对待,为何还会黑化?只因这三点殷沛是《有翡》中最让人矛盾的人,他亦正亦邪、可怜又可恨。当然这与他成长的环境息息相关。不过殷沛这一生遇到真心对待他的人,还是很多的。比如纪云沉,虽然当初为了与殷闻岚比武,……一集灭一国,前期拖沓后期快进,78集的大秦赋讲了个啥《大秦赋》的故事梗概是这样写的:该剧讲述了秦王嬴政在吕不韦、李斯、王翦、蒙恬等人的辅佐下平灭六国、一统天下,建立起中国历史上第一个大一统的中央集权国家的故事,所以平定六国、一统……
任达华路边摊吃饭,陈奕迅赤膊上街,香港明星在港为何没架子?近日,65岁的中国香港演员任达华在香港街头路边摊和朋友一起吃饭的一段视频在网上流传。视频中的他穿着衬衫打着领带,在路边摊上正和两个朋友吃饭聊天,旁边的群众就像看着路人甲一样视若……我家那小子2钱枫约饭袁姗姗疑似官宣恋情在湖南卫视《我家那小子》第二季节目中,事业、家庭、恋爱是围绕着嘉宾独居生活的三大主要话题,小子们的经历感悟总能引发观众的共鸣。昨晚播出的第五期节目里,袁姗姗惊喜现身观察室,令钱……鲁智深擒拿方腊后,两句话戳穿宋江,听懂此话的梁山六人得以善终遇林而起,遇山而富,遇水而兴,遇江而止。这十六个字就是当日智真长老在临别之时,赠予鲁智深的。鲁智深当时并没有意识到什么,一介武夫的鲁智深,当然也并不明白这十六个字的含义,……该隐作为亚当和夏娃的长子,仇恨上帝怒杀兄弟,是怎样的一个形象很多国人恐怕脑海当中都没有亚当和夏娃的概念,至于亚当夏娃二人的第一个儿子,也就是这里所提到的该隐,恐怕就更没有丝毫印象了。在西方人眼中,恐怕没有一个人不知道亚当和夏娃,因为亚当……容祖儿陈小纭唱上下句,曾因分词起纠纷,看来已经冰释前嫌了《乘风破浪的姐姐》曾因分词起纠纷的容祖儿、陈小纭在公演舞台默契演唱上下句。评论必须承认,歌手和演员之前确实是有差距的,果然还是专业歌手更适合舞台上的表演,能感觉到陈……大学生靠家教月入过万,你呢?(这个故事来源于我的好朋友小慧,为了叙事方便,以下用第一人称讲述。)我是一名学生,还是一名留学生,因为众所周知的原因,我现在困在家里上网课。虽然学费有奖学金,相当于……大学教授批发研究生,引发数万人围观,这么多学生能教过来吗高等教育跨越式的发展,让本科生、硕士生、博士生的人数连续翻番,一个教师如果真的能对众多学生都加以认真指导,必然要付出很多精力和时间。一位学者的文章在网络上突然火了,原因很……丁程鑫加入快乐家族,15岁的快乐家族首次迎来新人丁程鑫发文谈加入快乐家族,字里行间都是对自己实习鑫生的每一刻的认真,期待转正后的丁程鑫,一定会让自己和观众越来越满意!大家好,我是丁程鑫。非常荣幸能够在快乐大本营24岁的……无耻至极,美国田径申诉成功,让人意想不到7月30日下午,4400混合接力预赛在东京奥运田径赛场打响,虽然美国队顺利获得小组第一,但由于美国队员伊尔站位有误,因此被取消成绩。可就在几个小时后,美国田径队居然通过申诉获得……鹅黄色适合黄皮肤吗?作为近年来流行的一种色调,鹅黄色,市面上很多款式的衣服也开始流行起这种颜色来,很多人想知道鹅黄色是否适合黄皮肤,今天带着这个问题就让小编来给你解答吧!鹅黄色适合黄皮肤吗?……奇山秀水游桂林之八云雾漫漫相公山作为我国最早的一批旅游城市之一,桂林每年都会吸引很多国内外游客前去打卡,遇龙河、阳朔西街、兴坪古镇、象鼻山、芦笛岩、七星岩(当时银子岩还未开发)等地每天都是络绎不绝的游客,相比……江湖兰州拉面大战兰州牛肉面,谁赢了,青海还是兰州01、各有各面面是国人仅次于大米的主食,原来主要是北方地区人在吃,随着物产丰富、物流发达、口味切换,现在好多家庭都是米、面兼顾了。大家最耳熟能详的面,如沙县拌面、北……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网