CN111309409A - 一种api服务调用实时统计方法 - Google Patents
一种api服务调用实时统计方法 Download PDFInfo
- Publication number
- CN111309409A CN111309409A CN202010118511.9A CN202010118511A CN111309409A CN 111309409 A CN111309409 A CN 111309409A CN 202010118511 A CN202010118511 A CN 202010118511A CN 111309409 A CN111309409 A CN 111309409A
- Authority
- CN
- China
- Prior art keywords
- time
- service
- api service
- data
- api
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000007619 statistical method Methods 0.000 title claims abstract description 20
- 238000004364 calculation method Methods 0.000 claims abstract description 52
- 238000000034 method Methods 0.000 claims abstract description 32
- 230000002776 aggregation Effects 0.000 claims abstract description 31
- 238000004220 aggregation Methods 0.000 claims abstract description 31
- 238000012544 monitoring process Methods 0.000 claims abstract description 8
- 230000008569 process Effects 0.000 claims abstract description 5
- 238000012545 processing Methods 0.000 claims description 33
- 230000006870 function Effects 0.000 claims description 17
- 238000005516 engineering process Methods 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 9
- 230000000737 periodic effect Effects 0.000 claims description 9
- 238000013507 mapping Methods 0.000 claims description 8
- 230000002688 persistence Effects 0.000 claims description 7
- 238000009825 accumulation Methods 0.000 claims description 6
- 238000005538 encapsulation Methods 0.000 claims description 3
- 238000012216 screening Methods 0.000 claims description 3
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 238000000638 solvent extraction Methods 0.000 claims 1
- 238000003672 processing method Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 4
- 238000005192 partition Methods 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000009941 weaving Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0888—Throughput
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明特别涉及一种API服务调用实时统计方法。该API服务调用实时统计方法,微服务应用系统中API服务调用数据实时采集,通过缓存系统将获取的数据实时传输给计算引擎系统,考虑使用流式有状态计算,采用窗口时间划分计算粒度,以设置延时时间触发聚合计算,计算过程状态以内存缓存。该API服务调用实时统计方法,为微服务系统下的实时API服务调用情况统计和流量监控提供了高效的处理方法,能够实现高效、高吞吐和精准一次(Exactly‑once)相结合的实时API服务流量情况统计,给出API服务调用流量的排名列表。
Description
技术领域
本发明涉及计算统计和存储技术领域,特别涉及一种API服务调用实时统计方法。
背景技术
通信、大数据和云计算技术的快速发展,极大地改变了网络存储、传输和计算的模式,推动了在线应用系统业务呈现几何级的增长,使得应用系统的架构也发生了颠覆性的变革。从传统的单体架构,后来的SOA架构,发展到目前主流的微服务架构,应用系统也从封闭孤立、高度耦合向开放共享、解耦等新模式转变。随着业务场景和需求的多样性和多变性增加,伴随出现系统功能重复建设和封闭隔离问题,传统单体应用架构业务交错、耦合紧密、扩容难度高、功能重复利用难度大,已经难以满足当前应用的频迭代、快扩容、高复用和高可用等要求。因此,具有快速迭代、高度解耦、弹性扩容和高扩展等优势的微服务架构成为了当前大型应用系统架构的第一选择。微服务架构图示意图如图1所示。
微服务架构的应用系统分工更加明确,责任更加清晰,微型化服务可以采用异构技术,例如基于数据仓库存储系统的数据分析服务化,为公共的统计计算需求提供了高效和便捷的服务。为了保障微服务系统的正常运行和流量预警,往往需要实时掌握服务的调用情况和流量情况,然而,随着服务拆分的越详细、跨服务越多、访问量越大,在保障正常服务的前提下,也增加了实时掌握服务调用情况和流量监控的难度。
从SOA架构方式开始,到如今的Dubbo和SpringCloud等微服务治理框架,从业务功能维度进行系统划分,组织形成以API服务为核心的分布式多业务应用成为了当今大型应用系统主流架构模式。AOP技术是基于动态代理的无侵入、低耦合的面向切面编程,是实现具体业务逻辑同对其提供支持的通用服务分离的编译期编织技术,使用AOP技术可以将那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,比如权限认证、日志、事务处理等,利用截取消息的方式,对该消息进行装饰,为原有对象执行行为增加一层额外的处理逻辑。
Kafka作为一种分布式的流处理平台,通过生产者、消费者、主题、分区等组件实现高性能、高可靠性、高稳定性数据流传输和处理功能,在需要异步、解耦和削峰等处理的应用系统中,kafka可以提供有效的功能支撑。
Flink是Apache基金会下的一个分布式处理引擎,用于对无界和有界数据流进行有状态计算。与初代的磁盘级数据计算框架MapReduce,后代的DAG批处理内存计算框架Spark,Flink在支持内存级计算、DAG批处理任务的前提下,以时间语义和高度灵活的窗口操作支持实时级别的流式处理,同时,以有状态计算的Exactly-once语义实现了准确性和低延迟共存的数据处理。
Redis是一个高性能的非关系型内存数据库,可提供高效的数据缓存和高速读写功能。Reidis除了支持简单的key-value类型的数据,同时还提供string,list,set,zset,hash等数据结构的存储,为保证数据持久性,Redis可以将内存数据持久化到磁盘上,在启动时,重新加载到内存中。
然而,服务化的应用系统也增加了系统的复杂度,对应用系统的吞吐、健壮和容错能力要求也越来越高。而分析评估应用系统的吞吐、健壮和容错能力,其中一个重要数据来源就是实时统计应用系统中API服务调用流量情况。
针对API服务系统中调用流量实时监控问题,本发明提出了一种API服务调用实时统计方法。
发明内容
本发明为了弥补现有技术的缺陷,提供了一种简单高效的API服务调用实时统计方法。
本发明是通过如下技术方案实现的:
一种API服务调用实时统计方法,其特征在于:微服务应用系统中API服务调用数据实时采集,由于微服务应用系统中API服务调用数据采集与业务处理分离,采用异步API服务请求数据获取和采集方法,实时传输微服务应用系统中子应用服务调用数据;
微服务应用系统中API服务调用数据实时传输,微服务应用系统与计算引擎系统之间设有缓存系统,通过缓存系统将获取的数据实时传输给计算引擎系统;
微服务应用系统中API服务调用数据实时计算,考虑使用流式有状态计算,采用窗口时间划分计算粒度,以设置延时时间触发聚合计算,计算过程状态以内存缓存。
本发明API服务调用实时统计方法,基于AOP(Aspect Oriented Programming,面向切面编程)技术在微服务系统中的应用服务上编织的请求处理切面,给所有API服务请求处理配置通知方法;通过通知方法提取API服务请求信息,实时获取API服务请求信息;利用Kafka生产者客户端将获取的API服务请求信息写入Kafka消息队列API服务调用统计主题中,Flink计算引擎预设周期性滑动窗口,根据Kafka消费者客户端中消费API服务中的请求时间,筛选在周期性时间范围内的数据进行Map(映射)和Reduce(归约)计算;以窗口时间和服务名称联合作为key,计算结果作为数值(value)写入Redis数据库的列表中,供API服务调用统计持久化、实时监控展示和流量预警提醒。
本发明API服务调用实时统计方法,通过代理方式封装API服务调用接口,在代理中利用AOP技术进行API服务调用信息获取,并增加请求时间转换为API服务请求信息;所述API服务请求信息包括用户名称、请求时间、请求地址、服务地址以及服务名称。
所述Flink流式计算引擎接入Kafka消息队列消费者客户端消费API服务调用统计主题中的请求信息;同时,Flink流式计算引擎采用EventTime+Watermark模式,将窗口设定为滑动窗(sliding Window),并配置滑动窗口的滑动时间和窗口大小,利用聚合函数和状态持久化管理增量聚合API服务请求信息,根据滑动窗口时间配置进行开窗和关窗操作,并将周期性时间维度的API服务调用统计情况写入Redis数据库中,从而为给API服务调用统计展示和流量预警通知提供数据支撑。
本发明API服务调用实时统计方法,包括以下步骤:
第一步,数据采集
根据微服务应用系统分布,在提供API服务的应用系统中植入SpringAOP切面代理;以API服务接口的url映射地址作为切入点(Point Cut),并自定义前置通知(Before)器;随后在前置通知中获取当前API服务调用系统时间,系统时间时间戳作为API调用时间信息的请求时间参数值,与根据请求中获取的API服务请求信息一起封装形成API服务数据;利用前置通知器配置的获取Kafka生产者客户端方法,将API服务数据写入Kafka服务数据Topic中;
第二步,数据传输
为了使微服务应用系统资源能够集中提供给业务处理、降低因API服务统计导致的业务处理阻塞,控制API服务数据统计频繁资源申请开销,API数据传输采用异步方式,系统采用固定线程数线程池;当AOP切面代理触发了前置通知方法执行,则将请求数据的拆分、重组和传输任务提交到线程池中,从线程池中取出一个线程执行API服务数据对象的拼装,将请求中用户名称、请求地址、服务地址和服务名称参数取出,与当前系统时间放入API服务请求对象中,对象序列化写入Kafka服务统计主题,处理完成后,将线程归还线程池;
第三步,计算统计和存储
从Kafka服务统计主题消费的API服务请求对象窗口聚合,并将聚合结果写入Redis数据库中存储。
所述第一步中,微服务应用系统运行时,每当请求从前端到达系统,AOP切面代理判断请求的url映射地址与连接点是否一致;若匹配成功,则触发前置通知中分解请求参数,将API服务请求数据与系统时间进行封装,保存到Kafka集群,完成API服务调用数据的获取、封装和汇聚。
所述第三步中,在Flink计算框架中配置Kafka消费者客户端FlinkKafkaConsumer,FlinkKafkaConsumer轮询从Kafka服务统计主题中拉取二进制服务请求对象数据,采用AbstractDeserializationSchema实现将二进制数据反序列化为数据对象DataStream;序列化后的DataStream中的API服务名称作为keyBy进行分区处理,使用TimeWindow构建滑动窗口大小(窗口长度、滑动步长),滑动窗口根据windowStream中的请求时间和聚合函数AggregateFunction进行聚合处理。
所述聚合函数AggregateFunction采用自定义实现的累加规则(滑动窗口中根据不同服务名称进行累加运算)进行API服务请求数据计算,将计算结果(服务名称、窗口长度、总数)以窗口长度进行整理生成输出对象。
为了防止从Kafka中消费数据时间与其发生的时间不一致,利用Watermark+window和ProcessFunction中提供的定时器(timer)功能,根据定时器的设定延迟关闭滑动窗口;用到达数据的请求时间减去延迟时间表示Watermark,当Watermark大于等于设定的窗口长度,则定时器触发窗口关闭,默认收到了Watermark范围内的所有数据。
所述第三步中,在onTimer()中处理所有的API服务请求数据。计算结果以窗口时间和服务名称作为key,聚合统计次数为数值(value),通过Flink流式计算引擎中sink阶段的FlinkJedisPoolConfig配置Redis的地址和端口,并实例化RedisSink,通过Flink流式计算引擎的addSink的方式将计算的结果插入到Redis数据库中。
本发明的有益效果是:该API服务调用实时统计方法,为微服务系统下的实时API服务调用情况统计和流量监控提供了高效的处理方法,能够实现高效、高吞吐和精准一次(Exactly-once)相结合的实时API服务流量情况统计,给出API服务调用流量的排名列表。
附图说明
附图1为微服务架构应用系统示意图。
附图2为本发明API服务调用实时统计方法示意图。
附图3为本发明线程池处理方法示意图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
该API服务调用实时统计方法,微服务应用系统中API服务调用数据实时采集,由于微服务应用系统中API服务调用数据采集与业务处理分离,采用异步API服务请求数据获取和采集方法,实时传输微服务应用系统中子应用服务调用数据;
微服务应用系统中API服务调用数据实时传输,微服务应用系统与计算引擎系统之间设有缓存系统,通过缓存系统将获取的数据实时传输给计算引擎系统;
微服务应用系统中API服务调用数据实时计算,考虑使用流式有状态计算,采用窗口时间划分计算粒度,以设置延时时间触发聚合计算,计算过程状态以内存缓存。
该API服务调用实时统计方法,基于AOP(Aspect Oriented Programming,面向切面编程)技术在微服务系统中的应用服务上编织的请求处理切面,给所有API服务请求处理配置通知方法;通过通知方法提取API服务请求信息,实时获取API服务请求信息;利用Kafka生产者客户端将获取的API服务请求信息写入Kafka消息队列API服务调用统计主题中,Flink计算引擎预设周期性滑动窗口,根据Kafka消费者客户端中消费API服务中的请求时间,筛选在周期性时间范围内的数据进行Map(映射)和Reduce(归约)计算;以窗口时间和服务名称联合作为key,计算结果作为数值(value)写入Redis数据库的列表中,供API服务调用统计持久化、实时监控展示和流量预警提醒。
该API服务调用实时统计方法,通过代理方式封装API服务调用接口,在代理中利用AOP技术进行API服务调用信息获取,并增加请求时间转换为API服务请求信息;所述API服务请求信息包括用户名称、请求时间、请求地址、服务地址以及服务名称。
所述Flink流式计算引擎接入Kafka消息队列消费者客户端消费API服务调用统计主题中的请求信息;同时,Flink流式计算引擎采用EventTime+Watermark模式,将窗口设定为滑动窗(sliding Window),并配置滑动窗口的滑动时间和窗口大小,利用聚合函数和状态持久化管理增量聚合API服务请求信息,根据滑动窗口时间配置进行开窗和关窗操作,并将周期性时间维度的API服务调用统计情况写入Redis数据库中,从而为给API服务调用统计展示和流量预警通知提供数据支撑。
该API服务调用实时统计方法,包括以下步骤:
第一步,数据采集
根据微服务应用系统分布,在提供API服务的应用系统中植入SpringAOP切面代理;以API服务接口的url映射地址作为切入点(Point Cut),并自定义前置通知(Before)器;随后在前置通知中获取当前API服务调用系统时间,系统时间时间戳作为API调用时间信息的请求时间参数值,与根据请求中获取的API服务请求信息一起封装形成API服务数据;利用前置通知器配置的获取Kafka生产者客户端方法,将API服务数据写入Kafka服务数据Topic中;
第二步,数据传输
微服务应用系统架构是为了将原先单体的服务应用拆分微型化,以集群的方式对外提供需要与后台的交互业务。因此为了确保系统7*24小时运行,服务往往是分布式部署在不同机器上,统一通过路由进行API服务转接,受调用方同时请求数量的影响,API服务的处理量也随着波动,尤其是计算密集型的API服务,受请求并发数影响更大,可能出现无法及时处理完的API服务,后续请求排队等待的情况。为了保证在这样的情况下,为了使微服务应用系统资源能够集中提供给业务处理、降低因API服务统计导致的业务处理阻塞,控制API服务数据统计频繁资源申请开销,API数据传输采用异步方式,系统采用固定线程数线程池;当AOP切面代理触发了前置通知方法执行,则将请求数据的拆分、重组和传输任务提交到线程池中,从线程池中取出一个线程执行API服务数据对象的拼装,将请求中用户名称、请求地址、服务地址和服务名称参数取出,与当前系统时间放入API服务请求对象中,对象序列化写入Kafka服务统计主题,处理完成后,将线程归还线程池;
第三步,计算统计和存储
从Kafka服务统计主题消费的API服务请求对象窗口聚合,并将聚合结果写入Redis数据库中存储。
所述第一步中,微服务应用系统运行时,每当请求从前端到达系统,AOP切面代理判断请求的url映射地址与连接点是否一致;若匹配成功,则触发前置通知中分解请求参数,将API服务请求数据与系统时间进行封装,保存到Kafka集群,完成API服务调用数据的获取、封装和汇聚。
所述第三步中,在Flink计算框架中配置Kafka消费者客户端FlinkKafkaConsumer,FlinkKafkaConsumer轮询从Kafka服务统计主题中拉取二进制服务请求对象数据,采用AbstractDeserializationSchema实现将二进制数据反序列化为数据对象DataStream;序列化后的DataStream中的API服务名称作为keyBy进行分区处理,使用TimeWindow构建滑动窗口大小(窗口长度、滑动步长),滑动窗口根据windowStream中的请求时间和聚合函数AggregateFunction进行聚合处理。
所述聚合函数AggregateFunction采用自定义实现的累加规则(滑动窗口中根据不同服务名称进行累加运算)进行API服务请求数据计算,将计算结果(服务名称、窗口长度、总数)以窗口长度进行整理生成输出对象。
为了防止从Kafka中消费数据时间与其发生的时间不一致,利用Watermark+window和ProcessFunction中提供的定时器(timer)功能,根据定时器的设定延迟关闭滑动窗口;用到达数据的请求时间减去延迟时间表示Watermark,当Watermark大于等于设定的窗口长度,则定时器触发窗口关闭,默认收到了Watermark范围内的所有数据。
所述第三步中,在onTimer()中处理所有的API服务请求数据。计算结果以窗口时间和服务名称作为key,聚合统计次数为数值(value),通过Flink流式计算引擎中sink阶段的FlinkJedisPoolConfig配置Redis的地址和端口,并实例化RedisSink,通过Flink流式计算引擎的addSink的方式将计算的结果插入到Redis数据库中。
与现有技术相比,该API服务调用实时统计方法,具有以下特点:
(1)对微服务应用系统环境下的API服务调用操作,通过增加的AOP切面代理技术,提供了一个API服务调用情况数据实时收集的方法;
(2)以线程池异步方式作业,使得服务与公共业务处理分离,基于kafka消息队列,将微服务系统实时API服务调用数据发送到流式计算框架Flink,为所有实时统计类需求提供了实时数据传输方法;
(3)采用低延迟高吞吐的Flink计算框架,结合滑动窗口和状态计算,为实时API服务监控和流量预警提供了准确的数据支撑。
以上所述的实施例,只是本发明具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (10)
1.一种API服务调用实时统计方法,其特征在于:微服务应用系统中API服务调用数据实时采集,由于微服务应用系统中API服务调用数据采集与业务处理分离,采用异步API服务请求数据获取和采集方法,实时传输微服务应用系统中子应用服务调用数据;
微服务应用系统中API服务调用数据实时传输,微服务应用系统与计算引擎系统之间设有缓存系统,通过缓存系统将获取的数据实时传输给计算引擎系统;
微服务应用系统中API服务调用数据实时计算,考虑使用流式有状态计算,采用窗口时间划分计算粒度,以设置延时时间触发聚合计算,计算过程状态以内存缓存。
2.根据权利要求1所述的API服务调用实时统计方法,其特征在于:基于AOP技术在微服务系统中的应用服务上编织的请求处理切面,给所有API服务请求处理配置通知方法;通过通知方法提取API服务请求信息,实时获取API服务请求信息;利用Kafka生产者客户端将获取的API服务请求信息写入Kafka消息队列API服务调用统计主题中,Flink计算引擎预设周期性滑动窗口,根据Kafka消费者客户端中消费API服务中的请求时间,筛选在周期性时间范围内的数据进行Map和Reduce计算;以窗口时间和服务名称联合作为key,计算结果作为数值写入Redis数据库的列表中,供API服务调用统计持久化、实时监控展示和流量预警提醒。
3.根据权利要求2所述的API服务调用实时统计方法,其特征在于:通过代理方式封装API服务调用接口,在代理中利用AOP技术进行API服务调用信息获取,并增加请求时间转换为API服务请求信息;所述API服务请求信息包括用户名称、请求时间、请求地址、服务地址以及服务名称。
4.根据权利要求3所述的API服务调用实时统计方法,其特征在于:所述Flink流式计算引擎接入Kafka消息队列消费者客户端消费API服务调用统计主题中的请求信息;同时,Flink流式计算引擎采用EventTime+Watermark模式,将窗口设定为滑动窗,并配置滑动窗口的滑动时间和窗口大小,利用聚合函数和状态持久化管理增量聚合API服务请求信息,根据滑动窗口时间配置进行开窗和关窗操作,并将周期性时间维度的API服务调用统计情况写入Redis数据库中,从而为给API服务调用统计展示和流量预警通知提供数据支撑。
5.根据权利要求4所述的API服务调用实时统计方法,其特征在于,包括以下步骤:
第一步,数据采集
根据微服务应用系统分布,在提供API服务的应用系统中植入SpringAOP切面代理;以API服务接口的url映射地址作为切入点,并自定义前置通知器;随后在前置通知中获取当前API服务调用系统时间,系统时间时间戳作为API调用时间信息的请求时间参数值,与根据请求中获取的API服务请求信息一起封装形成API服务数据;利用前置通知器配置的获取Kafka生产者客户端方法,将API服务数据写入Kafka服务数据Topic中;
第二步,数据传输
为了使微服务应用系统资源能够集中提供给业务处理、降低因API服务统计导致的业务处理阻塞,控制API服务数据统计频繁资源申请开销,API数据传输采用异步方式,系统采用固定线程数线程池;当AOP切面代理触发了前置通知方法执行,则将请求数据的拆分、重组和传输任务提交到线程池中,从线程池中取出一个线程执行API服务数据对象的拼装,将请求中用户名称、请求地址、服务地址和服务名称参数取出,与当前系统时间放入API服务请求对象中,对象序列化写入Kafka服务统计主题,处理完成后,将线程归还线程池;
第三步,计算统计和存储
从Kafka服务统计主题消费的API服务请求对象窗口聚合,并将聚合结果写入Redis数据库中存储。
6.根据权利要求5所述的API服务调用实时统计方法,其特征在于:所述第一步中,微服务应用系统运行时,每当请求从前端到达系统,AOP切面代理判断请求的url映射地址与连接点是否一致;若匹配成功,则触发前置通知中分解请求参数,将API服务请求数据与系统时间进行封装,保存到Kafka集群,完成API服务调用数据的获取、封装和汇聚。
7.根据权利要求5所述的API服务调用实时统计方法,其特征在于:所述第三步中,在Flink计算框架中配置Kafka消费者客户端FlinkKafkaConsumer,FlinkKafkaConsumer轮询从Kafka服务统计主题中拉取二进制服务请求对象数据,采用AbstractDeserializationSchema实现将二进制数据反序列化为数据对象DataStream;序列化后的DataStream中的API服务名称作为keyBy进行分区处理,使用TimeWindow构建滑动窗口大小,滑动窗口根据windowStream中的请求时间和聚合函数AggregateFunction进行聚合处理。
8.根据权利要求7所述的API服务调用实时统计方法,其特征在于:所述聚合函数AggregateFunction采用自定义实现的累加规则(滑动窗口中根据不同服务名称进行累加运算)进行API服务请求数据计算,将计算结果以窗口长度进行整理生成输出对象。
9.根据权利要求8所述的API服务调用实时统计方法,其特征在于:为了防止从Kafka中消费数据时间与其发生的时间不一致,利用Watermark+window和ProcessFunction中提供的定时器功能,根据定时器的设定延迟关闭滑动窗口;用到达数据的请求时间减去延迟时间表示Watermark,当Watermark大于等于设定的窗口长度,则定时器触发窗口关闭,默认收到了Watermark范围内的所有数据。
10.根据权利要求9所述的API服务调用实时统计方法,其特征在于:所述第三步中,在onTimer()中处理所有的API服务请求数据。计算结果以窗口时间和服务名称作为key,聚合统计次数为数值,通过Flink流式计算引擎中sink阶段的FlinkJedisPoolConfig配置Redis的地址和端口,并实例化RedisSink,通过Flink流式计算引擎的addSink的方式将计算的结果插入到Redis数据库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010118511.9A CN111309409B (zh) | 2020-02-26 | 2020-02-26 | 一种api服务调用实时统计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010118511.9A CN111309409B (zh) | 2020-02-26 | 2020-02-26 | 一种api服务调用实时统计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111309409A true CN111309409A (zh) | 2020-06-19 |
CN111309409B CN111309409B (zh) | 2023-11-28 |
Family
ID=71152918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010118511.9A Active CN111309409B (zh) | 2020-02-26 | 2020-02-26 | 一种api服务调用实时统计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111309409B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782182A (zh) * | 2020-06-29 | 2020-10-16 | 联通(浙江)产业互联网有限公司 | 一种Java Web接口请求统计方法、计算机设备及可读存储介质 |
CN112084387A (zh) * | 2020-08-21 | 2020-12-15 | 上海微亿智造科技有限公司 | 一种实时数据分类统计方法、系统、可读介质及设备 |
CN112199206A (zh) * | 2020-08-28 | 2021-01-08 | 杭州数云信息技术有限公司 | 基于事件机制模板对实时流事件配置化处理方法及系统 |
CN112202607A (zh) * | 2020-09-28 | 2021-01-08 | 中移(杭州)信息技术有限公司 | 日志消息的统计计算方法、服务器及存储介质 |
CN112199426A (zh) * | 2020-09-24 | 2021-01-08 | 建信金融科技有限责任公司 | 微服务架构下的接口调用管理方法、装置、服务器及介质 |
CN112416537A (zh) * | 2020-12-15 | 2021-02-26 | 东北大学 | 一种Gaia系统中的统一表达API调用系统及调用方法 |
CN112528121A (zh) * | 2020-12-31 | 2021-03-19 | 河钢数字技术股份有限公司 | 一种基于分布式存储的爬虫爬取数据统计方法及系统 |
CN112749056A (zh) * | 2020-12-30 | 2021-05-04 | 广州品唯软件有限公司 | 应用服务指标监控方法、装置、计算机设备和存储介质 |
CN113360189A (zh) * | 2021-06-04 | 2021-09-07 | 上海天旦网络科技发展有限公司 | 适用于流处理的异步优化方法、系统、装置和可读介质 |
CN115016952A (zh) * | 2022-08-10 | 2022-09-06 | 中邮消费金融有限公司 | 一种基于服务调用端的动态扩缩容方法及系统 |
CN116821176A (zh) * | 2023-08-30 | 2023-09-29 | 北京中科心研科技有限公司 | 时序数据的处理方法、装置、电子设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103618762A (zh) * | 2013-11-08 | 2014-03-05 | 中标软件有限公司 | 一种基于aop的企业服务总线状态预处理系统及方法 |
CN105959233A (zh) * | 2016-04-25 | 2016-09-21 | 深圳市威宇智通科技有限公司 | 基于流式计算的移动终端流量分发系统及方法 |
CN107766205A (zh) * | 2017-10-10 | 2018-03-06 | 武汉大学 | 一种面向微服务调用过程跟踪的监控系统及方法 |
US20190130004A1 (en) * | 2017-10-27 | 2019-05-02 | Streamsimple, Inc. | Streaming Microservices for Stream Processing Applications |
CN109800129A (zh) * | 2019-01-17 | 2019-05-24 | 青岛特锐德电气股份有限公司 | 一种处理监控大数据的实时流计算监控系统及方法 |
-
2020
- 2020-02-26 CN CN202010118511.9A patent/CN111309409B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103618762A (zh) * | 2013-11-08 | 2014-03-05 | 中标软件有限公司 | 一种基于aop的企业服务总线状态预处理系统及方法 |
CN105959233A (zh) * | 2016-04-25 | 2016-09-21 | 深圳市威宇智通科技有限公司 | 基于流式计算的移动终端流量分发系统及方法 |
CN107766205A (zh) * | 2017-10-10 | 2018-03-06 | 武汉大学 | 一种面向微服务调用过程跟踪的监控系统及方法 |
US20190130004A1 (en) * | 2017-10-27 | 2019-05-02 | Streamsimple, Inc. | Streaming Microservices for Stream Processing Applications |
CN109800129A (zh) * | 2019-01-17 | 2019-05-24 | 青岛特锐德电气股份有限公司 | 一种处理监控大数据的实时流计算监控系统及方法 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782182A (zh) * | 2020-06-29 | 2020-10-16 | 联通(浙江)产业互联网有限公司 | 一种Java Web接口请求统计方法、计算机设备及可读存储介质 |
CN112084387A (zh) * | 2020-08-21 | 2020-12-15 | 上海微亿智造科技有限公司 | 一种实时数据分类统计方法、系统、可读介质及设备 |
CN112199206A (zh) * | 2020-08-28 | 2021-01-08 | 杭州数云信息技术有限公司 | 基于事件机制模板对实时流事件配置化处理方法及系统 |
CN112199206B (zh) * | 2020-08-28 | 2023-12-26 | 杭州数云信息技术有限公司 | 基于事件机制模板对实时流事件配置化处理方法及系统 |
CN112199426B (zh) * | 2020-09-24 | 2023-06-02 | 建信金融科技有限责任公司 | 微服务架构下的接口调用管理方法、装置、服务器及介质 |
CN112199426A (zh) * | 2020-09-24 | 2021-01-08 | 建信金融科技有限责任公司 | 微服务架构下的接口调用管理方法、装置、服务器及介质 |
CN112202607B (zh) * | 2020-09-28 | 2022-06-14 | 中移(杭州)信息技术有限公司 | 日志消息的统计计算方法、服务器及存储介质 |
CN112202607A (zh) * | 2020-09-28 | 2021-01-08 | 中移(杭州)信息技术有限公司 | 日志消息的统计计算方法、服务器及存储介质 |
CN112416537A (zh) * | 2020-12-15 | 2021-02-26 | 东北大学 | 一种Gaia系统中的统一表达API调用系统及调用方法 |
CN112749056A (zh) * | 2020-12-30 | 2021-05-04 | 广州品唯软件有限公司 | 应用服务指标监控方法、装置、计算机设备和存储介质 |
CN112528121A (zh) * | 2020-12-31 | 2021-03-19 | 河钢数字技术股份有限公司 | 一种基于分布式存储的爬虫爬取数据统计方法及系统 |
CN113360189A (zh) * | 2021-06-04 | 2021-09-07 | 上海天旦网络科技发展有限公司 | 适用于流处理的异步优化方法、系统、装置和可读介质 |
CN115016952A (zh) * | 2022-08-10 | 2022-09-06 | 中邮消费金融有限公司 | 一种基于服务调用端的动态扩缩容方法及系统 |
CN115016952B (zh) * | 2022-08-10 | 2022-10-28 | 中邮消费金融有限公司 | 一种基于服务调用端的动态扩缩容方法及系统 |
CN116821176A (zh) * | 2023-08-30 | 2023-09-29 | 北京中科心研科技有限公司 | 时序数据的处理方法、装置、电子设备及介质 |
CN116821176B (zh) * | 2023-08-30 | 2023-11-21 | 北京中科心研科技有限公司 | 时序数据的处理方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111309409B (zh) | 2023-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111309409A (zh) | 一种api服务调用实时统计方法 | |
US11392416B2 (en) | Automated reconfiguration of real time data stream processing | |
CN107577805B (zh) | 一种面向日志大数据分析的业务服务系统 | |
CN101277304B (zh) | 基于规则的Web服务运行环境管理系统及管理方法 | |
EP3436984A1 (en) | Managed function execution for processing data streams in real time | |
CN107479990A (zh) | 一种分布式软件服务系统 | |
CN110716744A (zh) | 一种数据流处理方法、系统和计算机可读存储介质 | |
CN109684052B (zh) | 事务分析方法、装置、设备及存储介质 | |
CN105635298B (zh) | 一种基于业务隔离原理的数据采集设备统一接入系统 | |
CN112099977A (zh) | 一种分布式跟踪系统的实时数据分析引擎 | |
US11816511B1 (en) | Virtual partitioning of a shared message bus | |
CN111367953A (zh) | 一种资讯数据的流式处理方法及装置 | |
CN112817539A (zh) | 一种工业数据存储方法、系统、电子设备及存储介质 | |
CN116775420A (zh) | 基于Flink流计算的信创云平台资源展示和预警方法及系统 | |
CN111858656A (zh) | 一种基于分布式架构的静态数据的查询方法和设备 | |
Palmieri et al. | Integrated monitoring of infrastructures and applications in cloud environments | |
CN111597157A (zh) | 一种改进日志处理系统架构的方法 | |
CN108959041B (zh) | 信息发送的方法、服务器及计算机可读存储介质 | |
CN115809179A (zh) | 基于应用性能数据的告警方法、系统、设备和存储介质 | |
CN114281850A (zh) | 一种适用于配电物联网的数据存储方法、装置、系统及存储介质 | |
CN115221116A (zh) | 一种数据写入方法、装置、设备及可读存储介质 | |
CN111381921B (zh) | 一种基于Ambari的前后端分离系统和方法 | |
CN114328093A (zh) | 一种基于Hadoop的监控方法、系统、存储介质及设备 | |
CN113485749A (zh) | 一种数据管控系统及数据管控方法 | |
CN114546817A (zh) | 一种信息处理方法、装置、存储介质及计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20231028 Address after: 23 / F, S01 building, Langchao Science Park, 1036 Langchao Road, high tech Zone, Jinan City, Shandong Province, 250100 Applicant after: Tianyuan big data Credit Management Co.,Ltd. Address before: Room 3110, S01 / F, Inspur building, 1036 Inspur Road, hi tech Zone, Jinan City, Shandong Province 250100 Applicant before: Shandong Aicheng Network Information Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |