CN109408310B - 服务器的调试方法、服务器及可读存储介质 - Google Patents
服务器的调试方法、服务器及可读存储介质 Download PDFInfo
- Publication number
- CN109408310B CN109408310B CN201811219605.4A CN201811219605A CN109408310B CN 109408310 B CN109408310 B CN 109408310B CN 201811219605 A CN201811219605 A CN 201811219605A CN 109408310 B CN109408310 B CN 109408310B
- Authority
- CN
- China
- Prior art keywords
- debugging
- node
- terminal
- instruction
- central node
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供的服务器的调试方法、服务器及可读存储介质,通过中心节点接收各终端发起的调试请求,所述调试请求中包括调试节点标识以及相应的调试指令;中心节点对各调试指令进行互斥性审核,并在审核通过后将所述各调试指令发送至相应的各所述调试节点;各所述调试节点根据接收到的各调试指令调用相应的脚本进行调试,并将调试状态通过所述中心节点同步发送至相应的终端,从而使调试人员通过终端即可实现对服务器中各节点的调试,而不必采用现有的依次访问各节点并手动输入指令的方式,进而有效提高对服务器的调试效率,降低人工成本。
Description
技术领域
本发明涉及计算机技术,尤其涉及一种服务器的调试方法、服务器及可读存储介质。
背景技术
随着移动互联网和游戏产业的不断发展,为游戏提供网络服务的服务器的构架也越来越复杂。
在现有技术中,为了支持多人同时在线游戏,一般会采用分服架构的服务器结构,即提供由若干计算机或终端设备组成的服务器,其中的每一计算机或终端设备均作为该服务器的节点,在各节点上运行着承载各功能系统的进程。为了保证各节点进程的顺利运行,在服务器的开发阶段,需要由调试人员对各节点的进程进行调试。
但是,在调试过程中,进程的调试需要调试人员手工执行,即调试人员通过SecureCRT程序访问服务器中的各个节点,并手动输入调试指令以对各个进程进行调试。当待调试的进程数量较多时,这样的调试方式明显无法满足调试需求,调试的效率也相对较低,如何提高调试效率成为重点问题。
发明内容
针对上述提及的现有的服务器的调试过程中,由于调试需要由调试人员人工利用程序访问服务器中的各节点,并手动输入相应的调试指令以实现对各节点中进程的调试,从而使得调试效率较低,人工成本较高的问题,本发明提供了一种服务器的调试方法、服务器及可读存储介质。
一方面,本发明提供了一种服务器的调试方法,包括:
中心节点接收各终端发起的调试请求,所述调试请求中包括调试节点标识以及相应的调试指令;
中心节点对各调试指令进行互斥性审核,并在审核通过后将所述各调试指令发送至相应的各所述调试节点;
各所述调试节点根据接收到的各调试指令调用相应的脚本进行调试,并将调试状态通过所述中心节点同步发送至相应的终端。
在其中一种可选的实施方式中,所述终端发起的调试请求还包括:终端标识;
所述中心节点对各调试指令进行互斥性审核之前,还包括:
所述中心节点根据预存的权限数据库和所述终端标识确定所述终端的调试权限;
当所述终端发起的调试指令与其调试权限匹配时,所述中心节点执行所述对各调试指令进行互斥性审核的步骤。
在其中一种可选的实施方式中,所述中心节点对各调试指令进行互斥性审核,并在审核通过后将所述各调试指令发送至相应的各所述调试节点,包括:
所述中心节点根据预设的指令互斥关系列表确定各调试指令是否允许同时执行;
当所述各调试指令允许同步执行时,则中心节点将所述各调试指令直接发送至相应的各所述调试节点;
当所述各调试指令不允许同步执行时,则中心节点将根据接收到各调试指令的顺序,将所述各调试指令依次发送至相应的调试节点,以供各相应的调试节点依次执行各调试指令。
在其中一种可选的实施方式中,所述调试节点根据接收到的各调试指令调用相应的脚本进行调试,包括:
所述调试节点根据接收到的调试指令的类型创建脚本调用命令,以调用并执行相应的脚本;
所述调试节点在完成执行所述脚本后,生成相应的日志内容并存储以供所述终端调取。
在其中一种可选的实施方式中,还包括:
各节点采集并存储其所承载进程的日志内容,并根据采集的日志时间对所述日志内容进行存储;
所述中心节点接收终端发起的日志监听请求,并在调试节点与所述终端之间建立网络连接端口,以供所述终端通过所述网络连接端口按照日志时间调取所述调试节点中存储的日志内容,并将所述日志内容展示给用户。
另一方面,本发明提供了一种服务器,其特征在于,包括:
中心节点用于接收各终端发起的调试请求,所述调试请求中包括调试节点标识以及相应的调试指令;
中心节点用于对各调试指令进行互斥性审核,并在审核通过后将所述各调试指令发送至相应的各所述调试节点;
各所述调试节点用于根据接收到的各调试指令调用相应的脚本进行调试,并将调试状态通过所述中心节点同步发送至相应的终端。
在其中一种可选的实施方式中,所述终端发起的调试请求还包括终端标识;
所述中心节点还用于在对各调试指令进行互斥性审核之前,根据预存的权限数据库和所述终端标识确定所述终端的调试权限;
当所述终端发起的调试指令与其调试权限匹配时,所述中心节点执行所述对各调试指令进行互斥性审核的步骤。
在其中一种可选的实施方式中,所述中心节点具体用于根据预设的指令互斥关系列表确定各调试指令是否允许同时执行;当所述各调试指令允许同步执行时,则中心节点将所述各调试指令直接发送至相应的各所述调试节点;当所述各调试指令不允许同步执行时,则中心节点将根据接收到各调试指令的顺序,将所述各调试指令依次发送至相应的调试节点,以供各相应的调试节点依次执行各调试指令。
在其中一种可选的实施方式中,所述调试节点具体用于根据接收到的调试指令的类型创建脚本调用命令,以调用并执行相应的脚本;所述调试节点在完成执行所述脚本后,生成相应的日志内容并存储以供所述终端调取。
在其中一种可选的实施方式中,各节点还用于采集并存储其所承载进程的日志内容,并根据采集的日志时间对所述日志内容进行存储;
所述中心节点接收终端发起的日志监听请求,并在调试节点与所述终端之间建立网络连接端口,以供所述终端通过所述网络连接端口按照日志时间调取所述调试节点中存储的日志内容,并将所述日志内容展示给用户。
再一方面,本发明还提供了一种服务器,包括:存储器、与所述存储器连接的处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如前任一项所述的方法。
最后一方面,本发明提供了一种可读存储介质,包括程序,当其在终端上运行时,使得终端执行如前任一项所述的方法。
本发明提供的服务器的调试方法、服务器及可读存储介质,通过中心节点接收各终端发起的调试请求,所述调试请求中包括调试节点标识以及相应的调试指令;中心节点对各调试指令进行互斥性审核,并在审核通过后将所述各调试指令发送至相应的各所述调试节点;各所述调试节点根据接收到的各调试指令调用相应的脚本进行调试,并将调试状态通过所述中心节点同步发送至相应的终端,从而使调试人员通过终端即可实现对服务器中各节点的调试,而不必采用现有的依次访问各节点并手动输入指令的方式,进而有效提高对服务器的调试效率,降低人工成本。
附图说明
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
图1为本发明基于的网络架构示意图;
图2为本发明实施例一提供的服务器的调试方法的流程示意图;
图3为本发明实施例二提供的服务器的调试方法的流程示意图;
图4为本发明实施例三提供的服务器的调试方法的流程示意图;
图5为本发明实施例四提供的一种服务器的硬件结构示意图。
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
随着移动互联网地不断发展,网络游戏特别是手游不断往大型方向发展,伴随着的就是网络游戏的服务器的架构也越来越复杂,目前大型网络游戏服务器因各功能系统的不断扩展和为了支持更多人同时在线时分摊负载压力,都会采用分服架构。也就是说,若干计算机或终端设备组成的服务器,其中的每一计算机或终端设备均作为该服务器的节点,在各节点上运行着承载各功能系统的进程。
一般的,这些进程通常都运行在Linux系统上的,在开发阶段,调试人员需要通过SecureCRT程序访问各节点的Linux系统,并手工输入调试指令以启动和调试相应的进程。当进程数量多时,这样的调试操作相当繁琐。因此,如何提高调试效率成为重点问题。
针对上述提及的由于调试需要由调试人员人工利用程序访问服务器中的各节点,并手动输入相应的调试指令以实现对各节点中进程的调试,从而使得调试效率较低,人工成本较高的问题,本发明提供了一种服务器的调试方法、服务器及可读存储介质。
需要说明的是,为了更好的解释本申请,图1为本发明所基于的网络架构的示意图,如图1所示,本发明提供的服务器的调试方法的执行主体具体可为服务器,其可部署在云端,依附于计算机硬件设备。具体来说,服务器包括有部署在开发机上的中心节点1以及部署在运行机上的一个以上的调试节点2,该中心节点1可与各调试节点2通过网络长连接进行数据交互。该服务器中的中心节点1可与用户的终端3建立网络长连接并进行数据交互,该用户的终端3具体可为向用户提供操作界面和显示界面的计算机硬件设备。
同时,为了实现通信交互,中心节点可以后台运行进程的方式部署在开发机上,开发机内还可设置一个用于监听服务器内所有调试节点的第一监听端口,以及设置一个用于监听所有终端连接的第二监听端口,该第一监听端口和第二监听端口均是通过固定的IP端口连接至中心节点的。
此外,需要说明的是,本发明中所有涉及的网络通信协议均采用TCP协议,TCP协议是一种面向连接的,可靠的基于字节流的通信协议,采用TCP协议进行通信连接可以保证所有连接建立后的长连接特性,有利于通信的稳定性,另外采用UDP、WebSocket等协议实现网络连接通信过程也符合本发明的执行过程。
图2为本发明实施例一提供的服务器的调试方法的流程示意图。如图2所示,该服务器的调试方法包括:
步骤101、中心节点接收各终端发起的调试请求,所述调试请求中包括调试节点标识以及相应的调试指令。
步骤102、中心节点对各调试指令进行互斥性审核,并在审核通过后将所述各调试指令发送至相应的各所述调试节点。
步骤103、各所述调试节点根据接收到的各调试指令调用相应的脚本进行调试,并将调试状态通过所述中心节点同步发送至相应的终端。
需要说明的是,本发明提供的服务器的调试方法的执行主体具体可为图1所示的服务器。具体来说,本发明提供了一种服务器的调试方法,在执行该调试方法之前,中心节点预先利用第一监听端口和第二监听端口对调试节点和终端进行监听。在终端上可预先运行调试程序,该调试程序为用户提供一操作界面,以供用户在该操作界面上进行相应的调试操作。在各调试节点中则配置有预设配置信息,以使每一调试节点可用于调试自己所在设备所承载的一个或多个进程,当然每一个进程仅支持唯一调试节点对其进行调试。此外,在各调试节点所在计算机设备上,还部署有代码环境,即脚本,以供调试节点调用。
在对服务器进行调试时,首先,中心节点通过第二监听端口监听并接收各终端发起的调试请求,所述调试请求中包括调试节点标识以及相应的调试指令;随后,中心节点对各调试指令进行互斥性审核,并在审核通过后将所述各调试指令发送至相应的各所述调试节点;最后,各所述调试节点根据接收到的各调试指令调用相应的脚本进行调试,并将调试状态通过所述中心节点同步发送至相应的终端。
具体来说,与现有技术中采用的手动输入调试指令的方式不同的是,为了实现对服务器的快速调试,通过在服务器中部署中心节点的方式以对各个终端发起的调试请求进行审核,从而保证调试的正常运行。换句话说,在采用手动输入调试指令的调试方式时,每一调试节点仅与被唯一终端访问,其所接收的调试指令相对单一,不会出现由于接收到多条调试指令而造成多个调试无法共存的情况。
而在本申请中,为了提高调试效率,采用了部署中心节点的方式以接收来自多个终端的调试请求,并将各调试请求发送至相应的调试节点,而在这一过程中,为了保证调试的正常运转,中心节点将对各调试指令进行互斥性审核。
具体来说,所述中心节点根据预设的指令互斥关系列表确定各调试指令是否允许同时执行;当所述各调试指令允许同步执行时,则中心节点将所述各调试指令直接发送至相应的各所述调试节点;当所述各调试指令不允许同步执行时,则中心节点将根据接收到各调试指令的顺序,将所述各调试指令依次发送至相应的调试节点,以供各相应的调试节点依次执行各调试指令。进一步来说,在本实施方式中,调试指令可包括多种类型,如对进程进行启动、关闭、编译代码、更新代码版本等。
而任意两个调试指令之间互斥关系将为下述关系中的其中一种:
全局不互斥关系,即全局共存,调试指令A与调试指令B在没有任何限制情况下可同时执行,比如调试指令A与调试指令B都是查看进程的指令,或者调试指令A与调试指令B都是调用进程日志的指令等。
部分互斥,即非同进程共存,即调试指令A与调试指令B不属于同一个进程上执行时属于共存关系,可以同时执行,在同一个进程上则不可以同时执行,属于互斥关系,比如调试指令A为开启进程,而调试指令B为关闭进程,当调试指令A和调试指令B同时发送至同一调试节点的同一进程上时,则无法同时指令;反之即可。
互斥关系,无论在什么情况下,调试指令A与调试指令B均不能同时执行,比如调试指令A是关闭所有进程的指令,调试指令B是开启所有进程的指令,则两个调试指令为互斥关系。
通过对调试指令进行审核,以将审核通过的调试指令发送至调试节点,并被执行,避免调试节点因执行互斥的调试指令而导致的调试异常,影响调试节点返回的调试状态的准确性。
此外,在对互斥性进行审核时,由于中心节点接收到的调试请求可能为异步的,即调试节点在已执行调试指令的情况下,中心节点再次接到对该调试节点的新增的调试指令。此时,中心节点需对该新增的调试指令与已存在的调试指令之间进行互斥性审核,并在审核通过后将新增的调试指令发送至调试节点;当审核不通过时,可拒绝执行并向该新增的调试指令发起的终端发送包括拒绝执行原因的反馈信息,也可采用依次执行该新增的调试指令的方式。
最后,各所述调试节点根据接收到的各调试指令调用相应的脚本进行调试,并将调试状态通过所述中心节点同步发送至相应的终端。具体来说,调试状态包括进程自身的状态,如运行、关闭、暂停等状态,还包括调试指令的执行状态,如待调试、进行中、调试结果以及失败原因等等。而调用相应的脚本具体可包括调试节点根据接收到的调试指令的类型创建脚本调用命令,以调用并执行相应的脚本;调试节点在完成执行所述脚本后,生成相应的日志内容并存储以供所述终端的后续调取。此外,调试节点还将自身的调试状态发送至中心节点,以供中心节点将调试状态转发至调试指令发起终端,用户可通过终端的显示界面获取相应的调试状态,进而完成对调试节点的远程调试和调试状态的获取,提高了调试效率。
在其他可选的实施方式中,为了避免遗落调试请求,中心节点还可建立请求列表,以存储接收到的全部调试请求的信息,该请求列表中仅存储未成功执行的调试请求,一旦调试请求被调试节点成功执行,中心节点将需将该调试请求的信息从请求列表中删除。
本发明实施例一提供的服务器的调试方法,通过中心节点接收各终端发起的调试请求,所述调试请求中包括调试节点标识以及相应的调试指令;中心节点对各调试指令进行互斥性审核,并在审核通过后将所述各调试指令发送至相应的各所述调试节点;各所述调试节点根据接收到的各调试指令调用相应的脚本进行调试,并将调试状态通过所述中心节点同步发送至相应的终端,从而使调试人员通过终端即可实现对服务器中各节点的调试,而不必采用现有的依次访问各节点并手动输入指令的方式,进而有效提高对服务器的调试效率,降低人工成本。
为了进一步提高服务器的调试正确性,避免不具备调试权限的终端对调试节点进行误操作而带来的调试异常,在前述任一实施方式的基础上,实施例二提供了一种服务器的调试方法。图3为本发明实施例二提供的服务器的调试方法的流程示意图,如图3所示,该方法包括:
步骤201、中心节点接收各终端发起的调试请求,所述调试请求中包括调试节点标识、终端标识以及相应的调试指令。
步骤202、所述中心节点根据预存的权限数据库和所述终端标识确定所述终端的调试权限。
步骤203、当所述终端发起的调试指令与其调试权限匹配时,中心节点对各调试指令进行互斥性审核,并在审核通过后将所述各调试指令发送至相应的各所述调试节点。
步骤204、各所述调试节点根据接收到的各调试指令调用相应的脚本进行调试,并将调试状态通过所述中心节点同步发送至相应的终端。
与实施例一类似的是,在本实施例中,中心节点预先利用第一监听端口和第二监听端口对调试节点和终端进行监听。在终端上可预先运行调试程序,该调试程序为用户提供一操作界面,以供用户在该操作界面上进行相应的调试操作。在各调试节点中则配置有预设配置信息,以使每一调试节点可用于调试自己所在设备所承载的一个或多个进程,当然每一个进程仅支持唯一调试节点对其进行调试。此外,在各调试节点所在计算机设备上,还部署有代码环境,即脚本,以供调试节点调用。
与实施例一不同的是,在本实施例中,中心节点通过第二监听端口监听并接收各终端发起的调试请求,所述调试请求中包括调试节点标识、终端标识以及相应的调试指令。
随后,中心节点将根据预存的权限数据库和所述终端标识确定所述终端的调试权限。其中的权限数据库是预先存储在中心节点中的,该权限数据库中包括有终端标识和相应的调试权限,该调试权限与调试指令的重要性成正比,即终端的调试权限越大,终端可向调试节点发起更为重要的调试指令。而调试指令的重要性可依据实际情况而定,如查看指令的重要性要小于启动指令或关闭指令,而启动指令或关闭指令的重要性则小于代码更新指令的重要性。
通过中心节点根据预存的权限数据库和所述终端标识确定所述终端的调试权限,以使仅在终端发起的调试指令与其调试权限匹配时,中心节点对各调试指令进行互斥性审核,并在审核通过后将所述各调试指令发送至相应的各所述调试节点。
随后,与实施例一类似的是,中心节点对各调试指令进行互斥性审核,并在审核通过后将所述各调试指令发送至相应的各所述调试节点;最后,各所述调试节点根据接收到的各调试指令调用相应的脚本进行调试,并将调试状态通过所述中心节点同步发送至相应的终端。
具体来说,所述中心节点根据预设的指令互斥关系列表确定各调试指令是否允许同时执行;当所述各调试指令允许同步执行时,则中心节点将所述各调试指令直接发送至相应的各所述调试节点;当所述各调试指令不允许同步执行时,则中心节点将根据接收到各调试指令的顺序,将所述各调试指令依次发送至相应的调试节点,以供各相应的调试节点依次执行各调试指令。进一步来说,在本实施方式中,调试指令可包括多种类型,如对进程进行启动、关闭、编译代码、更新代码版本等。
而任意两个调试指令之间互斥关系将为下述关系中的其中一种:
全局不互斥关系,即全局共存,调试指令A与调试指令B在没有任何限制情况下可同时执行,比如调试指令A与调试指令B都是查看进程的指令,或者调试指令A与调试指令B都是调用进程日志的指令等。
部分互斥,即非同进程共存,即调试指令A与调试指令B不属于同一个进程上执行时属于共存关系,可以同时执行,在同一个进程上则不可以同时执行,属于互斥关系,比如调试指令A为开启进程,而调试指令B为关闭进程,当调试指令A和调试指令B同时发送至同一调试节点的同一进程上时,则无法同时指令;反之即可。
互斥关系,无论在什么情况下,调试指令A与调试指令B均不能同时执行,比如调试指令A是关闭所有进程的指令,调试指令B是开启所有进程的指令,则两个调试指令为互斥关系。
通过对调试指令进行审核,以将审核通过的调试指令发送至调试节点,并被执行,避免调试节点因执行互斥的调试指令而导致的调试异常,影响调试节点返回的调试状态的准确性。
此外,在对互斥性进行审核时,由于中心节点接收到的调试请求可能为异步的,即调试节点在已执行调试指令的情况下,中心节点再次接到对该调试节点的新增的调试指令。此时,中心节点需对该新增的调试指令与已存在的调试指令之间进行互斥性审核,并在审核通过后将新增的调试指令发送至调试节点;当审核不通过时,可拒绝执行并向该新增的调试指令发起的终端发送包括拒绝执行原因的反馈信息,也可采用依次执行该新增的调试指令的方式。
最后,各所述调试节点根据接收到的各调试指令调用相应的脚本进行调试,并将调试状态通过所述中心节点同步发送至相应的终端。具体来说,调试状态包括进程自身的状态,如运行、关闭、暂停等状态,还包括调试指令的执行状态,如待调试、进行中、调试结果以及失败原因等等。而调用相应的脚本具体可包括调试节点根据接收到的调试指令的类型创建脚本调用命令,以调用并执行相应的脚本;调试节点在完成执行所述脚本后,生成相应的日志内容并存储以供所述终端的后续调取。此外,调试节点还将自身的调试状态发送至中心节点,以供中心节点将调试状态转发至调试指令发起终端,用户可通过终端的显示界面获取相应的调试状态,进而完成对调试节点的远程调试和调试状态的获取,提高了调试效率。
在其他可选的实施方式中,为了避免遗落调试请求,中心节点还可建立请求列表,以存储接收到的全部调试请求的信息,该请求列表中仅存储未成功执行的调试请求,一旦调试请求被调试节点成功执行,中心节点将需将该调试请求的信息从请求列表中删除。
本发明实施例二提供的服务器的调试方法,通过对终端的调试权限进行验证,从而避免不具备调试权限的终端对调试节点进行误操作而带来的调试异常。
为了进一步便于终端获取调试过程中的日志信息,在前述任一实施方式的基础上,实施例三提供了一种服务器的调试方法。图4为本发明实施例三提供的服务器的调试方法的流程示意图,如图4所示,该方法包括:
步骤301、中心节点接收各终端发起的调试请求,所述调试请求中包括调试节点标识以及相应的调试指令。
步骤302、中心节点对各调试指令进行互斥性审核,并在审核通过后将所述各调试指令发送至相应的各所述调试节点。
步骤303、各所述调试节点根据接收到的各调试指令调用相应的脚本进行调试,并将调试状态通过所述中心节点同步发送至相应的终端。
步骤304、各调试节点采集并存储其所承载进程的日志内容,并根据采集的日志时间对所述日志内容进行存储。
步骤305、所述中心节点接收终端发起的日志监听请求,并在调试节点与所述终端之间建立网络连接端口,以供所述终端通过所述网络连接端口按照日志时间调取所述调试节点中存储的日志内容,并将所述日志内容展示给用户。
与前述实施例类似的是,在本实施例中,中心节点预先利用第一监听端口和第二监听端口对调试节点和终端进行监听。在终端上可预先运行调试程序,该调试程序为用户提供一操作界面,以供用户在该操作界面上进行相应的调试操作。在各调试节点中则配置有预设配置信息,以使每一调试节点可用于调试自己所在设备所承载的一个或多个进程,当然每一个进程仅支持唯一调试节点对其进行调试。此外,在各调试节点所在计算机设备上,还部署有代码环境,即脚本,以供调试节点调用。
与实施例一类似的是,在本实施例中,中心节点通过第二监听端口监听并接收各终端发起的调试请求,所述调试请求中包括调试节点标识、终端标识以及相应的调试指令。
随后,中心节点将根据预存的权限数据库和所述终端标识确定所述终端的调试权限。其中的权限数据库是预先存储在中心节点中的,该权限数据库中包括有终端标识和相应的调试权限,该调试权限与调试指令的重要性成正比,即终端的调试权限越大,终端可向调试节点发起更为重要的调试指令。而调试指令的重要性可依据实际情况而定,如查看指令的重要性要小于启动指令或关闭指令,而启动指令或关闭指令的重要性则小于代码更新指令的重要性。
通过中心节点根据预存的权限数据库和所述终端标识确定所述终端的调试权限,以使仅在终端发起的调试指令与其调试权限匹配时,中心节点对各调试指令进行互斥性审核,并在审核通过后将所述各调试指令发送至相应的各所述调试节点。
随后,与前述实施例类似的是,中心节点对各调试指令进行互斥性审核,并在审核通过后将所述各调试指令发送至相应的各所述调试节点;最后,各所述调试节点根据接收到的各调试指令调用相应的脚本进行调试,并将调试状态通过所述中心节点同步发送至相应的终端。
具体来说,所述中心节点根据预设的指令互斥关系列表确定各调试指令是否允许同时执行;当所述各调试指令允许同步执行时,则中心节点将所述各调试指令直接发送至相应的各所述调试节点;当所述各调试指令不允许同步执行时,则中心节点将根据接收到各调试指令的顺序,将所述各调试指令依次发送至相应的调试节点,以供各相应的调试节点依次执行各调试指令。进一步来说,在本实施方式中,调试指令可包括多种类型,如对进程进行启动、关闭、编译代码、更新代码版本等。
而任意两个调试指令之间互斥关系将为下述关系中的其中一种:
全局不互斥关系,即全局共存,调试指令A与调试指令B在没有任何限制情况下可同时执行,比如调试指令A与调试指令B都是查看进程的指令,或者调试指令A与调试指令B都是调用进程日志的指令等。
部分互斥,即非同进程共存,即调试指令A与调试指令B不属于同一个进程上执行时属于共存关系,可以同时执行,在同一个进程上则不可以同时执行,属于互斥关系,比如调试指令A为开启进程,而调试指令B为关闭进程,当调试指令A和调试指令B同时发送至同一调试节点的同一进程上时,则无法同时指令;反之即可。
互斥关系,无论在什么情况下,调试指令A与调试指令B均不能同时执行,比如调试指令A是关闭所有进程的指令,调试指令B是开启所有进程的指令,则两个调试指令为互斥关系。
通过对调试指令进行审核,以将审核通过的调试指令发送至调试节点,并被执行,避免调试节点因执行互斥的调试指令而导致的调试异常,影响调试节点返回的调试状态的准确性。
此外,在对互斥性进行审核时,由于中心节点接收到的调试请求可能为异步的,即调试节点在已执行调试指令的情况下,中心节点再次接到对该调试节点的新增的调试指令。此时,中心节点需对该新增的调试指令与已存在的调试指令之间进行互斥性审核,并在审核通过后将新增的调试指令发送至调试节点;当审核不通过时,可拒绝执行并向该新增的调试指令发起的终端发送包括拒绝执行原因的反馈信息,也可采用依次执行该新增的调试指令的方式。
各所述调试节点根据接收到的各调试指令调用相应的脚本进行调试,并将调试状态通过所述中心节点同步发送至相应的终端。具体来说,调试状态包括进程自身的状态,如运行、关闭、暂停等状态,还包括调试指令的执行状态,如待调试、进行中、调试结果以及失败原因等等。而调用相应的脚本具体可包括调试节点根据接收到的调试指令的类型创建脚本调用命令,以调用并执行相应的脚本;调试节点在完成执行所述脚本后,生成相应的日志内容并存储以供所述终端的后续调取。此外,调试节点还将自身的调试状态发送至中心节点,以供中心节点将调试状态转发至调试指令发起终端,用户可通过终端的显示界面获取相应的调试状态,进而完成对调试节点的远程调试和调试状态的获取,提高了调试效率。
与前述实施方式不同的是,在本实施例中各调试节点采集并存储其所承载进程的日志内容,并根据采集的日志时间对所述日志内容进行存储。所述中心节点接收终端发起的日志监听请求,并在调试节点与所述终端之间建立网络连接端口,以供所述终端通过所述网络连接端口按照日志时间调取所述调试节点中存储的日志内容,并将所述日志内容展示给用户。具体来说,调试节点可实时采集进程的日志信息,该日志信息包括日志的生成时间与日志内容,在完成采集之后,调试节点通过分段数组对其进行保存,即将同一以秒为最小单位的时间戳的日志内容按收集顺序保存在同一段的数组内,不同时间戳的日志内容保存在不同段的数组中,前后两段数组段对应的时间戳相差为1,调试节点可记录一个当前保存日志中时间最早的时间戳Time,分段数组中第一段的日志内容对应的就是Time的时间,下一段的数组中日志内容的对应时间戳就是Time+1,以此类推,只须知道某个日志产出的时间戳,就可以快速定位日志所在的数组段,某个数组段的时间也可以快速计算出对应的时间戳。此外,调试节点中只保留一定数量上限的日志内容,当数量达到上限后,调试节点会对最早的日志进行清理,从分段数组头中将数组头的日志不断清理掉,直到日志总量低于上限,同时Time也更新至与当前分段数组头时间一致的时间戳。
在本实施方式中,中心节点可接收终端发起的日志监听请求,中心节点将根据该日志监听请求建立终端与调试节点之间的网络连接端口,以供其二者交互。可选的,在建立网络连接端口的过程中,中心节点可根据接收到的日志监听请求生成验证码,并将该验证码分别发送至终端和调试节点,以供二者利用该验证码创建连接并校验。此外,在日志监听请求中应包括有进程的信息,以便调试节点将相应进程的日志内容发送至终端,并在终端的显示界面上展示。此外,调试节点默认只发送收集到的新增日志给终端,如果用户需要查询与调试节点创建连接前已收集的日志,则可以通过终端主动通过发送要查询日志的时间段始末的时间戳到调试节点,以供调试节点利用请求的时间段在存储日志的分组数组中索引相应日志,并发送给终端。
可选的,用户可以通过终端关闭已进行中的进程日志的监听,即,终端与调试节点之间的网络连接断开,调试节点不在向终端发送日志内容。
在其他可选的实施方式中,为了避免遗落调试请求,中心节点还可建立请求列表,以存储接收到的全部调试请求的信息,该请求列表中仅存储未成功执行的调试请求,一旦调试请求被调试节点成功执行,中心节点将需将该调试请求的信息从请求列表中删除。
本发明实施例三提供的服务器的调试方法,通过接收终端的日志监听请求,从而为终端提供调试的日志查询服务,便于用户对调试的管理。
图5为本发明实施例四提供的一种服务器的硬件结构示意图,如图5所示,该服务器包括:处理器42及存储在存储器41上并可在处理器42上运行的计算机程序,处理器42运行计算机程序时执行上述实施例一至三所述的方法。
另一方面,本发明提供了一种服务器,包括:
中心节点用于接收各终端发起的调试请求,所述调试请求中包括调试节点标识以及相应的调试指令;
中心节点用于对各调试指令进行互斥性审核,并在审核通过后将所述各调试指令发送至相应的各所述调试节点;
各所述调试节点用于根据接收到的各调试指令调用相应的脚本进行调试,并将调试状态通过所述中心节点同步发送至相应的终端。
在其中一种可选的实施方式中,所述终端发起的调试请求还包括终端标识;
所述中心节点还用于在对各调试指令进行互斥性审核之前,根据预存的权限数据库和所述终端标识确定所述终端的调试权限;
当所述终端发起的调试指令与其调试权限匹配时,所述中心节点执行所述对各调试指令进行互斥性审核的步骤。
在其中一种可选的实施方式中,所述中心节点具体用于根据预设的指令互斥关系列表确定各调试指令是否允许同时执行;当所述各调试指令允许同步执行时,则中心节点将所述各调试指令直接发送至相应的各所述调试节点;当所述各调试指令不允许同步执行时,则中心节点将根据接收到各调试指令的顺序,将所述各调试指令依次发送至相应的调试节点,以供各相应的调试节点依次执行各调试指令。
在其中一种可选的实施方式中,所述调试节点具体用于根据接收到的调试指令的类型创建脚本调用命令,以调用并执行相应的脚本;所述调试节点在完成执行所述脚本后,生成相应的日志内容并存储以供所述终端调取。
在其中一种可选的实施方式中,各节点还用于采集并存储其所承载进程的日志内容,并根据采集的日志时间对所述日志内容进行存储;
所述中心节点接收终端发起的日志监听请求,并在调试节点与所述终端之间建立网络连接端口,以供所述终端通过所述网络连接端口按照日志时间调取所述调试节点中存储的日志内容,并将所述日志内容展示给用户。
所述领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程以及相应的有益效果,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明提供的服务器,通过中心节点接收各终端发起的调试请求,所述调试请求中包括调试节点标识以及相应的调试指令;中心节点对各调试指令进行互斥性审核,并在审核通过后将所述各调试指令发送至相应的各所述调试节点;各所述调试节点根据接收到的各调试指令调用相应的脚本进行调试,并将调试状态通过所述中心节点同步发送至相应的终端,从而使调试人员通过终端即可实现对服务器中各节点的调试,而不必采用现有的依次访问各节点并手动输入指令的方式,进而有效提高对服务器的调试效率,降低人工成本。
本发明提供了一种可读存储介质,包括程序,当其在终端上运行时,使得终端执行上述实施例一至三所述的方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种服务器的调试方法,其特征在于,包括:
中心节点接收各终端发起的调试请求,所述调试请求中包括调试节点标识以及相应的调试指令,所述终端发起的调试请求还包括终端标识;
所述中心节点根据预存的权限数据库和所述终端标识确定所述终端的调试权限;
当所述终端发起的调试指令与其调试权限匹配时,所述中心节点对各调试指令进行互斥性审核,并在审核通过后将所述各调试指令发送至相应的各所述调试节点;
各所述调试节点根据接收到的各调试指令调用相应的脚本进行调试,并将调试状态通过所述中心节点同步发送至相应的终端。
2.根据权利要求1所述的服务器的调试方法,其特征在于,所述中心节点对各调试指令进行互斥性审核,并在审核通过后将所述各调试指令发送至相应的各所述调试节点,包括:
所述中心节点根据预设的指令互斥关系列表确定各调试指令是否允许同时执行;
当所述各调试指令允许同步执行时,则中心节点将所述各调试指令直接发送至相应的各所述调试节点;
当所述各调试指令不允许同步执行时,则中心节点将根据接收到各调试指令的顺序,将所述各调试指令依次发送至相应的调试节点,以供各相应的调试节点依次执行各调试指令。
3.根据权利要求1所述的服务器的调试方法,其特征在于,所述调试节点根据接收到的各调试指令调用相应的脚本进行调试,包括:
所述调试节点根据接收到的调试指令的类型创建脚本调用命令,以调用并执行相应的脚本;
所述调试节点在完成执行所述脚本后,生成相应的日志内容并存储以供所述终端调取。
4.根据权利要求1-3任一项所述的服务器的调试方法,其特征在于,还包括:
各调试节点采集并存储其所承载进程的日志内容,并根据采集的日志时间对所述日志内容进行存储;
所述中心节点接收终端发起的日志监听请求,并在调试节点与所述终端之间建立网络连接端口,以供所述终端通过所述网络连接端口按照日志时间调取所述调试节点中存储的日志内容,并将所述日志内容展示给用户。
5.一种服务器,其特征在于,包括:
中心节点用于接收各终端发起的调试请求,所述调试请求中包括调试节点标识以及相应的调试指令,所述终端发起的调试请求还包括终端标识;
所述中心节点用于在对各调试指令进行互斥性审核之前,根据预存的权限数据库和所述终端标识确定所述终端的调试权限;
所述中心节点用于当所述终端发起的调试指令与其调试权限匹配时,对各调试指令进行互斥性审核,并在审核通过后将所述各调试指令发送至相应的各所述调试节点;
各所述调试节点用于根据接收到的各调试指令调用相应的脚本进行调试,并将调试状态通过所述中心节点同步发送至相应的终端。
6.根据权利要求5所述的服务器,其特征在于,所述中心节点具体用于根据预设的指令互斥关系列表确定各调试指令是否允许同时执行;当所述各调试指令允许同步执行时,则中心节点将所述各调试指令直接发送至相应的各所述调试节点;当所述各调试指令不允许同步执行时,则中心节点将根据接收到各调试指令的顺序,将所述各调试指令依次发送至相应的调试节点,以供各相应的调试节点依次执行各调试指令。
7.根据权利要求5所述的服务器,其特征在于,所述调试节点具体用于根据接收到的调试指令的类型创建脚本调用命令,以调用并执行相应的脚本;所述调试节点在完成执行所述脚本后,生成相应的日志内容并存储以供所述终端调取。
8.根据权利要求5-7任一项所述的服务器,其特征在于,各调试节点还用于采集并存储其所承载进程的日志内容,并根据采集的日志时间对所述日志内容进行存储;
所述中心节点接收终端发起的日志监听请求,并在调试节点与所述终端之间建立网络连接端口,以供所述终端通过所述网络连接端口按照日志时间调取所述调试节点中存储的日志内容,并将所述日志内容展示给用户。
9.一种服务器,其特征在于,包括:存储器、与所述存储器连接的处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,
所述处理器运行所述计算机程序时执行权利要求1-4任一项所述的方法。
10.一种可读存储介质,其特征在于,包括程序,当其在终端上运行时,使得终端执行权利要求1-4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811219605.4A CN109408310B (zh) | 2018-10-19 | 2018-10-19 | 服务器的调试方法、服务器及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811219605.4A CN109408310B (zh) | 2018-10-19 | 2018-10-19 | 服务器的调试方法、服务器及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109408310A CN109408310A (zh) | 2019-03-01 |
CN109408310B true CN109408310B (zh) | 2022-02-18 |
Family
ID=65467774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811219605.4A Active CN109408310B (zh) | 2018-10-19 | 2018-10-19 | 服务器的调试方法、服务器及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109408310B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918305A (zh) * | 2019-03-07 | 2019-06-21 | 北京奇艺世纪科技有限公司 | 一种线上服务监控系统及方法 |
CN110942821B (zh) * | 2019-11-27 | 2023-08-25 | 兰州大学第一医院 | 医学检测设备的调试方法及系统 |
CN111866083A (zh) * | 2020-06-23 | 2020-10-30 | 北京三快在线科技有限公司 | 设备调试系统、方法、待调试设备、远程调试设备及中转服务器 |
CN113760706B (zh) * | 2020-09-17 | 2024-05-17 | 北京沃东天骏信息技术有限公司 | 网页调试方法及装置 |
CN115314541A (zh) * | 2022-10-12 | 2022-11-08 | 阿里巴巴(中国)有限公司 | 远程调试方法、通信系统、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103973741A (zh) * | 2013-01-31 | 2014-08-06 | 国际商业机器公司 | 用于在云系统中进行远程调试的方法和装置 |
CN104935639A (zh) * | 2015-05-06 | 2015-09-23 | 上海斐讯数据通信技术有限公司 | 一种智能终端及其应用的分布式开发系统及方法 |
CN104935482A (zh) * | 2015-06-26 | 2015-09-23 | 曙光信息产业(北京)有限公司 | 分布式监控系统及方法 |
CN106980572A (zh) * | 2016-01-19 | 2017-07-25 | 阿里巴巴集团控股有限公司 | 分布式系统的在线调试方法和系统 |
CN107818043A (zh) * | 2016-09-13 | 2018-03-20 | 东华软件股份公司 | 用于程序调试的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080015110A (ko) * | 2005-06-22 | 2008-02-18 | 닛본 덴끼 가부시끼가이샤 | 디버그 시스템, 디버그 방법, 및 프로그램 |
-
2018
- 2018-10-19 CN CN201811219605.4A patent/CN109408310B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103973741A (zh) * | 2013-01-31 | 2014-08-06 | 国际商业机器公司 | 用于在云系统中进行远程调试的方法和装置 |
CN104935639A (zh) * | 2015-05-06 | 2015-09-23 | 上海斐讯数据通信技术有限公司 | 一种智能终端及其应用的分布式开发系统及方法 |
CN104935482A (zh) * | 2015-06-26 | 2015-09-23 | 曙光信息产业(北京)有限公司 | 分布式监控系统及方法 |
CN106980572A (zh) * | 2016-01-19 | 2017-07-25 | 阿里巴巴集团控股有限公司 | 分布式系统的在线调试方法和系统 |
CN107818043A (zh) * | 2016-09-13 | 2018-03-20 | 东华软件股份公司 | 用于程序调试的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109408310A (zh) | 2019-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109408310B (zh) | 服务器的调试方法、服务器及可读存储介质 | |
US11775416B2 (en) | System and method for continuous testing and delivery of software | |
CN107343034B (zh) | 基于QConf的Redis高可用系统及方法 | |
CN109361562B (zh) | 一种基于关联网络设备接入的自动化测试方法 | |
CN107241315B (zh) | 银行网关接口的接入方法、装置及计算机可读存储介质 | |
US10616039B2 (en) | System and method for remote maintenance | |
CN106878045B (zh) | 业务调用方法及装置 | |
CN106911648B (zh) | 一种环境隔离方法及设备 | |
CN108108296B (zh) | 一种云测试方法、服务器及客户端 | |
CN111324599B (zh) | 一种区块链实验系统及管理方法 | |
CN109462507B (zh) | 配置更新方法、装置、系统及电子设备 | |
CN110221845A (zh) | 应用部署方法、装置、设备和介质 | |
CN111831567B (zh) | 应用的测试环境配置方法、装置、系统和介质 | |
CN110377703A (zh) | 报错信息处理方法、装置和设备 | |
CN104899134A (zh) | 域名注册服务器自动化测试系统和方法 | |
CN111934953A (zh) | 基于国产处理器计算机平台的批量测试方法 | |
CN111694734A (zh) | 软件接口校验方法、装置及计算机设备 | |
CN115705190A (zh) | 依赖程度的确定方法及装置 | |
CN110928787B (zh) | 自动化测试脚本录制回放方法、装置、设备和存储介质 | |
US8055944B2 (en) | Customization and reuse of logged agent activity during remote take over help session | |
CN115220992A (zh) | 接口变更监控方法、装置、计算机设备和存储介质 | |
CN114095343A (zh) | 基于双活系统的容灾方法、装置、设备及存储介质 | |
CN112650666B (zh) | 一种软件测试系统、方法、装置、控制设备及存储介质 | |
CN112965910A (zh) | 自动化回归测试方法、装置、电子设备、存储介质 | |
WO2023047450A1 (ja) | ネットワーク管理装置、ネットワーク管理方法およびネットワーク管理システム |
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 |