CN111796935A - 调用日志信息的消费实例分配方法及系统 - Google Patents
调用日志信息的消费实例分配方法及系统 Download PDFInfo
- Publication number
- CN111796935A CN111796935A CN202010605166.1A CN202010605166A CN111796935A CN 111796935 A CN111796935 A CN 111796935A CN 202010605166 A CN202010605166 A CN 202010605166A CN 111796935 A CN111796935 A CN 111796935A
- Authority
- CN
- China
- Prior art keywords
- log information
- call log
- information
- consumption
- key value
- 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
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000009826 distribution Methods 0.000 title claims abstract description 19
- 238000005192 partition Methods 0.000 claims abstract description 77
- 238000010276 construction Methods 0.000 claims abstract description 62
- 230000005540 biological transmission Effects 0.000 claims abstract description 10
- RYYVLZVUVIJVGH-UHFFFAOYSA-N caffeine Chemical compound CN1C(=O)N(C)C(=O)C2=C1N=CN2C RYYVLZVUVIJVGH-UHFFFAOYSA-N 0.000 claims description 56
- LPHGQDQBBGAPDZ-UHFFFAOYSA-N Isocaffeine Natural products CN1C(=O)N(C)C(=O)C2=C1N(C)C=N2 LPHGQDQBBGAPDZ-UHFFFAOYSA-N 0.000 claims description 25
- 229960001948 caffeine Drugs 0.000 claims description 25
- VJEONQKOZGKCAK-UHFFFAOYSA-N caffeine Natural products CN1C(=O)N(C)C(=O)C2=C1C=CN2C VJEONQKOZGKCAK-UHFFFAOYSA-N 0.000 claims description 25
- 238000003860 storage Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 13
- 230000036541 health Effects 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 4
- 230000002123 temporal effect Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 description 19
- 230000002776 aggregation Effects 0.000 description 18
- 238000004220 aggregation Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 8
- 239000000872 buffer Substances 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 241000283986 Lepus Species 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
- G06F11/3082—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting the data filtering being achieved by aggregating or compressing the monitored data
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供的调用日志信息的消费实例分配方法及系统,当路由节点将调用日志信息按照交易特征值路由到多个消息中间件分区形成消费实例之后,每个拓扑关系构建节点根据消费任务管理节点数量、每个数据中心对应的消息中间件分区数量和拓扑关系构建节点的数量,调整各自绑定的消息中间件分区,进而分配消息中间件分区中的消费实例,本发明利用拓扑关系构建节点和消费任务管理节点对大量的消息中间件消费者的消费实例进行了智能分配,无需单台高配置服务器就可以对海量消息进行并行分析,降低了拓扑关系的构建成本。同时提供了跨数据中心拓扑构建的解决方案,有效降低了数据中心之间的网络传输需求。
Description
技术领域
本发明涉及数据处理技术,具体的讲是一种调用日志信息的消费实例分配方法及系统。
背景技术
微服务时代,业务场景按照领域模型进行了拆分,往往一个完整的业务流程需要经过多个服务间消息通信才最终闭环。大规模分布式集群虽然承载了更大规模的并发量,但是调用链路更加错综复杂。特别是大中台的建设,服务的复用与组合构成了各式各样的业务交易。单笔交易可能流经多个数据中心的多台服务器的多个服务,会产生海量无序调用日志,因此需要一种解决方式。
发明内容
为了解决现有技术的不足,本发明实施例提供了一种调用日志信息的消费实例分配方法,所述的方法包括:
当路由节点将调用日志信息按照交易特征值路由到多个消息中间件分区之后,每个拓扑关系构建节点根据消费任务管理节点数量、每个数据中心对应的消息中间件分区数量和拓扑关系构建节点的数量,调整各自绑定的消息中间件分区。
本发明实施例中,还包括:
每个拓扑关系构建节点和消费任务管理节点在启动时在Zookeeper集群上注册自身信息,进而使每个拓扑关系构建节点和消费任务管理节点各自通过在Zookeeper集群的上下文感知其他注册节点。
本发明实施例中,还包括:
所述消费任务管理节点通过性能上报API接口和心跳检测API接口监听拓扑关系构建节点的健康状况,根据每个拓扑关系构建节点的CPU和内存使用率调用k8s接口对拓扑关系构建节点的实例数量进行伸缩,从而动态调节每个实例绑定的分区。
本发明实施例中,所述调用日志信息包括:键值和明细信息;所述键值包括:交易特征值,路由节点将调用日志信息按照交易特征值路由到多个消息中间件分区,包括:
获取调用日志信息的键值和明细信息;
将所述调用日志信息的键值缓存至caffeine缓存;
将所述的调用日志信息的键值和明细信息缓存至redis缓存;
基于时间策略确定从caffeine缓存中驱逐的键值;
根据确定的驱逐的键值从所述redis缓存中获取该键值对应的明细信息进行调用日志信息的消息中间件分区划分操作。
本发明实施例中,所述的明细信息包括:调用的节点信息、耗时信息及结果信息。
本发明实施例中,所述的获取调用日志信息的键值和明细信息包括:
确定调用日志信息的交易特征值的哈希值;
将相同哈希值的调用日志信息存储至同一路由节点;
从同一路由节点中获取调用日志信息的键值和明细信息。
本发明实施例中,所述的从同一路由节点中获取调用日志信息的键值和明细信息包括:
利用kafka消息传递系统从节点获取调用日志信息的键值和明细信息。
本发明实施例中,所述的基于时间策略确定从caffeine缓存中驱逐的键值包括:
获取caffeine缓存中的调用日志信息的键值中的时间戳;
根据所述时间戳确定存储时长;
确定所述存储时长不小于预设时长则将调用日志信息的键值从caffeine缓存中驱逐。
本发明实施例中,一种调用日志信息的消费实例分配系统,所述消费实例分配系统包括:多个拓扑关系构建节点以及多个消费任务管理节点数量;其中,
当路由节点将调用日志信息按照交易特征值路由到多个消息中间件分区之后,每个拓扑关系构建节点根据消费任务管理节点数量、每个数据中心对应的消息中间件分区数量和拓扑关系构建节点的数量,调整各自绑定的消息中间件分区。
本发明实施例中,还包括:多个路由节点以及多个所述消息中间件分区;其中,每个路由节点包括:
获取单元,获取调用日志信息的键值和明细信息;
第一缓存单元,将所述调用日志信息的键值缓存至caffeine缓存;
第二缓存单元,将所述的调用日志信息的键值和明细信息缓存至redis缓存;
驱逐键值确定单元,基于时间策略确定从caffeine缓存中驱逐的键值;
分区划分单元,根据确定的驱逐的键值从所述redis缓存中获取该键值对应的明细信息进行调用日志信息的消息中间件分区划分操作。
同时,本发明还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述方法。
同时,本发明还提供一种计算机可读存储介质,计算机可读存储介质存储有执行上述方法的计算机程序。
本发明提供的调用日志信息的消费实例分配方法及系统,当路由节点将调用日志信息按照交易特征值路由到多个消息中间件分区形成消费实例之后,每个拓扑关系构建节点根据消费任务管理节点数量、每个数据中心对应的消息中间件分区数量和拓扑关系构建节点的数量,调整各自绑定的消息中间件分区,进而分配消息中间件分区中的消费实例,本发明利用拓扑关系构建节点和消费任务管理节点对大量的消息中间件消费者的消费实例进行了智能分配,无需单台高配置服务器就可以对海量消息进行并行分析,降低了拓扑关系的构建成本。同时提供了跨数据中心拓扑构建的解决方案,有效降低了数据中心之间的网络传输需求。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的调用日志信息的消费实例分配方法的流程图;
图2为本发明实施例的示意图;
图3为调用日志信息的消费实例分配系统的框图;
图4为本发明实施例提供的电子设备框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
链路聚合是指将多个物理端口汇聚在一起,形成一个逻辑端口,以实现出/入流量吞吐量在各成员端口的负荷分担,交换机根据用户配置的端口负荷分担策略决定网络封包从哪个成员端口发送到对端的交换机。当交换机检测到其中一个成员端口的链路发生故障时,就停止在此端口上发送封包,并根据负荷分担策略在剩下的链路中重新计算报文的发送端口,故障端口恢复后再次担任收发端口。链路聚合在增加链路带宽、实现链路传输弹性和工程冗余等方面是一项很重要的技术。
路由节点将调用日志信息按照交易特征值路由到多个消息中间件分区形成消费实例,可以解决在海量无序的调用日志下,收集单笔交易过去一段时间的调用日志信息(一笔交易可能途径多个服务,这些服务的调用日志信息即本发明实施例中的交易信息),提高了后续链路拓扑聚合的成功率。
但是将调用日志按照交易特征值路由到多个消息中间件分区中,后续拓扑分析需要大量的微服务节点处理大量调用日志,此时如果直接使用默认策略进行消费,会出现大量的跨数据中心的网络传输、无法依据压力进行扩容、无法及时的发现单台节点的故障造成数据丢失。
本发明主要为了提供一种能够分配消费实例的装置用以管理众多拓扑构建微服务节点实现健康检查、负载均衡、减少跨数据中心网络传输的功能,解决在多园区海量调用日志下,动态分配消费实例。
如图1所示,为本发明提供的一种调用日志信息的消费实例分配方法,其包括:
S1:当路由节点将调用日志信息按照交易特征值路由到多个消息中间件分区形成消费实例之后,每个拓扑关系构建节点根据消费任务管理节点数量、每个数据中心对应的消息中间件分区数量和拓扑关系构建节点的数量,调整各自绑定的消息中间件分区,进而分配消息中间件分区中的消费实例。
本发明提供的调用日志信息的消费实例分配方法,当路由节点将调用日志信息按照交易特征值路由到多个消息中间件分区形成消费实例之后,每个拓扑关系构建节点根据消费任务管理节点数量、每个数据中心对应的消息中间件分区数量和拓扑关系构建节点的数量,调整各自绑定的消息中间件分区,进而分配消息中间件分区中的消费实例,本发明利用拓扑关系构建节点和消费任务管理节点对大量的消息中间件消费者的消费实例进行了智能分配,无需单台高配置服务器就可以对海量消息进行并行分析,降低了拓扑关系的构建成本。同时提供了跨数据中心拓扑构建的解决方案,有效降低了数据中心之间的网络传输需求。
本发明实施例中,路由节点作为kafka消息中间件的生产者(图中标注的Router节点)将调用日志按照交易特征值哈希路由到下图跨数据中心园区KAFKA消息中间件集群的多个partition分区上,每个partition上的数据量基本一致,拓扑关系构建节点作为kafka消息中间件的消费者(图中标注的Process节点)绑定相应的分区进行消费。为了让拓扑关系构建节点负载均衡的工作,尽量不对跨园区数据进行消费,需要消费任务管理节点作为拓扑关系构建节点的协调者(图中标注的Overlord)跨数据中心的zookeeper集群对拓扑关系构建节点进行服务发现和消费管理。
此外,在本发明的实施例中,还包括:每个拓扑关系构建节点和消费任务管理节点在启动时在Zookeeper集群上注册自身信息,进而使每个拓扑关系构建节点和消费任务管理节点各自通过在Zookeeper集群的上下文感知其他注册节点。
拓扑关系构建节点和消费任务管理节点启动时在Zookeeper上注册自身的信息,通过Zookeeper上下文感知其他节点的存在。拓扑关系构建节点根据已注册的消费任务管理节点数量、所在的数据中心和KAFKA消息中间件在不同园区的分区数量动态均衡的分配每个拓扑关系构建节点需要绑定的Partition分区号。拓扑关系构建节点收到消费任务管理节点发出的指令后,绑定Partition进行后续的拓扑关系构建处理。
对于拓扑关系构建节点而言,拓扑关系构建节点通过kafka消息中间件接收来自路由节点的链路调用信息,进行后续的加工处理,为了能够负载均衡不跨数据中心的消费这些链路调用信息。拓扑关系构建节点启动时会在zookeeper上注册IP、接口、所在数据中心等信息。并通过zookeeper发现消费任务管理节点提供的性能上报API接口。对该接口上报心跳、CPU、内存使用率等信息。拓扑关系构建节点提供动态调整绑定partition分区的API接口,供消费任务管理节点调用。
对于消费任务管理节点而言,消费任务管理节点提供了对拓扑关系构建节点的组织协调能力。本发明的方法还包括:所述消费任务管理节点通过性能上报API接口和心跳检测API接口监听拓扑关系构建节点的健康状况,根据每个拓扑关系构建节点的CPU和内存使用率调用k8s接口对拓扑关系构建节点的实例数量进行伸缩,从而动态调节每个实例绑定的分区。
本实施例中,消费任务管理节点根据每个数据中心健康的拓扑关系构建节点数量和partition数量,调用扑关系构建节点提供的API接口逐个调整其消费的分区号,平均的分配拓扑关系构建节点绑定的分区号提供负载均衡能力,同时消费任务管理节点提供性能上报API接口和心跳检测API接口,监听拓扑关系构建节点的健康状况,根据其CPU和内存使用率调用k8s接口对拓扑关系构建节点的实例数量进行伸缩,同时重新分配每个实例绑定的分区。
消费任务管理节点可以在启动时在zookeeper上注册,同时通过在Zookeeper上注册排他锁方式保证双园区节点一主一备的高可用。
对于路由节点将调用日志信息按照交易特征值路由到多个消息中间件分区形成消费实例而言,其具体包括:
步骤S101,获取调用日志信息的键值和明细信息;
步骤S102,将所述调用日志信息的键值缓存至caffeine缓存;
步骤S103,将所述调用日志信息的键值和明细信息缓存至redis缓存;
步骤S104,基于时间策略确定从caffeine缓存中驱逐的键值;
步骤S105,根据确定的驱逐的键值从所述redis缓存中获取该键值对应的明细信息进行调用日志信息的消息中间件分区划分操作。
caffeine缓存不是独立的进程容量小,但效率较高,redis缓存是独立进程容量大,但效率较低,本发明结合两种缓存的优点,将海量无序的调用日志信息通过交易特征值分发到多个链路聚合节点,在链路聚合节点进行多级缓存,多级缓存是按照交易特征值归集过去一段时间的调用日志,并提醒链路聚合的java节点进行后续的处理加工。
本发明实施例中,所述调用日志信息的键值包括:调用日志信息的交易特征值,如涉及的服务的调用中的时间戳、随机数等可标识交易调用日志信息的数据均可作为调用日志信息的交易特征值;
所述的明细信息包括:调用的节点信息、耗时信息及结果信息。其中,结果信息即为调用成功或失败信息。
本发明实施例中,所述的获取调用日志信息的键值和明细信息包括:
确定调用日志信息的交易特征值的哈希值;
将相同哈希值的调用日志信息存储至同一路由节点;
从同一路由节点中获取调用日志信息的键值和明细信息。
单笔交易可能流经多台服务器的多个服务,现有技术中,服务调用日志信息上报到消息中间件的时间可能不同,消息中间件的分区规则更会导致调用日志信息乱序。本发明提供的调用日志信息的消费实例分配,基于时间策略确定从caffeine缓存中驱逐的键值,然后根据确定的驱逐的键值从redis缓存中获取该键值对应的明细信息进行调用日志信息的消息中间件分区划分操作,克服了现有技术中服务调用日志信息上报到消息中间件的时间可能不同,消息中间件的分区规则更会导致调用日志信息乱序的问题。
具体的,本发明实施例中,所述的从同一路由节点中获取调用日志信息的键值和明细信息包括:
利用kafka消息传递系统从节点获取调用日志信息的键值和明细信息。
本发明实施例中,所述的基于时间策略确定从caffeine缓存中驱逐的键值包括:
获取caffeine缓存中的调用日志信息的键值中的时间戳;
根据所述时间戳确定存储时长;
确定所述存储时长不小于预设时长则将调用日志信息的键值从caffeine缓存中驱逐。
本发明实施例中,设置caffeine的基于时间的驱逐策略,caffeine缓存对过去一段时间没有新的调用日志信息入库就会对相关的数据进行淘汰,确定的淘汰的交易即为认为这笔交易相关的调用日志已经存入到redis缓存了,redis监听到淘汰事件,就通知后续的java程序对相关调用日志进行拓扑处理。具体的,本发明实施例中,获取caffeine缓存中的调用日志信息的键值中的时间戳,本实施例中,该时间戳为每次存入该笔交易下的调用日志信息的时间信息,根据时间戳确定该调用日志信息在caffeine缓存中的调用日志信息入库时间,确定调用日志信息键值在caffeine缓存中的存储时长,存储时长不小于预设时长则将调用日志信息的键值从caffeine缓存中驱逐,即根据时间戳确定该笔交易在一段时间内没有被访问,即为认为这笔交易相关的调用日志已经存入到redis缓存了,redis监听到淘汰事件,就通知后续的java程序对相关调用日志进行拓扑处理。
如图2所示,为本发明一具体实施方式的示意图,为基于本发明的方案实现多级缓存的分布式链路聚合,本实施例中,通过消息中间件将调用日志信息采集、路由分发、链路聚合连接在一起,通过多层处理将海量无序的调用日志信息分发到多个链路聚合节点,实现链路聚合节点对调用日志信息的处理。
本实施例中,待处理的调用日志信息是已经发送到kafka消息传递系统。本实施例中通过提供一个采集端jar包给应用落地,利用jar包即可实现将相关调用日志信息发送到kafka上,本实施例中,海量无序的调用日志信息是通过交易特征值进行路由分发到kafka的partition上。通过kafka接收交易的链路日志获得调用日志信息,路由节点包含java工程,对原始调用日志信息进行分组分发,调用日志信息中有每笔交易的特征值,根据特征值进行哈希路由,分发至各路由节点,发送到消息中间件后,路由分发节点从消息中间件消费调用日志信息,获取调用日志信息中的交易特征值traceID的哈希值,交易特征值取哈希值再除以分区数(消息中间件),算出应该发到哪个分区,将相同交易特征值的调用日志信息发送到同一分区中,确保单笔交易内的调用日志信息可以发送到一台链路聚合节点上进行处理。
本实施例中,链路聚合节点包含java工程、caffeine及redis构成的多级缓存
这个步骤的作用是,将过去一段时间内的交易数据的调用日志聚合处理。从调用日志中分析出调用关系拓扑图。
一笔交易会产生途径多个服务,每途径一个服务会产生调用日志。这些日志上报到链路聚合节点的时间是乱序的、可能存在一定的延迟。本实施例中多级缓存的作用是按照交易特征值归集过去一段时间的调用日志,并提醒链路聚合的java节点进行后续的处理加工
入库缓存,设置caffeine的基于时间的驱逐策略,某个实体在一定时间没有被访问之后被caffeine淘汰。入库缓存作用是将调用日志信息的明细信息按照交易特征值存下来,从而避免占用java节点的jvm内存。本实施例汇总,调用日志信息在caffeine缓存中的存储结构是<交易特征值,调用日志明细列表>,即存储调用日志信息键值。
链路聚合节点可消费1到n个分区的消息,保证同一交易特征值下的信息都被单个链路聚合节点消费。消费后将调用日志信息中的交易特征值作为key的实体存入caffeine缓存,每次存入这笔交易下的调用日志信息都会刷新过期时间。再将交易特征值作为key,调用日志信息明细作为value的实体追加到redis的集合中。
移除监听,链路聚合节点在一段时间内没有消费到某笔交易的调用日志信息时,caffeine缓存会驱逐相关的交易特征值。设置caffeine的移除监听器,当有实体被驱逐时会产生一个事件,在此事件中判断驱逐原因为EXPIRED(过期)时捕获交易特征值x,从redis获取key为x的集合,将该集合交给后续模块进行聚合处理,最后从redis中删除key为x的实体。
移除监听器的作用:caffeine缓存过去一段时间没有新的调用日志信息入库就会对相关的数据进行淘汰,淘汰的交易我们认为这笔交易相关的调用日志已经存入到redis缓存了。监听到淘汰事件,就通知后续的java程序对相关调用日志进行拓扑处理。
本发明实施例中,还包括:每个拓扑关系构建节点和消费任务管理节点在启动时在Zookeeper集群上注册自身信息,进而使每个拓扑关系构建节点和消费任务管理节点各自通过在Zookeeper集群的上下文感知其他注册节点。
同时,如图3所示,本发明还提供一种调用日志信息的消费实例分配系统,包括:
所述消费实例分配系统包括:多个拓扑关系构建节点以及多个消费任务管理节点数量;其中,
当路由节点将调用日志信息按照交易特征值路由到多个消息中间件分区之后,每个拓扑关系构建节点根据消费任务管理节点数量、每个数据中心对应的消息中间件分区数量和拓扑关系构建节点的数量,调整各自绑定的消息中间件分区。
本发明实施例中,还包括:多个路由节点以及多个所述消息中间件分区;其中,每个路由节点包括:
获取单元,获取调用日志信息的键值和明细信息;
第一缓存单元,将所述调用日志信息的键值缓存至caffeine缓存;
第二缓存单元,将所述的调用日志信息的键值和明细信息缓存至redis缓存;
驱逐键值确定单元,基于时间策略确定从caffeine缓存中驱逐的键值;
分区划分单元,根据确定的驱逐的键值从所述redis缓存中获取该键值对应的明细信息进行调用日志信息的消息中间件分区划分操作。
本发明提供的调用日志信息的消费实例分配系统,当路由节点将调用日志信息按照交易特征值路由到多个消息中间件分区形成消费实例之后,每个拓扑关系构建节点根据消费任务管理节点数量、每个数据中心对应的消息中间件分区数量和拓扑关系构建节点的数量,调整各自绑定的消息中间件分区,进而分配消息中间件分区中的消费实例,本发明利用拓扑关系构建节点和消费任务管理节点对大量的消息中间件消费者的消费实例进行了智能分配,无需单台高配置服务器就可以对海量消息进行并行分析,降低了拓扑关系的构建成本。同时提供了跨数据中心拓扑构建的解决方案,有效降低了数据中心之间的网络传输需求。
对本领域技术人员而言,通过前述实施例的描述可清楚获知本发明提供的一种调用日志信息的消费实例分配系统的实施方式,在此不再赘述。
另外,本发明实施例还提供一种电子设备,该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照前述实施例的实施,其内容被合并于此,重复之处不再赘述。
图4为本发明实施例的电子设备600的系统构成的示意框图。如图4所示,该电子设备600可以包括中央处理器100和存储器140;存储器140耦合到中央处理器100。值得注意的是,该图是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
一实施例中,调用日志信息的消费实例分配功能可以被集成到中央处理器100中。其中,中央处理器100可以被配置为进行如下控制:
当路由节点将调用日志信息按照交易特征值路由到多个消息中间件分区之后,每个拓扑关系构建节点根据消费任务管理节点数量、每个数据中心对应的消息中间件分区数量和拓扑关系构建节点的数量,调整各自绑定的消息中间件分区。
在另一个实施方式中,调用日志信息的消费实例分配系统可以与中央处理器100分开配置,例如可以将调用日志信息的消费实例分配系统配置为与中央处理器100连接的芯片,通过中央处理器的控制来实现调用日志信息的消费实例分配功能。
如图4所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图4中所示的所有部件;此外,电子设备600还可以包括图4中没有示出的部件,可以参考现有技术。
如图4所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。
其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。
输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。
存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。
本发明实施例还提供一种计算机可读程序,其中当在电子设备中执行所述程序时,所述程序使得计算机在所述电子设备中执行如上面实施例所述的调用日志信息的消费实例分配方法。
本发明实施例还提供一种存储有计算机可读程序的存储介质,其中所述计算机可读程序使得计算机在电子设备中执行上面实施例所述的调用日志信息的消费实例分配。
以上参照附图描述了本发明的优选实施方式。这些实施方式的许多特征和优点根据该详细的说明书是清楚的,因此所附权利要求旨在覆盖这些实施方式的落入其真实精神和范围内的所有这些特征和优点。此外,由于本领域的技术人员容易想到很多修改和改变,因此不是要将本发明的实施方式限于所例示和描述的精确结构和操作,而是可以涵盖落入其范围内的所有合适修改和等同物。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种调用日志信息的消费实例分配方法,其特征在于,所述的方法包括:
当路由节点将调用日志信息按照交易特征值路由到多个消息中间件分区形成消费实例之后,每个拓扑关系构建节点根据消费任务管理节点数量、每个数据中心对应的消息中间件分区数量和拓扑关系构建节点的数量,调整各自绑定的消息中间件分区,进而分配消息中间件分区中的消费实例。
2.如权利要求1所述的调用日志信息的消费实例分配方法,其特征在于,还包括:
每个拓扑关系构建节点和消费任务管理节点在启动时在Zookeeper集群上注册自身信息,进而使每个拓扑关系构建节点和消费任务管理节点各自通过在Zookeeper集群的上下文感知其他注册节点。
3.如权利要求1所述的调用日志信息的消费实例分配方法,其特征在于,还包括:
所述消费任务管理节点通过性能上报API接口和心跳检测API接口监听拓扑关系构建节点的健康状况,根据每个拓扑关系构建节点的CPU和内存使用率调用k8s接口对拓扑关系构建节点的实例数量进行伸缩,从而动态调节每个实例绑定的分区。
4.如权利要求1所述的调用日志信息的消费实例分配方法,其特征在于,所述调用日志信息包括:键值和明细信息;所述键值包括:交易特征值,路由节点将调用日志信息按照交易特征值路由到多个消息中间件分区,包括:
获取调用日志信息的键值和明细信息;
将所述调用日志信息的键值缓存至caffeine缓存;
将所述的调用日志信息的键值和明细信息缓存至redis缓存;
基于时间策略确定从caffeine缓存中驱逐的键值;
根据确定的驱逐的键值从所述redis缓存中获取该键值对应的明细信息进行调用日志信息的消息中间件分区划分操作。
5.如权利要求4所述的调用日志信息的消费实例分配方法,其特征在于,所述的明细信息包括:调用的节点信息、耗时信息及结果信息。
6.如权利要求5所述的调用日志信息的消费实例分配方法,其特征在于,所述的获取调用日志信息的键值和明细信息包括:
确定调用日志信息的交易特征值的哈希值;
将相同哈希值的调用日志信息存储至同一路由节点;
从同一路由节点中获取调用日志信息的键值和明细信息。
7.如权利要求6所述的调用日志信息的消费实例分配方法,其特征在于,所述的从同一路由节点中获取调用日志信息的键值和明细信息包括:
利用kafka消息传递系统从节点获取调用日志信息的键值和明细信息。
8.如权利要求4所述的调用日志信息的消费实例分配方法,其特征在于,所述的基于时间策略确定从caffeine缓存中驱逐的键值包括:
获取caffeine缓存中的调用日志信息的键值中的时间戳;
根据所述时间戳确定存储时长;
确定所述存储时长不小于预设时长则将调用日志信息的键值从caffeine缓存中驱逐。
9.一种调用日志信息的消费实例分配系统,其特征在于,所述消费实例分配系统包括:多个拓扑关系构建节点以及多个消费任务管理节点数量;其中,
当路由节点将调用日志信息按照交易特征值路由到多个消息中间件分区之后,每个拓扑关系构建节点根据消费任务管理节点数量、每个数据中心对应的消息中间件分区数量和拓扑关系构建节点的数量,调整各自绑定的消息中间件分区。
10.如权利要求9所述的调用日志信息的消费实例分配系统,其特征在于,还包括:多个路由节点以及多个所述消息中间件分区;其中,每个路由节点包括:
获取单元,获取调用日志信息的键值和明细信息;
第一缓存单元,将所述调用日志信息的键值缓存至caffeine缓存;
第二缓存单元,将所述的调用日志信息的键值和明细信息缓存至redis缓存;
驱逐键值确定单元,基于时间策略确定从caffeine缓存中驱逐的键值;
分区划分单元,根据确定的驱逐的键值从所述redis缓存中获取该键值对应的明细信息进行调用日志信息的消息中间件分区划分操作。
11.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8任一项所述方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至8任一项所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010605166.1A CN111796935B (zh) | 2020-06-29 | 2020-06-29 | 调用日志信息的消费实例分配方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010605166.1A CN111796935B (zh) | 2020-06-29 | 2020-06-29 | 调用日志信息的消费实例分配方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111796935A true CN111796935A (zh) | 2020-10-20 |
CN111796935B CN111796935B (zh) | 2023-08-08 |
Family
ID=72803847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010605166.1A Active CN111796935B (zh) | 2020-06-29 | 2020-06-29 | 调用日志信息的消费实例分配方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111796935B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112783926A (zh) * | 2021-01-20 | 2021-05-11 | 银盛支付服务股份有限公司 | 一种减少调用服务耗时的方法 |
CN115082269A (zh) * | 2022-07-18 | 2022-09-20 | 华北理工大学 | 一种基于大数据的教学规划方法及系统 |
CN115333966A (zh) * | 2022-08-11 | 2022-11-11 | 天翼数字生活科技有限公司 | 一种基于拓扑的Nginx日志分析方法、系统及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170300391A1 (en) * | 2016-04-14 | 2017-10-19 | Sap Se | Scalable Log Partitioning System |
CN107622084A (zh) * | 2017-08-10 | 2018-01-23 | 深圳前海微众银行股份有限公司 | 日志管理方法、系统以及计算机可读存储介质 |
CN111049673A (zh) * | 2019-11-21 | 2020-04-21 | 山东健康医疗大数据有限公司 | 一种服务网关中api调用统计和监控的方法及系统 |
CN111130905A (zh) * | 2019-12-31 | 2020-05-08 | 青梧桐有限责任公司 | 基于分布式集群的日志级别动态调整方法 |
-
2020
- 2020-06-29 CN CN202010605166.1A patent/CN111796935B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170300391A1 (en) * | 2016-04-14 | 2017-10-19 | Sap Se | Scalable Log Partitioning System |
CN107622084A (zh) * | 2017-08-10 | 2018-01-23 | 深圳前海微众银行股份有限公司 | 日志管理方法、系统以及计算机可读存储介质 |
CN111049673A (zh) * | 2019-11-21 | 2020-04-21 | 山东健康医疗大数据有限公司 | 一种服务网关中api调用统计和监控的方法及系统 |
CN111130905A (zh) * | 2019-12-31 | 2020-05-08 | 青梧桐有限责任公司 | 基于分布式集群的日志级别动态调整方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112783926A (zh) * | 2021-01-20 | 2021-05-11 | 银盛支付服务股份有限公司 | 一种减少调用服务耗时的方法 |
CN115082269A (zh) * | 2022-07-18 | 2022-09-20 | 华北理工大学 | 一种基于大数据的教学规划方法及系统 |
CN115082269B (zh) * | 2022-07-18 | 2023-01-20 | 华北理工大学 | 一种基于大数据的教学规划方法及系统 |
CN115333966A (zh) * | 2022-08-11 | 2022-11-11 | 天翼数字生活科技有限公司 | 一种基于拓扑的Nginx日志分析方法、系统及设备 |
CN115333966B (zh) * | 2022-08-11 | 2023-05-12 | 天翼数字生活科技有限公司 | 一种基于拓扑的Nginx日志分析方法、系统及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111796935B (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109218355B (zh) | 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法 | |
CN111796935B (zh) | 调用日志信息的消费实例分配方法及系统 | |
US10491523B2 (en) | Load distribution in data networks | |
CN102460394B (zh) | 用于多核系统中的分布式哈希表的系统和方法 | |
CN111694663B (zh) | 服务器集群的负载均衡方法、装置及系统 | |
CN110138732A (zh) | 访问请求的响应方法、装置、设备及存储介质 | |
US20100106915A1 (en) | Poll based cache event notifications in a distributed cache | |
CN109542641A (zh) | 服务调用方法、装置及系统 | |
CN110602156A (zh) | 一种负载均衡调度方法及装置 | |
CN111796769B (zh) | 云平台日志存储系统扩容方法及装置 | |
CN111371704B (zh) | 一种数据缓存方法、装置、终端设备和存储介质 | |
WO2023103419A1 (zh) | 基于消息队列的5g消息批量发送方法、装置及电子设备 | |
CN114710571B (zh) | 数据包处理系统 | |
CN111737353A (zh) | 一种元数据同步方法及装置 | |
CN114237896A (zh) | 分布式节点资源动态调度方法及装置 | |
CN111737297B (zh) | 链路聚合调用信息的处理方法及装置 | |
CN100493000C (zh) | 一种实现多逻辑通道计数的方法和装置 | |
CN102497431B (zh) | 一种tcp连接缓存应用数据的内存申请方法和系统 | |
CN111506469A (zh) | 基于通信xdr的重点区域监控方法、系统和存储介质 | |
CN115756875B (zh) | 面向流式数据的机器学习模型在线服务部署方法及系统 | |
CN110445725B (zh) | 新加入负载节点分流的方法、存储介质 | |
CN112965796B (zh) | 一种任务调度系统、方法和装置 | |
CN117891618B (zh) | 人工智能模型训练平台的资源任务处理方法及装置 | |
CN116708532B (zh) | 局域网连接方法、装置、计算机设备和可读存储介质 | |
CN116166451B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |