CN115242618B - 中间件状态排查方法、装置、电子设备以及可读存储介质 - Google Patents

中间件状态排查方法、装置、电子设备以及可读存储介质 Download PDF

Info

Publication number
CN115242618B
CN115242618B CN202210688016.0A CN202210688016A CN115242618B CN 115242618 B CN115242618 B CN 115242618B CN 202210688016 A CN202210688016 A CN 202210688016A CN 115242618 B CN115242618 B CN 115242618B
Authority
CN
China
Prior art keywords
data packet
middleware
target data
request
application server
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.)
Active
Application number
CN202210688016.0A
Other languages
English (en)
Other versions
CN115242618A (zh
Inventor
赵鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN202210688016.0A priority Critical patent/CN115242618B/zh
Publication of CN115242618A publication Critical patent/CN115242618A/zh
Application granted granted Critical
Publication of CN115242618B publication Critical patent/CN115242618B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0677Localisation of faults
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

在本发明实施中提供了一种中间件状态排查方法、装置、电子设备以及可读存储介质,该方法在应用服务器上获取中间件数据包,解析中间件数据包的格式从中获取应用服务器连接请求、应用服务器连接断开、中间件连接应答、中间件连接断开、应用服务器传输请求、中间件传输应答等目标类型的数据包,再根据数据包的类型进行对应的状态排查操作,从而输出正常连接、正常传输内容、异常传输内容、应用服务器问题、中间件问题等状态信息。此时,通过捕捉应用服务器与中间件交互的数据流量,提取目标类型的中间件数据包进行状态排查,确定发生异常并定位发生问题的主体,可能是中间件、应用服务器等,提高问题定位的效率,缩短排查时间,提升服务可用性。

Description

中间件状态排查方法、装置、电子设备以及可读存储介质
技术领域
本发明涉及计算机技术领域,特别是涉及一种中间件状态排查方法、装置、电子设备以及可读存储介质。
背景技术
随着计算机网络的逐渐发展,计算机应用的运行环境日益复杂,通常包括多层结构,层级从上到下可以包括程序应用、基础代码库、程序语言运行时、设备等,每一层通常分属于不同工程师、管理部门、供应商等,导致故障发生时难以定位。
服务端的应用常依赖于中间件运行,如中间件可以包括数据库、缓存、MQ(MessageQueue,消息队列)等,可以在服务端侧、中间件侧等设置监控服务进行故障监控。目前,应用服务器的监控服务常建立在中间件客户端SDK(Software Development Kit,软件开发工具包)之上,当应用服务器的监控服务提示中间件故障时,依旧难以定位故障发生的对象,如在服务端侧的监控服务提示中间件的延迟增加,在中间件侧的监控服务反馈无异常,此时,可能是应用服务器的问题、中间件的问题等,无法确认。
发明内容
本发明实施例的目的在于提供一种中间件状态排查方法、装置、电子设备以及可读存储介质,以在应用服务器与中间件的交互过程中排查问题以及准确定位问题发生的主体。具体技术方案如下:
在本发明实施的第一方面,首先提供了一种中间件状态排查方法,应用于包括应用服务器,该方法可以包括:
获取中间件数据包,所述中间件数据包用于实现所述应用服务器与中间件的交互;
解析所述中间件数据包的类型,以获取目标类型对应的目标数据包,所述目标类型包括应用服务器连接请求、应用服务器发起连接断开、中间件连接应答、中间件发起连接断开、应用服务器传输请求、中间件传输应答中的至少一种;
根据所述目标数据包的类型进行对应的状态排查操作,输出状态信息,所述状态信息包括正常连接、正常传输内容、异常传输内容、应用服务器问题、中间件问题中的至少一个。
可选地,所述根据所述目标数据包的类型进行对应的状态排查操作之前,该方法还包括:
对于类型为所述应用服务器连接请求的目标数据包,将所述目标数据包放入缓存;
所述根据所述目标数据包的类型进行对应的状态排查操作,输出状态信息,包括:
在获取到类型为所述中间件连接应答的目标数据包时,在所述缓存中的类型为所述应用服务器连接请求的目标数据包中,查询与所述类型为所述中间件连接应答的目标数据包对应的目标数据包;在成功查询到的情况下,输出所述状态信息为所述正常连接。
可选地,所述缓存中的所述目标数据包在所述中间件响应于所述目标数据包与所述应用服务器正常连接的情况下被清空;所述对于类型为所述应用服务器连接请求的目标数据包,将所述目标数据包放入缓存之后,所述根据所述目标数据包的类型进行对应的状态排查操作,输出状态信息,还包括:
遍历所述缓存中的所述目标数据包,在所述目标数据包的缓存时间大于或等于超时时间时,在所述缓存中删除所述目标数据包,并输出所述状态信息为所述中间件问题。
可选地,所述根据所述目标数据包的类型进行对应的状态排查操作,输出状态信息,包括:
在所述目标数据包的类型为所述应用服务器发起连接断开时,输出所述状态信息为所述应用服务器问题;
在所述目标数据包的类型为所述中间件发起连接断开时,输出所述状态信息为所述中间件问题。
可选地,所述根据所述目标数据包的类型进行对应的状态排查操作,输出状态信息,包括:
在所述目标数据包的类型为所述应用服务器传输请求时,确定所述目标数据包对应的请求次序;
在所述请求次序为首次请求,且所述目标数据包中包括全部的请求内容时,输出全部的所述请求内容为所述正常传输内容;
在所述请求次序为首次请求,且所述目标数据包中包括部分的请求内容时,将所述目标数据包的所述请求内容放入所述缓存;
在所述请求次序为非首次请求,且所述缓存中存在所述应用服务器请求对应的所述请求内容时,将所述目标数据包的所述请求内容放入所述缓存;
在所述请求次序为非首次请求,且所述缓存中不存在所述应用服务器请求对应的所述请求内容时,输出所述状态信息为所述服务器问题,以及所述目标数据包的所述请求内容为所述异常传输内容;
在所述请求次序为结尾请求时,且所述缓存中存在所述应用服务器请求对应的所述请求内容时,输出所述缓存中所述应用服务器请求对应的所述请求内容,以及所述目标数据包的所述请求内容为所述正常传输内容。
可选地,所述根据所述目标数据包的类型进行对应的状态排查操作,输出状态信息,包括:
在所述目标数据包的类型为所述中间件传输应答时,确定所述目标数据包对应的应答次序;
在所述应答次序为首次应答,且所述目标数据包中包括全部的应答内容时,输出全部的所述应答内容为所述正常传输内容;
在所述应答次序为首次应答,且所述目标数据包中包括部分的应答内容时,将所述目标数据包的所述应答内容放入所述缓存;
在所述应答次序为非首次应答,且所述缓存中存在所述中间件应答对应的所述应答内容时,将所述目标数据包的所述应答内容放入所述缓存;
在所述应答次序为非首次应答,且所述缓存中不存在所述中间件应答对应的所述应答内容时,输出所述状态信息为所述中间件问题,以及所述目标数据包的所述应答内容为所述异常传输内容;
在所述应答次序为结尾应答时,输出所述缓存中所述中间件应答对应的所述应答内容,以及所述目标数据包的所述应答内容为所述正常传输内容。
可选地,所述解析所述中间件数据包的类型,以获取目标类型对应的目标数据包,包括:
根据所述中间件数据包的协议格式,确定所述中间件数据包的类型;
根据所述中间件数据包的所述类型,获取所述目标类型对应的所述目标数据包。
可选地,所述获取中间件数据包,包括:
基于所述应用服务器中的操作系统层,获取所述应用服务器的交互数据;
基于所述交互数据,获取所述中间件数据包。
在本发明实施的第二方面,提供了一种中间件状态排查装置,应用于应用服务器,该装置可以包括:
数据包获取模块,用于获取中间件数据包,所述中间件数据包用于实现所述应用服务器与中间件的交互;
数据包解析模块,用于解析所述中间件数据包的类型,以获取目标类型对应的目标数据包,所述目标类型包括应用服务器连接请求、应用服务器发起连接断开、中间件连接应答、中间件发起连接断开、应用服务器传输请求、中间件传输应答中的至少一种;
状态排查模块,用于根据所述目标数据包的类型进行对应的状态排查操作,输出状态信息,所述状态信息包括正常连接、正常传输内容、异常传输内容、应用服务器问题、中间件问题中的至少一个。
可选地,所述装置还包括:
缓存模块,用于在根据所述目标数据包的类型进行对应的状态排查操作之前,对于类型为所述应用服务器连接请求的目标数据包,将所述目标数据包放入缓存。
可选地,所述状态排查模块,包括:
状态信息输出子模块,用于在获取到类型为所述中间件连接应答的目标数据包时,在所述缓存中的类型为所述应用服务器连接请求的目标数据包中,查询与所述类型为所述中间件连接应答的目标数据包对应的目标数据包;在成功查询到的情况下,输出所述状态信息为所述正常连接。
可选地,所述缓存中的所述目标数据包在所述中间件响应于所述目标数据包与所述应用服务器正常连接的情况下被清空;所述状态信息输出子模块,还用于对于类型为所述应用服务器连接请求的目标数据包,将所述目标数据包放入缓存之后,遍历所述缓存中的所述目标数据包,在所述目标数据包的缓存时间大于或等于超时时间时,在所述缓存中删除所述目标数据包,并输出所述状态信息为所述中间件问题。
可选地,所述状态信息输出子模块,还用于在所述目标数据包的类型为所述应用服务器发起连接断开时,输出所述状态信息为所述应用服务器问题;
可选地,所述状态信息输出子模块,还用于在所述目标数据包的类型为所述中间件发起连接断开时,输出所述状态信息为所述中间件问题。
可选地,所述状态排查模块,包括:
请求对应子模块,用于在所述目标数据包的类型为所述应用服务器传输请求时,确定所述目标数据包对应的请求次序;
所述状态信息输出子模块,还用于在所述请求次序为首次请求,且所述目标数据包中包括全部的请求内容时,输出全部的所述请求内容为所述正常传输内容;
所述数据包缓存子模块,还用于在所述请求次序为首次请求,且所述目标数据包中包括部分的请求内容时,将所述目标数据包的所述请求内容放入所述缓存;
所述数据包缓存子模块,还用于在所述请求次序为非首次请求,且所述缓存中存在所述应用服务器请求对应的所述请求内容时,将所述目标数据包的所述请求内容放入所述缓存;
所述状态信息输出子模块,还用于在所述请求次序为非首次请求,且所述缓存中不存在所述应用服务器请求对应的所述请求内容时,输出所述状态信息为所述服务器问题,以及所述目标数据包的所述请求内容为所述异常传输内容;
所述状态信息输出子模块,还用于在所述请求次序为结尾请求时,且所述缓存中存在所述应用服务器请求对应的所述请求内容时,输出所述缓存中所述应用服务器请求对应的所述请求内容,以及所述目标数据包的所述请求内容为所述正常传输内容。
可选地,所述状态排查模块,包括:
应答对应子模块,用于在所述目标数据包的类型为所述中间件传输应答时,确定所述目标数据包对应的应答次序;
所述状态信息输出子模块,还用于在所述应答次序为首次应答,且所述目标数据包中包括全部的应答内容时,输出全部的所述应答内容为所述正常传输内容;
所述数据包缓存子模块,还用于在所述应答次序为首次应答,且所述目标数据包中包括部分的应答内容时,将所述目标数据包的所述应答内容放入所述缓存;
所述数据包缓存子模块,还用于在所述应答次序为非首次应答,且所述缓存中存在所述中间件应答对应的所述应答内容时,将所述目标数据包的所述应答内容放入所述缓存;
所述状态信息输出子模块,还用于在所述应答次序为非首次应答,且所述缓存中不存在所述中间件应答对应的所述应答内容时,输出所述状态信息为所述中间件问题,以及所述目标数据包的所述应答内容为所述异常传输内容;
所述状态信息输出子模块,用于在所述应答次序为结尾应答时,输出所述缓存中所述中间件应答对应的所述应答内容,以及所述目标数据包的所述应答内容为所述正常传输内容。
可选地,所述数据包解析模块,包括:
类型解析子模块,用于根据所述中间件数据包的协议格式,确定所述中间件数据包的类型;
类型选取子模块,用于根据所述中间件数据包的所述类型,获取所述目标类型对应的所述目标数据包。
可选地,所述数据包获取模块,包括:
数据获取子模块,用于基于所述应用服务器中的操作系统层,获取所述应用服务器的交互数据;
数据包获取子模块,用于基于所述交互数据,获取所述中间件数据包。
本发明实施的第三方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于进行存储器上所存放的程序时,进行上述任一所述的中间件状态排查方法。
在本发明实施的第四方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机进行上述任一所述的中间件状态排查方法。
在本发明实施的第五方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机进行上述任一所述的中间件状态排查方法。
在本发明实施中提供了一种中间件状态排查方法,在应用服务器上获取中间件数据包,再解析中间件数据包的格式从中获取应用服务器连接请求、应用服务器连接断开、中间件连接应答、中间件连接断开、应用服务器传输请求、中间件传输应答等目标类型的数据包,根据数据包的类型进行对应的状态排查操作,从而输出正常连接、正常传输内容、异常传输内容、应用服务器问题、中间件问题等状态信息。在本发明实施中,通过捕捉应用服务器与中间件交互过程的数据流量,提取类型为应用服务器连接请求、应用服务器发起连接断开、中间件连接应答、中间件发起连接断开、应用服务器传输请求、中间件传输应答的中间件数据包,从而根据不同的类型的中间件数据包,分析中间件、应用服务器之间的连接情况、应答情况、传输情况,对中间件数据包进行状态排查,根据不同的状态信息可以判断是否存在异常,这样,在应用服务器侧既能确定发生异常,又能根据目标数据包的发送方和接收方定位发生问题的主体,例如,可能是中间件、应用服务器等,提高了复杂环境中问题定位的效率,缩短故障排查时间,提升服务的可用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1是本发明实施例提供的一种中间件状态排查方法的步骤流程图;
图2是本发明实施例提供的一种应用服务器-中间件架构示意图;
图3是本发明实施例提供的另一种中间件状态排查方法的步骤流程图;
图4是本发明实施例提供的一种中间件数据包解析结果示意图;
图5是本发明实施例提供的一种中间件状态排查装置的结构框图;
图6是本发明实施例提供的一种电子设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
图1是本发明实施例提供的一种中间件状态排查方法的步骤流程图,该方法应用于应用服务器。
本发明实施例中,应用服务器用于向应用程序提供简单、可管理的系统资源访问机制,可以通过启用集中式方法提供应用程序更新、升级等服务,应用服务器具有可伸缩性,可以与数据库、缓存、MQ等中间件连接,应用服务器上部署有操作系统以支持应用服务器的服务、管理、配置、安全等功能,操作系统可以是Windows Server、Unix、Linux等。
图2是本发明实施例提供的一种应用服务器-中间件架构示意图,如图2所示,计算机可以以应用层、编程语言层、操作系统层、硬件设备层分层管理,现有技术中,主要在应用层的应用程序代码库、中间件分别建立监控服务,从而对应用程序、中间件的故障进行监控,但是,该方式在故障发生时难以定位问题,可能发生应用程序侧汇报中间件延迟增加,但在中间件侧无异常的情况,使得问题难以定位。
如图2所示,在本发明实施例中,可以在操作系统层实现状态排查方法,操作系统层是软件与硬件间的是适配层,可以提供操作界面,并对接指令以管理硬件资源,基于此,可以在操作系统层捕捉应用服务器与中间件交互的数据流量,并对数据流量反应的信息进行统计分析,以确定应用服务器与中间件的实际交互状态,从而快速定位问题。
如图1所示,该方法可以包括:
步骤101、获取中间件数据包,所述中间件数据包用于实现所述应用服务器与中间件的交互。
本发明实施例中,在应用服务器与中间件的连接场景中,可以在应用服务器侧获取用于实现应用服务器与中间件交互的中间件数据包,其中,中间件数据包可以是连接控制数据包、内容传输数据包等,连接控制数据包用于在应用服务器与中间件之间建立连接,内容传输数据包用于在应用服务器与中间件之间传输数据内容,中间件数据包可以反应应用服务器与中间件之间的交互详情。可选地,可以通过应用服务器中操作系统的资源管理功能捕捉网卡上传输的数据流量,获得应用服务器与中间件交互产生的中间件数据包,也可以通过其他外接插件、组件等捕捉网络接口的流量数据。
步骤102、解析所述中间件数据包的类型,以获取目标类型对应的目标数据包,所述目标类型包括应用服务器连接请求、应用服务器发起连接断开、中间件连接应答、中间件发起连接断开、应用服务器传输请求、中间件传输应答中的至少一种。
本发明实施例中,应用服务器与中间件之间可以以预定的传输协议实现传输,传输协议可以是自定义的传输协议,也可以是通用的传输协议,在传输协议中可以基于传输需求定义不同类型的数据包,如连接控制数据包的类型可以包括应用服务器连接请求、应用服务器连接断开、中间件连接应答、中间件连接断开等,内容传输数据包可以包括应用服务器传输请求、中间件传输应答等,在多种类型的中间件数据包中可以获取目标类型对应的目标数据包,目标类型指与连接状态、数据传输状态等状态排查相关的类型,本领域技术人员可以根据需求选择不同类型的中间件数据包作为目标类型,本发明实施例对此不作具体限制。
步骤103、根据所述目标数据包的类型进行对应的状态排查操作,输出状态信息,所述状态信息包括正常连接、正常传输内容、异常传输内容、应用服务器问题、中间件问题中的至少一个。
本发明实施例中,基于不同目标数据包的类型可以对应不同的状态排查操作,如连接情况排查、传输内容排查等,其中,连接情况排查可以是连接正常、连接断开、连接超时等情况的排查,传输内容排查可以是传输内容的完整性排查、安全性排查等,在排查过程中,根据目标数据包的发送方、接收方,可以准确定位问题发生的主题是应用服务器问题、中间件服务器问题等,以实现准确定位故障发生的主体。
在本发明实施中提供了一种中间件状态排查方法,在应用服务器上获取中间件数据包,再解析中间件数据包的格式从中获取应用服务器连接请求、应用服务器连接断开、中间件连接应答、中间件连接断开、应用服务器传输请求、中间件传输应答等目标类型的数据包,根据数据包的类型进行对应的状态排查操作,从而输出正常连接、正常传输内容、异常传输内容、应用服务器问题、中间件问题等状态信息。在本发明实施中,通过捕捉应用服务器与中间件交互过程的数据流量,提取类型为应用服务器连接请求、应用服务器发起连接断开、中间件连接应答、中间件发起连接断开、应用服务器传输请求、中间件传输应答的中间件数据包,从而根据不同的类型的中间件数据包,分析中间件、应用服务器之间的连接情况、应答情况、传输情况,对中间件数据包进行状态排查,根据不同的状态信息可以判断是否存在异常,这样,在应用服务器侧既能确定发生异常,又能根据目标数据包的发送方和接收方定位发生问题的主体,例如,可能是中间件、应用服务器等,提高了复杂环境中问题定位的效率,缩短故障排查时间,提升服务的可用性。
图3是本发明实施例提供的另一种中间件状态排查方法的步骤流程图,该方法应用于应用服务器,如图3所示,该方法可以包括:
步骤201、获取中间件数据包,所述中间件数据包用于实现所述应用服务器与中间件的交互。
本发明实施例中,步骤201可对应参照前述步骤101的相关描述,为避免重复,在此不再赘述。
步骤202、根据所述中间件数据包的协议格式,确定所述中间件数据包的类型。
本发明实施例中,可以根据应用服务器与中间件之间传输协议中定义的协议格式确定中间数据包对应的数据类型,在传输协议中定义应用服务器与中间件之间数据传输的请求/应答机制,其中,在数据包中携带连接控制标识的中间件数据包为连接控制数据包,连接控制标识可以包括一种以上,不同连接控制标识可以指示开始连接、结束连接、重置连接等,在数据包中携带内容传输标识的中间件数据包为内容传输数据包,内容传输标识可以包括一种以上,不同内容传输标识可以指示请求数据、推送数据等。
如,图4是本发明实施例提供的一种中间件数据包解析结果示意图,以TCP传输协议为例,如图4所示,在中间件数据包中,根据TCP传输协议格式的定义,由虚线框框出的部分指示了该中间件数据包的类型,如“[S]”为SYN(开始连接)、“[P]”为PSH(推送数据)、“[F]”为FIN(结束连接)、“[R]”为RST(重置连接),其中,“[S]”、“[R]”图4未示出。
步骤203、根据所述中间件数据包的所述类型,获取所述目标类型对应的所述目标数据包,所述目标类型包括应用服务器连接请求、应用服务器连接断开、中间件连接应答、中间件连接断开、应用服务器传输请求、中间件传输应答中的至少一种。
本发明实施例中,不同类型的中间件数据包可以用于支持应用服务器与中间件之间的不同交互,因此,可以根据状态排查的需求,在中间件数据包的类型中确定交互对应的类型为目标类型,再将目标类型的中间件数据包确定为目标数据包,如需要针对连接情况进行状态排查时,可以将支持应用服务器与中间件之间建立、保持、中断连接等中间件数据包的类型确定为目标类型,还可以将目标类型以外的中间件数据包丢弃,以减少存储压力,避免排查干扰,提高效率,具体的,步骤203可对应参照前述步骤102的相关描述,为避免重复,在此不再赘述。
本发明实施例中,根据中间件数据包的目标类型可以采用不同的状态排查操作,以确定应用服务器与中间件之间该类型对应交互的状态。可选地,所述目标数据包的类型可以是应用服务器连接请求、中间件连接应答等,则所述根据所述目标数据包的类型进行对应的状态排查操作之前,本发明实施例还可以包括:
步骤301、对于类型为所述应用服务器连接请求的目标数据包,将所述目标数据包放入缓存。
本发明实施例中,在应用服务器与中间件的交互中,可以是应用服务器向中间件请求建立连接,此时,目标数据包的类型可以是应用服务器连接请求,则可以确定目标数据包用于实现应用服务器向中间件请求建立新的连接任务,可以将目标数据包放入缓存中,可选地,可以以列表的形式对目标数据包进行缓存。
可选地,所述缓存中的所述目标数据包在所述中间件响应于所述目标数据包与所述应用服务器正常连接的情况下被清空。
其中,可以在接收到中间件响应于目标数据包返回的表征成功连接的应答数据包的情况下,确定中间件响应于目标数据包与应用服务器正常连接,进而删除缓存中存储的应用服务器发起连接请求的目标数据包。
所述步骤301之后,还可以包括:
步骤311、遍历所述缓存中的所述目标数据包,在所述目标数据包的缓存时间大于或等于超时时间时,在所述缓存中删除所述目标数据包,并输出所述状态信息为所述中间件问题。
本发明实施例中,超时时间指允许中间件响应应用服务器连接请求的最大时间,当应用服务器发起连接请求后超时时间内未接收到中间件响应时,可以认为应用服务器与中间件建立连接失败,因此,还可以对缓存中的目标数据包进行遍历,以对目标数据包的缓存时间进行统计,缓存时间可以反应应用服务器已向中间件发起连接请求,而中间件还未对该连接请求应答的时间,在缓存中目标数据包的缓存时间大于超时时间时的情况下,可以确定中间件未响应应用服务器的连接请求,表明中间件无法正常连接,因此,可以是输出中间件问题的状态信息,可以包括应用服务器发起连接请求时间、中间件未响应时间、未响应中间件的信息等。
步骤321、在获取到类型为所述中间件连接应答的目标数据包时,在所述缓存中的类型为所述应用服务器连接请求的目标数据包中,查询与所述类型为所述中间件连接应答的目标数据包对应的目标数据包;在成功查询到的情况下,输出所述状态信息为所述正常连接。
具体的,在应用服务器与中间件的交互中,可以是中间件对应用服务器请求建立连接的应答,此时,目标数据包的类型可以是中间件连接应答,则可以确定目标数据包用于实现中间件响应应用服务器已请求连接的建立任务,则该连接任务对应的类型为应用服务器请求类型的中间件数据包应已缓存,因此,可以在缓存中查询对应的类型为应用服务器请求的目标数据包。
当在缓存中查询到连接任务对应的应用服务器请求类型的目标数据包时,可以确定连接服务对应的请求、应答过程正常执行,从交互过程中数据流量的状态可以确定应用服务器与中间件正常完成连接,此时,可以输出正常连接的状态信息,如连接建立成功,以及与应用服务器建立连接的中间件的信息,可选地,根据应用服务器发起连接请求的时间以及中间件响应的时间还可以确定建立连接的耗时,并在输出正常连接的状态信息时,输出建立连接的耗时。另外,在输出状态信息为正常连接后,可以删除缓存中存储的应用服务器发起连接请求的中间件数据包,以避免数据冗余。
本发明实施例中,输出状态信息可以通过语音、邮件、消息等方式输出,也可以通过控制台打印等方式输出,本发明实施例对输出状态信息的方式不做具体限制。
在本发明实施例中,在应用服务器(客户端)与中间件(服务端)连接交互的状态排查中,输出状态信息的示例如下:
>14:18:07.488995客户端端口号为13453连接建立成功,耗时:35ms;
>14:18:07.491630客户端端口号为12345的连接断开。断开原因:服务端主动断开连接;
>14:18:07.591630客户端端口号为12835的连接断开。断开原因:客户端主动断开连接;
>14:18:07.691630客户端建立连接超时,服务端超过xxx时间没有响应建立连接请求。
可选地,所述目标数据包的类型可以是应用服务器连接断开、中间件连接断开等,则:
步骤401、在所述目标数据包的类型为所述应用服务器发起连接断开时,输出所述状态信息为所述应用服务器问题。
步骤411、在所述目标数据包的类型为所述中间件发起连接断开时,输出所述状态信息为所述中间件问题。
本发明实施例中,由于网络波动、中间件故障、应用服务器故障等,可能由应用服务器、中间件等主动发起连接断开的请求,在应用服务器主动发起连接断开的请求时,目标数据包的类型为应用服务器连接断开,此时,可以确定应用服务器可能发生故障,并输出应用服务器问题的状态信息,还可以输出应服务器断开连接的信息;在中间件主动发起连接断开的请求时,目标数据包的类型为中间件连接断开,此时,可以确定中间件可能发生故障,并输出中间件问题的状态信息,还可以输出中间件主动断开连接的信息。可选地,所述目标数据包的类型可以是应用服务器传输请求,则:
步骤501、在所述目标数据包的类型为所述应用服务器传输请求时,确定所述目标数据包对应的请求次序。
本发明实施例中,在应用服务器与中间件的交互中,可以是应用服务器向中间件请求传输内容,如请求从中间件获取数据、请求在中间件存入数据等,在一次应用服务器传输请求中,可以在一个目标数据包中发送全部请求内容,也可以根据协议格式按照次序发送多个中间件数据包,每个中间件数据包可以根据协议格式标示仅包含部分请求内容以及发送顺序,不同发送顺序的中间件数据包可以反映应用服务器不同阶段的状态,如在请求次序为首次请求时表示该目标数据包对应一个新的应用服务器传输请求,在请求次数为非首次请求时表示该目标数据包对应已有的应用服务器传输请求,在请求次数为结尾请求时表示该目标数据报对应应用服务器传输请求的结束。因此,在目标数据包的类型为应用服务器传输请求时,可以根据协议格式以及目标数据包的标示确定目标数据包的请求次序,从而进行不同的状态排查操作。
步骤511、在所述请求次序为首次请求,且所述目标数据包中包括全部的请求内容时,输出全部的所述请求内容为所述正常传输内容。
本发明实施例中,在请求次数为首次请求时,可以根据协议格式进一步确定目标数据包是否包含全部的请求内容,在目标数据包的标识表示目标数据包不是分包发送部分请求内容,而是包含全部请求内容的情况下,可以确定本次传输正常,此时,可以将全部请求内容输出作为正常传输内容以作记录。
如,根据协议格式在数据包中根据参数长度解析参数内容,在目标数据包中参数内容的长度等于参数长度的情况下,可以认为该目标数据包中包括全部的请求内容。
步骤521、在所述请求次序为首次请求,且所述目标数据包中包括部分的请求内容时,将所述目标数据包的所述请求内容放入所述缓存。
本发明实施例中,在请求次序为首次请求,且根据协议格式确定目标数据包是分包发送部分请求内容的情况下,可以将目标数据包中包含的请求内容放入缓存,该请求内容为对应应用服务器传输请求的第一段请求内容。
如,根据协议格式在数据包中根据参数长度解析参数内容,在目标数据包中参数内容的长度大于参数长度的情况下,可以认为该目标数据包中包括部分的请求内容。
步骤531、在所述请求次序为非首次请求,且所述缓存中存在所述应用服务器请求对应的所述请求内容时,将所述目标数据包的所述请求内容放入所述缓存。
本发明实施例中,在请求次序为非首次请求时,可以确定目标数据包是分包发送部分请求内容,此时,可以进一步查询缓存中是否存在应用服务器请求对应的请求内容,在缓存中已存入该应用服务器请求对应的请求内容的情况下,可以将目标数据包中包含的请求内容放入缓存,可选地,可以进一步确定缓存中已存入的请求内容与目标数据包包含的请求内容是否连续,从而排查中间件数据包发送的故障。
步骤541、在所述请求次序为非首次请求,且所述缓存中不存在所述应用服务器请求对应的所述请求内容时,输出所述状态信息为所述服务器问题,以及所述目标数据包的所述请求内容为所述异常传输内容。
需要说明的是,当请求次序为非首次请求时,可以确定目标数据包是分为多个数据包分次发送的,每个数据包中只包含了部分请求内容,此时的缓存中应该存在与该请求对应的在先数据包。而本发明实施例中,请求次序为非首次请求,且缓存中不存在应用服务器请求对应的请求内容,说明该请求为非正常请求,相应地,该目标数据包可能为恶意请求或错误请求,应用服务器可能由于被劫持或者发生故障,从而发送了上述非正常请求,此时,可以输出状态信息为服务器问题,并输出目标数据包的请求内容作为异常传输内容,以定位问题,并便于运维人员、操作人员进一步检修。
步骤551、在所述请求次序为结尾请求时,且所述缓存中存在所述应用服务器请求对应的所述请求内容时,输出所述缓存中所述应用服务器请求对应的所述请求内容,以及所述目标数据包的所述请求内容为所述正常传输内容。
本发明实施例中,在请求次序为结尾请求时,且所述缓存中存在所述应用服务器请求对应的所述请求内容时,可以认为该应用服务器传输请求结束,将缓存中应用服务器传输请求对应的请求内容,以及目标数据包包含的请求内容作为正常传输内容输出。
如,以中间件Redis为例,根据协议格式应用服务器向中间件Redis发送的数据包格式如下所示:
“*<参数数量>$<参数1长度>参数1内容$<参数2长度>参数2内容$<参数3长度>参数3内容”
如,具体可以是“*3$3SET$5mykey$7myvalue”
其中,以字符*标示应用服务器传输请求的首次请求,*后跟随参数数量,$标示不同参数的开始,$后先跟随该参数的长度,后跟随该参数的内容。
可选地,目标数据包的类型可以是中间件传输应答,则:
步骤601、在所述目标数据包的类型为所述中间件传输应答时,确定所述目标数据包对应的应答次序。
步骤611、在所述应答次序为首次应答,且所述目标数据包中包括全部的应答内容时,输出全部的所述应答内容为所述正常传输内容。
步骤621、在所述应答次序为首次应答,且所述目标数据包中包括部分的应答内容时,将所述目标数据包的所述应答内容放入所述缓存。
步骤631、在所述应答次序为非首次应答,且所述缓存中存在所述中间件应答对应的所述应答内容时,将所述目标数据包的所述应答内容放入所述缓存。
步骤641、在所述应答次序为非首次应答,且所述缓存中不存在所述中间件应答对应的所述应答内容时,输出所述状态信息为所述中间件问题,以及所述目标数据包的所述应答内容为所述异常传输内容。
需要说明的是,当应答次序为非首次应答时,可以确定目标数据包是分为多个数据包分次发送的,每个数据包中只包含了部分应答内容,此时的缓存中应该存在与该应答对应的在先数据包。而本发明实施例中,应答次序为非首次应答,且缓存中不存在中间件应答对应的应答内容时,说明该应答为非正常应答,相应地,该目标数据包可能为恶意应答或错误应答,中间件可能由于故障等,发送了上述非正常应答,此时,可以输出状态信息为中间件问题,并输出目标数据包的应答内容作为异常传输内容,以定位问题,并便于运维人员、操作人员进一步检修。
步骤651、在所述应答次序为结尾应答时,输出所述缓存中所述中间件应答对应的所述应答内容,以及所述目标数据包的所述应答内容为所述正常传输内容。
本发明实施例中,在应用服务器与中间件的交互中,可以是中间件向应用服务器应答传输内容,其中,中间件传输应答对应目标数据包的状态排查操作步骤601-651可对应参照前述步骤501-551的相关描述,为避免重复,在此不再赘述。
在本发明实施中,中间件Redis发送的中间件传输应答可能有多种格式,如:
状态应答(status reply)的第一个字节是“+”;
错误应答(error reply)的第一个字节是“-”;
整数应答(integer reply)的第一个字节是“:”;
批量应答(bulk reply)的第一个字节是“$”;
多条批量应答(multi bulk reply)的第一个字节是“*”···
其中,不同类型的应答可以按照对应的格式解析,以状态应答举例,其格式为:
+<应答内容>\r\n
举例如下:”+OK\r\n”
如上所示,该传输应答以字符+开始,以\r\n为结尾,中间是应答内容,可据此传输协议格式解析目标数据包中应答内容的开始和结束,并提取、输出对应的应答内容。
在本发明实施中,在应用服务器(客户端)与中间件(服务端)内容传输交互的状态排查中,输出状态信息的示例如下:
>14:18:07.488995客户端在端口号为13453的连接上请求:get key1;
>14:18:07.491630客户端在端口号为12345的连接上请求:delete key2;
>14:18:07.591630服务端在端口号为13453的连接上应答:val;
>14:18:07.691630服务端在端口号为13453的连接上应答:(error)READONLY Youcan't write against a read only slave.服务端应答错误。
其中,当输出状态信息为:(error)READONLY You can't write against a readonly slave时,表明此时服务端应答错误,为服务端(中间件)问题。
可选地,上述获取中间件数据包的操作,可以包括:
步骤701、基于所述应用服务器中的操作系统层,获取所述应用服务器的交互数据。
步骤702、基于所述交互数据,获取所述中间件数据包。
具体的,可以通过操作系统层捕捉网卡上的数据流量,获得应用服务器与中间件交互产生的中间件数据包,也可以通过其他外接插件、组件等捕捉网络接口的流量数据。
本发明实施例中,通过基于应用服务器中的操作系统层,获取应用服务器的交互数据;基于交互数据,获取中间件数据包,这样,通过操作系统层获取中间件数据包,可以避开软件架构的各种复杂组件,从而在操作系统层即可实现状态排查操作,可以快速定位故障原因。
在本发明实施中提供了一种中间件状态排查方法,在应用服务器上获取中间件数据包,再解析中间件数据包的格式从中获取应用服务器连接请求、应用服务器连接断开、中间件连接应答、中间件连接断开、应用服务器传输请求、中间件传输应答等目标类型的数据包,根据数据包的类型进行对应的状态排查操作,从而输出正常连接、正常传输内容、异常传输内容、应用服务器问题、中间件问题等状态信息。在本发明实施中,通过捕捉应用服务器与中间件交互过程的数据流量,提取类型为应用服务器连接请求、应用服务器发起连接断开、中间件连接应答、中间件发起连接断开、应用服务器传输请求、中间件传输应答的中间件数据包,从而根据不同的类型的中间件数据包,分析中间件、应用服务器之间的连接情况、应答情况、传输情况,对中间件数据包进行状态排查,根据不同的状态信息可以判断是否存在异常,这样,在应用服务器侧既能确定发生异常,又能根据目标数据包的发送方和接收方定位发生问题的主体,例如,可能是中间件、应用服务器等,提高了复杂环境中问题定位的效率,缩短故障排查时间,提升服务的可用性。
图5是本发明实施例提供的一种中间件状态排查装置80的结构框图,如图5所示,该装置可以包括:
数据包获取模块801,用于获取中间件数据包,所述中间件数据包用于实现所述应用服务器与中间件的交互;
数据包解析模块802,用于解析所述中间件数据包的类型,以获取目标类型对应的目标数据包,所述目标类型包括应用服务器连接请求、应用服务器发起连接断开、中间件连接应答、中间件发起连接断开、应用服务器传输请求、中间件传输应答中的至少一种;
状态排查模块803,用于根据所述目标数据包的类型进行对应的状态排查操作,输出状态信息,所述状态信息包括正常连接、正常传输内容、异常传输内容、应用服务器问题、中间件问题中的至少一个。
可选地,所述装置还包括:
缓存模块,用于在根据所述目标数据包的类型进行对应的状态排查操作之前,对于类型为所述应用服务器连接请求的目标数据包,将所述目标数据包放入缓存。
可选地,所述状态排查模块803,包括:
状态信息输出子模块,用于在获取到类型为所述中间件连接应答的目标数据包时,在所述缓存中的类型为所述应用服务器连接请求的目标数据包中,查询与所述类型为所述中间件连接应答的目标数据包对应的目标数据包;在成功查询到的情况下,输出所述状态信息为所述正常连接。
可选地,所述缓存中的所述目标数据包在所述中间件响应于所述目标数据包与所述应用服务器正常连接的情况下被清空;所述状态信息输出子模块,还用于对于类型为所述应用服务器连接请求的目标数据包,将所述目标数据包放入缓存之后,遍历所述缓存中的所述目标数据包,在所述目标数据包的缓存时间大于或等于超时时间时,在所述缓存中删除所述目标数据包,并输出所述状态信息为所述中间件问题。
可选地,所述状态信息输出子模块,还用于在所述目标数据包的类型为所述应用服务器发起连接断开时,输出所述状态信息为所述应用服务器问题;
可选地,所述状态信息输出子模块,还用于在所述目标数据包的类型为所述中间件发起连接断开时,输出所述状态信息为所述中间件问题。
可选地,所述状态排查模块803,包括:
请求对应子模块,用于在所述目标数据包的类型为所述应用服务器传输请求时,确定所述目标数据包对应的请求次序;
所述状态信息输出子模块,还用于在所述请求次序为首次请求,且所述目标数据包中包括全部的请求内容时,输出全部的所述请求内容为所述正常传输内容;
所述数据包缓存子模块,还用于在所述请求次序为首次请求,且所述目标数据包中包括部分的请求内容时,将所述目标数据包的所述请求内容放入所述缓存;
所述数据包缓存子模块,还用于在所述请求次序为非首次请求,且所述缓存中存在所述应用服务器请求对应的所述请求内容时,将所述目标数据包的所述请求内容放入所述缓存;
所述状态信息输出子模块,还用于在所述请求次序为非首次请求,且所述缓存中不存在所述应用服务器请求对应的所述请求内容时,输出所述状态信息为所述服务器问题,以及所述目标数据包的所述请求内容为所述异常传输内容;
所述状态信息输出子模块,还用于在所述请求次序为结尾请求时,且所述缓存中存在所述应用服务器请求对应的所述请求内容时,输出所述缓存中所述应用服务器请求对应的所述请求内容,以及所述目标数据包的所述请求内容为所述正常传输内容。
可选地,所述状态排查模块803,包括:
应答对应子模块,用于在所述目标数据包的类型为所述中间件传输应答时,确定所述目标数据包对应的应答次序;
所述状态信息输出子模块,还用于在所述应答次序为首次应答,且所述目标数据包中包括全部的应答内容时,输出全部的所述应答内容为所述正常传输内容;
所述数据包缓存子模块,还用于在所述应答次序为首次应答,且所述目标数据包中包括部分的应答内容时,将所述目标数据包的所述应答内容放入所述缓存;
所述数据包缓存子模块,还用于在所述应答次序为非首次应答,且所述缓存中存在所述中间件应答对应的所述应答内容时,将所述目标数据包的所述应答内容放入所述缓存;
所述状态信息输出子模块,还用于在所述应答次序为非首次应答,且所述缓存中不存在所述中间件应答对应的所述应答内容时,输出所述状态信息为所述中间件问题,以及所述目标数据包的所述应答内容为所述异常传输内容;
所述状态信息输出子模块,用于在所述应答次序为结尾应答时,输出所述缓存中所述中间件应答对应的所述应答内容,以及所述目标数据包的所述应答内容为所述正常传输内容。
可选地,所述数据包解析模块802,包括:
类型解析子模块,用于根据所述中间件数据包的协议格式,确定所述中间件数据包的类型;
类型选取子模块,用于根据所述中间件数据包的所述类型,获取所述目标类型对应的所述目标数据包。
可选地,所述数据包获取模块801,包括:
数据获取子模块,用于基于所述应用服务器中的操作系统层,获取所述应用服务器的交互数据;
数据包获取子模块,用于基于所述交互数据,获取所述中间件数据包。
在本发明实施中提供了一种中间件状态排查装置,在应用服务器上获取中间件数据包,再解析中间件数据包的格式从中获取应用服务器连接请求、应用服务器连接断开、中间件连接应答、中间件连接断开、应用服务器传输请求、中间件传输应答等目标类型的数据包,根据数据包的类型进行对应的状态排查操作,从而输出正常连接、正常传输内容、异常传输内容、应用服务器问题、中间件问题等状态信息。在本发明实施中,通过捕捉应用服务器与中间件交互过程的数据流量,提取类型为应用服务器连接请求、应用服务器发起连接断开、中间件连接应答、中间件发起连接断开、应用服务器传输请求、中间件传输应答中间件数据包,从而根据不同的类型的中间件数据包,分析中间件、应用服务器之间的连接情况、应答情况、传输情况,对中间件数据包进行状态排查,根据不同的状态信息可以判断是否存在异常,这样,在应用服务器侧既能确定发生异常,又能根据目标数据包的发送方和接收方定位发生问题的主体,例如,可能是中间件、应用服务器等,提高了复杂环境中问题定位的效率,缩短故障排查时间,提升服务的可用性。
本发明实施例还提供了一种电子设备,图6是本发明实施例提供的一种电子设备的结构框图,如图6所示,包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信,
存储器903,用于存放计算机程序;
处理器901,用于进行存储器903上所存放的程序时,实现如下步骤:
获取中间件数据包,所述中间件数据包用于实现所述应用服务器与中间件的交互;
解析所述中间件数据包的类型,以获取目标类型对应的目标数据包,所述目标类型包括应用服务器连接请求、应用服务器发起连接断开、中间件连接应答、中间件发起连接断开、应用服务器传输请求、中间件传输应答中的至少一种;
根据所述目标数据包的类型进行对应的状态排查操作,输出状态信息,所述状态信息包括正常连接、正常传输内容、异常传输内容、应用服务器问题、中间件问题中的至少一个。
可选地,所述根据所述目标数据包的类型进行对应的状态排查操作之前,该方法还包括:
对于类型为所述应用服务器连接请求的目标数据包,将所述目标数据包放入缓存;
所述根据所述目标数据包的类型进行对应的状态排查操作,输出状态信息,包括:
在获取到类型为所述中间件连接应答的目标数据包时,在所述缓存中的类型为所述应用服务器连接请求的目标数据包中,查询与所述类型为所述中间件连接应答的目标数据包对应的目标数据包;在成功查询到的情况下,输出所述状态信息为所述正常连接。
可选地,所述缓存中的所述目标数据包在所述中间件响应于所述目标数据包与所述应用服务器正常连接的情况下被清空;所述对于类型为所述应用服务器连接请求的目标数据包,将所述目标数据包放入缓存之后,所述根据所述目标数据包的类型进行对应的状态排查操作,输出状态信息,还包括:
遍历所述缓存中的所述目标数据包,在所述目标数据包的缓存时间大于或等于超时时间时,在所述缓存中删除所述目标数据包,并输出所述状态信息为所述中间件问题。
可选地,所述根据所述目标数据包的类型进行对应的状态排查操作,输出状态信息,包括:
在所述目标数据包的类型为所述应用服务器发起连接断开时,输出所述状态信息为所述应用服务器问题;
在所述目标数据包的类型为所述中间件发起连接断开时,输出所述状态信息为所述中间件问题。
可选地,所述根据所述目标数据包的类型进行对应的状态排查操作,输出状态信息,包括:
在所述目标数据包的类型为所述应用服务器传输请求时,确定所述目标数据包对应的请求次序;
在所述请求次序为首次请求,且所述目标数据包中包括全部的请求内容时,输出全部的所述请求内容为所述正常传输内容;
在所述请求次序为首次请求,且所述目标数据包中包括部分的请求内容时,将所述目标数据包的所述请求内容放入所述缓存;
在所述请求次序为非首次请求,且所述缓存中不存在所述应用服务器请求对应的所述请求内容时,输出所述状态信息为所述服务器问题,以及所述目标数据包的所述请求内容为所述异常传输内容;
在所述请求次序为结尾请求时,且所述缓存中存在所述应用服务器请求对应的所述请求内容时,输出所述缓存中所述应用服务器请求对应的所述请求内容,以及所述目标数据包的所述请求内容为所述正常传输内容。
可选地,所述根据所述目标数据包的类型进行对应的状态排查操作,输出状态信息,包括:
在所述目标数据包的类型为所述中间件传输应答时,确定所述目标数据包对应的应答次序;
在所述应答次序为首次应答,且所述目标数据包中包括全部的应答内容时,输出全部的所述应答内容为所述正常传输内容;
在所述应答次序为首次应答,且所述目标数据包中包括部分的应答内容时,将所述目标数据包的所述应答内容放入所述缓存;
在所述应答次序为非首次应答,且所述缓存中不存在所述中间件应答对应的所述应答内容时,输出所述状态信息为所述中间件问题,以及所述目标数据包的所述应答内容为所述异常传输内容;
在所述应答次序为结尾应答时,输出所述缓存中所述中间件应答对应的所述应答内容,以及所述目标数据包的所述应答内容为所述正常传输内容。
可选地,所述解析所述中间件数据包的类型,以获取目标类型对应的目标数据包,包括:
根据所述中间件数据包的协议格式,确定所述中间件数据包的类型;
根据所述中间件数据包的所述类型,获取所述目标类型对应的所述目标数据包。
可选地,所述获取中间件数据包,包括:
基于所述应用服务器中的操作系统层,获取所述应用服务器的交互数据;
基于所述交互数据,获取所述中间件数据包。
本发明实施例提供的电子设备,在应用服务器上获取中间件数据包,再解析中间件数据包的格式从中获取应用服务器连接请求、应用服务器连接断开、中间件连接应答、中间件连接断开、应用服务器传输请求、中间件传输应答等目标类型的数据包,根据数据包的类型进行对应的状态排查操作,从而输出正常连接、正常传输内容、异常传输内容、应用服务器问题、中间件问题等状态信息。在本发明实施中,通过捕捉应用服务器与中间件交互过程的数据流量,提取类型为应用服务器连接请求、应用服务器发起连接断开、中间件连接应答、中间件发起连接断开、应用服务器传输请求、中间件传输应答的中间件数据包,从而根据不同的类型的中间件数据包,分析中间件、应用服务器之间的连接情况、应答情况、传输情况,对中间件数据包进行状态排查,根据不同的状态信息可以判断是否存在异常,这样,在应用服务器侧既能确定发生异常,又能根据目标数据包的发送方和接收方定位发生问题的主体,例如,可能是中间件、应用服务器等,提高了复杂环境中问题定位的效率,缩短故障排查时间,提升服务的可用性。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机进行上述实施例中任一所述的中间件状态排查方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机进行上述实施例中任一所述的中间件状态排查方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和进行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制时,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种中间件状态排查方法,其特征在于,应用于应用服务器,所述方法包括:
获取中间件数据包,所述中间件数据包用于实现所述应用服务器与中间件的交互;
解析所述中间件数据包的类型,以获取目标类型对应的目标数据包,所述目标类型包括应用服务器连接请求、应用服务器发起连接断开、中间件连接应答、中间件发起连接断开、应用服务器传输请求、中间件传输应答中的至少一种;
对于类型为所述应用服务器连接请求的目标数据包,将所述目标数据包放入缓存;
根据所述目标数据包的类型进行对应的状态排查操作,输出状态信息,所述状态信息包括正常连接、正常传输内容、异常传输内容、应用服务器问题、中间件问题中的至少一个;其中,所述根据所述目标数据包的类型进行对应的状态排查操作,输出状态信息,包括:
在获取到类型为所述中间件连接应答的目标数据包时,在所述缓存中的类型为所述应用服务器连接请求的目标数据包中,查询与所述类型为所述中间件连接应答的目标数据包对应的目标数据包;在成功查询到的情况下,输出所述状态信息为所述正常连接。
2.根据权利要求1所述的方法,其特征在于,所述缓存中的所述目标数据包在所述中间件响应于所述目标数据包与所述应用服务器正常连接的情况下被清空;所述对于类型为所述应用服务器连接请求的目标数据包,将所述目标数据包放入缓存之后,所述根据所述目标数据包的类型进行对应的状态排查操作,输出状态信息,还包括:
遍历所述缓存中的所述目标数据包,在所述目标数据包的缓存时间大于或等于超时时间时,在所述缓存中删除所述目标数据包,并输出所述状态信息为所述中间件问题。
3.根据权利要求1所述的方法,其特征在于,所述根据所述目标数据包的类型进行对应的状态排查操作,输出状态信息,包括:
在所述目标数据包的类型为所述应用服务器发起连接断开时,输出所述状态信息为所述应用服务器问题;
在所述目标数据包的类型为所述中间件发起连接断开时,输出所述状态信息为所述中间件问题。
4.根据权利要求1所述的方法,其特征在于,所述根据所述目标数据包的类型进行对应的状态排查操作,输出状态信息,包括:
在所述目标数据包的类型为所述应用服务器传输请求时,确定所述目标数据包对应的请求次序;
在所述请求次序为首次请求,且所述目标数据包中包括全部的请求内容时,输出全部的所述请求内容为所述正常传输内容;
在所述请求次序为首次请求,且所述目标数据包中包括部分的请求内容时,将所述目标数据包的所述请求内容放入所述缓存;
在所述请求次序为非首次请求,且所述缓存中存在所述应用服务器请求对应的所述请求内容时,将所述目标数据包的所述请求内容放入所述缓存;
在所述请求次序为非首次请求,且所述缓存中不存在所述应用服务器请求对应的所述请求内容时,输出所述状态信息为所述服务器问题,以及所述目标数据包的所述请求内容为所述异常传输内容;
在所述请求次序为结尾请求时,且所述缓存中存在所述应用服务器请求对应的所述请求内容时,输出所述缓存中所述应用服务器请求对应的所述请求内容,以及所述目标数据包的所述请求内容为所述正常传输内容。
5.根据权利要求1所述的方法,其特征在于,所述根据所述目标数据包的类型进行对应的状态排查操作,输出状态信息,包括:
在所述目标数据包的类型为所述中间件传输应答时,确定所述目标数据包对应的应答次序;
在所述应答次序为首次应答,且所述目标数据包中包括全部的应答内容时,输出全部的所述应答内容为所述正常传输内容;
在所述应答次序为首次应答,且所述目标数据包中包括部分的应答内容时,将所述目标数据包的所述应答内容放入所述缓存;
在所述应答次序为非首次应答,且所述缓存中存在所述中间件应答对应的所述应答内容时,将所述目标数据包的所述应答内容放入所述缓存;
在所述应答次序为非首次应答,且所述缓存中不存在所述中间件应答对应的所述应答内容时,输出所述状态信息为所述中间件问题,以及所述目标数据包的所述应答内容为所述异常传输内容;
在所述应答次序为结尾应答时,输出所述缓存中所述中间件应答对应的所述应答内容,以及所述目标数据包的所述应答内容为所述正常传输内容。
6.根据权利要求1所述的方法,其特征在于,所述解析所述中间件数据包的类型,以获取目标类型对应的目标数据包,包括:
根据所述中间件数据包的协议格式,确定所述中间件数据包的类型;
根据所述中间件数据包的所述类型,获取所述目标类型对应的所述目标数据包。
7.根据权利要求1所述的方法,其特征在于,所述获取中间件数据包,包括:
基于所述应用服务器中的操作系统层,获取所述应用服务器的交互数据;
基于所述交互数据,获取所述中间件数据包。
8.一种中间件状态排查装置,其特征在于,应用于应用服务器,所述装置包括:
数据包获取模块,用于获取中间件数据包,所述中间件数据包用于实现所述应用服务器与中间件的交互;
数据包解析模块,用于解析所述中间件数据包的类型,以获取目标类型对应的目标数据包,所述目标类型包括应用服务器连接请求、应用服务器发起连接断开、中间件连接应答、中间件发起连接断开、应用服务器传输请求、中间件传输应答中的至少一种;
缓存模块,用于在根据所述目标数据包的类型进行对应的状态排查操作之前,对于类型为所述应用服务器连接请求的目标数据包,将所述目标数据包放入缓存;
状态排查模块,用于根据所述目标数据包的类型进行对应的状态排查操作,输出状态信息,所述状态信息包括正常连接、正常传输内容、异常传输内容、应用服务器问题、中间件问题中的至少一个;
其中,所述状态排查模块,还用于在获取到类型为所述中间件连接应答的目标数据包时,在所述缓存中的类型为所述应用服务器连接请求的目标数据包中,查询与所述类型为所述中间件连接应答的目标数据包对应的目标数据包;在成功查询到的情况下,输出所述状态信息为所述正常连接。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于进行存储器上所存放的程序时,实现权利要求1-7任一所述的中间件状态排查方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器进行时实现如权利要求1-7中任一所述的中间件状态排查方法。
CN202210688016.0A 2022-06-17 2022-06-17 中间件状态排查方法、装置、电子设备以及可读存储介质 Active CN115242618B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210688016.0A CN115242618B (zh) 2022-06-17 2022-06-17 中间件状态排查方法、装置、电子设备以及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210688016.0A CN115242618B (zh) 2022-06-17 2022-06-17 中间件状态排查方法、装置、电子设备以及可读存储介质

Publications (2)

Publication Number Publication Date
CN115242618A CN115242618A (zh) 2022-10-25
CN115242618B true CN115242618B (zh) 2024-01-30

Family

ID=83670014

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210688016.0A Active CN115242618B (zh) 2022-06-17 2022-06-17 中间件状态排查方法、装置、电子设备以及可读存储介质

Country Status (1)

Country Link
CN (1) CN115242618B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060003678A (ko) * 2004-07-07 2006-01-11 엘지전자 주식회사 LnCP 기반의 시스템 이벤트 처리 방법 및 장치
KR20070071473A (ko) * 2005-12-30 2007-07-04 한국생산기술연구원 모듈 기반 퍼스널 로봇의 폴트 톨러런트 지원을 위한네트워크 연결 유지 관리 시스템과 네트워크 연결 유지관리 방법 및 이를 기록한 기록매체
CN101605063A (zh) * 2008-06-10 2009-12-16 鸿富锦精密工业(深圳)有限公司 网络故障定位系统及方法
CN104253713A (zh) * 2013-06-25 2014-12-31 阿里巴巴集团控股有限公司 一种监控环境下存储、读取数据包的方法及对应的装置
CN104579836A (zh) * 2015-01-06 2015-04-29 浪潮电子信息产业股份有限公司 一种通过收发trap数据包监控存储服务器状态的方法
CN107633179A (zh) * 2017-08-03 2018-01-26 福建天晴数码有限公司 一种操作数据库的方法及系统
CN110620685A (zh) * 2019-09-04 2019-12-27 视联动力信息技术股份有限公司 一种上报设备异常的方法及装置
US10715315B1 (en) * 2020-03-19 2020-07-14 BigFork Technologies, LLC Secure management of content using a middleware layer between a client and a server
CN111641723A (zh) * 2020-06-03 2020-09-08 中国科学院自动化研究所 设备状态追踪方法及装置
CN112152823A (zh) * 2019-06-26 2020-12-29 北京易真学思教育科技有限公司 网站运行错误监控方法、装置及计算机存储介质
CN113360301A (zh) * 2021-07-02 2021-09-07 北京奇艺世纪科技有限公司 一种消息传输系统及方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9185054B2 (en) * 2010-09-15 2015-11-10 Oracle International Corporation System and method for providing zero buffer copying in a middleware machine environment
CN112333475A (zh) * 2020-10-29 2021-02-05 京东方科技集团股份有限公司 流媒体数据的处理方法、处理系统和存储服务器

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060003678A (ko) * 2004-07-07 2006-01-11 엘지전자 주식회사 LnCP 기반의 시스템 이벤트 처리 방법 및 장치
KR20070071473A (ko) * 2005-12-30 2007-07-04 한국생산기술연구원 모듈 기반 퍼스널 로봇의 폴트 톨러런트 지원을 위한네트워크 연결 유지 관리 시스템과 네트워크 연결 유지관리 방법 및 이를 기록한 기록매체
CN101605063A (zh) * 2008-06-10 2009-12-16 鸿富锦精密工业(深圳)有限公司 网络故障定位系统及方法
CN104253713A (zh) * 2013-06-25 2014-12-31 阿里巴巴集团控股有限公司 一种监控环境下存储、读取数据包的方法及对应的装置
CN104579836A (zh) * 2015-01-06 2015-04-29 浪潮电子信息产业股份有限公司 一种通过收发trap数据包监控存储服务器状态的方法
CN107633179A (zh) * 2017-08-03 2018-01-26 福建天晴数码有限公司 一种操作数据库的方法及系统
CN112152823A (zh) * 2019-06-26 2020-12-29 北京易真学思教育科技有限公司 网站运行错误监控方法、装置及计算机存储介质
CN110620685A (zh) * 2019-09-04 2019-12-27 视联动力信息技术股份有限公司 一种上报设备异常的方法及装置
US10715315B1 (en) * 2020-03-19 2020-07-14 BigFork Technologies, LLC Secure management of content using a middleware layer between a client and a server
CN111641723A (zh) * 2020-06-03 2020-09-08 中国科学院自动化研究所 设备状态追踪方法及装置
CN113360301A (zh) * 2021-07-02 2021-09-07 北京奇艺世纪科技有限公司 一种消息传输系统及方法

Also Published As

Publication number Publication date
CN115242618A (zh) 2022-10-25

Similar Documents

Publication Publication Date Title
US10931730B2 (en) Method and system for ISP network performance monitoring and fault detection
EP3318045B1 (en) Monitoring wireless access point events
CN113472607B (zh) 应用程序网络环境检测方法、装置、设备及存储介质
CN110740144B (zh) 确定攻击目标的方法、装置、设备及存储介质
US20210185072A1 (en) System and methods for automated computer security policy generation and anomaly detection
WO2020259551A1 (zh) 一种网络连接故障处理方法及装置
CN113360301B (zh) 一种消息传输系统及方法
CN110674028A (zh) 故障注入方法及其装置、业务服务系统
US20160140345A1 (en) Information processing device, filtering system, and filtering method
CN115242618B (zh) 中间件状态排查方法、装置、电子设备以及可读存储介质
CN112672363B (zh) 随流信息遥测能力的确认方法和设备
EP2747341B1 (en) Connecting computer management systems via cellular digital telecommunication networks
CN111064729A (zh) 报文的处理方法及装置、存储介质和电子装置
CN114826979B (zh) 网络链路质量获取方法、装置、系统、设备及存储介质
EP1662704A2 (en) Monitoring system, apparatus to be monitored, monitoring apparatus and monitoring method
JP5925287B1 (ja) 情報処理装置、方法およびプログラム
CN111385157B (zh) 一种服务器异常检测方法及装置
CN108880994B (zh) 一种重发邮件的方法和装置
CN117176839B (zh) 遥测报文传输方法、装置、通信设备及存储介质
CN111708689B (zh) 一种修改ab实验的方法、装置及电子设备
CN113326159B (zh) 用于故障注入的方法、装置、系统及计算机可读存储介质
CN110635946B (zh) 一种兼容多种网络协议的支持多端诊断的网络诊断系统及方法
CN112671822B (zh) 服务请求处理方法、装置、存储介质、服务器和系统
CN114598536B (zh) 一种云平台虚拟化数据流量安全监控方法、系统及存储介质
CN111131414B (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