一种Java进程保护的方法与装置与流程

文档序号:11250741阅读:482来源:国知局
一种Java进程保护的方法与装置与流程

本发明涉及java技术领域,特别是涉及一种java进程保护的方法与装置。



背景技术:

java作为一种跨平台,适合于分布式计算环境的面向对象编程语言。具有简单性、面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高性能、多线程、动态性等特点,备受开发者喜爱,成为最受欢迎的开发语言之一。我们接触的很多应用程序都是java撰写的,java进程的良好运行是保障业务系统连续性的重中之重。

传统方式中,可以采用集群技术,对java进程进行保护。集群是一组相互独立的、通过高速网络互联的服务器,它们构成了一个组,并以单一系统的模式加以管理,对位提供访问,在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益。

集群方案指的是通过2台以上的服务器组成集群,统一管理,对外提供访问。例如采用3台服务器组成一个集群,对于用户而言,这3台服务器相当于一个业务系统。当其中一台机器的java进程失败,通过一定的负载均衡策略有其它2台正常的服务器接管失败服务器的业务,这样对客户来说是透明的,故客户感觉不到业务系统变化,但失败服务需要任务恢复相关进程。采用集群技术不仅增加了系统开销,并且也不具备对java进程失败的自动恢复功能。

可见,如何实现java进程失败的自动恢复,是本领域技术人员亟待解决的问题。



技术实现要素:

本发明实施例的目的是提供一种java进程保护的方法与装置,可以实现java进程失败的自动恢复。

为解决上述技术问题,本发明实施例提供一种java进程保护的方法,包括:

利用java标准接口与java进程建立通信连接;

依据预先设置的时间周期,定时向所述java进程发送确认消息,并记录所述确认消息的发送时间;

接收所述java进程发送的反馈消息,并记录接收到所述反馈消息的接收时间;所述反馈消息中携带有所述java进程的进程标志信息;

依据所述发送时间、所述接收时间以及所述进程标志信息,判断所述java进程是否出现异常;

若是,则从预先存储的对应关系列表中,查找与所述java进程对应的进程重启指令,并利用所述进程重启指令重新启动所述java进程。

可选的,所述依据所述发送时间、所述接收时间以及所述进程标志信息,判断所述java进程是否出现异常包括:

计算所述发送时间与所述接收时间的差值,并判断所述差值是否超过预设阈值;

若是,则从预先存储的对应关系列表中,查找与所述java进程对应的进程重启指令,并利用所述进程重启指令重新启动所述java进程;

若否,则依据预先存储的对应关系列表,判断所述进程标志信息是否正确;

当所述进程标志信息不正确,则从预先存储的对应关系列表中,查找与所述java进程对应的进程重启指令,并利用所述进程重启指令重新启动所述java进程。

可选的,还包括:

当判断出所述java进程出现异常时,则向预先存储的邮箱地址发送告警信息。

可选的,所述java进程的进程标志信息包括进程关键字、进程端口和进程运行日志。

本发明实施例还提供了一种java进程保护的装置,包括连接单元、发送单元、接收单元、判断单元和处理单元:

所述连接单元,用于利用java标准接口与java进程建立通信连接;

所述发送单元,用于依据预先设置的时间周期,定时向所述java进程发送确认消息,并记录所述确认消息的发送时间;

所述接收单元,用于接收所述java进程发送的反馈消息,并记录接收到所述反馈消息的接收时间;所述反馈消息中携带有所述java进程的进程标志信息;

所述判断单元,用于依据所述发送时间、所述接收时间以及所述进程标志信息,判断所述java进程是否出现异常;

若是,则触发所述处理单元,所述处理单元,用于从预先存储的对应关系列表中,查找与所述java进程对应的进程重启指令,并利用所述进程重启指令重新启动所述java进程。

可选的,所述判断单元具体用于计算所述发送时间与所述接收时间的差值,并判断所述差值是否超过预设阈值;

若是,则触发所述处理单元;

若否,则所述判断单元还用于依据预先存储的对应关系列表,判断所述进程标志信息是否正确;

当所述进程标志信息不正确,则触发所述处理单元。

可选的,还包括告警单元:

当所述判断单元判断出所述java进程出现异常时,则触发所述告警单元,所述告警单元,用于向预先存储的邮箱地址发送告警信息。

可选的,所述java进程的进程标志信息包括进程关键字、进程端口和进程运行日志。

由上述技术方案可以看出,通过java标准接口可以与java进程建立通信连接;依据预先设置的时间周期,定时向所述java进程发送确认消息,并记录所述确认消息的发送时间;接收所述java进程发送的反馈消息,并记录接收到所述反馈消息的接收时间;所述反馈消息中携带有所述java进程的进程标志信息;依据所述发送时间、所述接收时间以及所述进程标志信息,可以对所述java进程的运行情况进行判断,当所述java进程出现异常时,则从预先存储的对应关系列表中,查找与所述java进程对应的进程重启指令,并利用所述进程重启指令重新启动所述java进程。可见,通过对java进程的监测,可以及时发现java进程的异常情况,通过重启进程的方式实现java进程失败的自动恢复,从而保护java进程的正常运行。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种java进程保护的方法的流程图;

图2为本发明实施例提供的一种java进程保护的装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

接下来,详细介绍本发明实施例所提供的一种java进程保护的方法。图1为本发明实施例提供的一种java进程保护的方法的流程图,包括:

s101:利用java标准接口与java进程建立通信连接。

s102:依据预先设置的时间周期,定时向所述java进程发送确认消息,并记录所述确认消息的发送时间。

在本发明实施例中,可以利用保护进程,对所需保护的java进程进行检测,在具体实现中,可以利用java标准接口在保护进程与java进程之间建立通信连接,实现消息的传输,以便于保护进程可以了解到java进程的运行情况。

确认消息可以是保护进程向java进程发送的一种检测信息,用于触发该java进程向保护进程发送相应的反馈消息。

s103:接收所述java进程发送的反馈消息,并记录接收到所述反馈消息的接收时间。

在反馈消息中可以携带有所述java进程的进程标志信息。进程标志信息可以用于表示java进程的运行情况,其中该进程标志信息可以包含有进程关键字、进程端口和进程运行日志等内容。为了更加准确的反映java进程的运行情况,在该进程标志信息中除包含进程关键字、进程端口和进程运行日志外,还可以携带有其它类型的标志信息,在本发明实施例中,对于进程标志信息中携带的具体信息形式不做限定。

s104:依据所述发送时间、所述接收时间以及所述进程标志信息,判断所述java进程是否出现异常。

java进程如果运行正常,则其在接收到保护进程发送的确认消息后,便可以向保护进程发送反馈消息;当java进程运行异常时,其在接收到保护进程发送的确认消息后,其可能无法顺利向保护进程发送反馈消息,或者是发送反馈消息出现延迟。

因此,可以将保护进程发送确认消息的发送时间和接收到反馈消息的接收时间作为判断java进程是否出现异常的一种依据,具体的,可以计算所述发送时间与所述接收时间的差值,并判断所述差值是否超过预设阈值。

预设阈值可以是根据java进程正常运行时,与保护进程之间传输信息花费的时间确定出。该预设阈值可以是一个具体的数值,也可以是一个取值范围,在此不做限定。

当差值超过该预设阈值时,则说明java进程出现异常。当差值未超过该预设阈值时,为了更加准确的确定出java进程的运行情况,可以依据反馈消息中携带的进程标志信息,做进一步的判断。

具体的,当差值未超过该预设阈值时,则可以则依据预先存储的对应关系列表,判断所述反馈信息中携带的进程标志信息是否正确。

每个java进程都有其对应的进程标志信息和进程重启指令,进程标志信息可以是java进程正常运行的特征信息,进程重启指令可以用于将该java进程进行重新启动。在本发明实施例中,可以预先收集所涉及的java进程的进程标志信息和进程重启指令。对于采集的这些信息,可以将每个进程所对应的进程标志信息和进程重启指令以对应关系列表的方式进行存储,以便于后续查找的方便。

以一个java进程为例,其向保护进程发送的反馈信息中携带有进程标志信息,该进程标志信息可以用于反映该java进程的运行情况,由上述介绍可知,在对应关系列表中存储有该java进程正常运行时的进程标志信息,可以将该进程标志信息作为参照信息,当反馈信息中携带的进程标志信息与该参照信息不一致时,则说明反馈信息中携带的进程标志信息不正确,也即说明该java进程出现异常。

以进程标志信息包括进程关键字、进程端口和进程运行日志为例,当进程关键字、进程端口和进程运行日志中的任意一项与参照信息中对应的信息不一致时,则说明java进程出现异常。

s105:若是,则从预先存储的对应关系列表中,查找与所述java进程对应的进程重启指令,并利用所述进程重启指令重新启动所述java进程。

通过s104当判断出java进程出现异常时,为了能够恢复该java进程的运行,可以通过该java进程对应的进程重启指令,重新启动该java进程。

由上述技术方案可以看出,通过java标准接口可以与java进程建立通信连接;依据预先设置的时间周期,定时向所述java进程发送确认消息,并记录所述确认消息的发送时间;接收所述java进程发送的反馈消息,并记录接收到所述反馈消息的接收时间;所述反馈消息中携带有所述java进程的进程标志信息;依据所述发送时间、所述接收时间以及所述进程标志信息,可以对所述java进程的运行情况进行判断,当所述java进程出现异常时,则从预先存储的对应关系列表中,查找与所述java进程对应的进程重启指令,并利用所述进程重启指令重新启动所述java进程。可见,通过对java进程的监测,可以及时发现java进程的异常情况,通过重启进程的方式实现java进程失败的自动恢复,从而保护java进程的正常运行。

为了便于管理员可以及时了解到java进程出现异常的情况,在本发明实施例中还可以在判断出所述java进程出现异常时,向预先存储的邮箱地址发送告警信息。

在该告警信息中可以携带有出现异常的java进程的进程标志信息,以便于管理员可以及时了解出现异常的具体情况。

图2为本发明实施例提供的一种java进程保护的装置的结构示意图,包括连接单元21、发送单元22、接收单元23、判断单元24和处理单元25:

所述连接单元21,用于利用java标准接口与java进程建立通信连接;

所述发送单元22,用于依据预先设置的时间周期,定时向所述java进程发送确认消息,并记录所述确认消息的发送时间;

所述接收单元23,用于接收所述java进程发送的反馈消息,并记录接收到所述反馈消息的接收时间;所述反馈消息中携带有所述java进程的进程标志信息;

所述判断单元24,用于依据所述发送时间、所述接收时间以及所述进程标志信息,判断所述java进程是否出现异常;

若是,则触发所述处理单元25,所述处理单元25,用于从预先存储的对应关系列表中,查找与所述java进程对应的进程重启指令,并利用所述进程重启指令重新启动所述java进程。

可选的,所述判断单元24具体用于计算所述发送时间与所述接收时间的差值,并判断所述差值是否超过预设阈值;

若是,则触发所述处理单元25;

若否,则所述判断单元24还用于依据预先存储的对应关系列表,判断所述进程标志信息是否正确;

当所述进程标志信息不正确,则触发所述处理单元25。

可选的,还包括告警单元:

当所述判断单元24判断出所述java进程出现异常时,则触发所述告警单元,所述告警单元,用于向预先存储的邮箱地址发送告警信息。

可选的,所述java进程的进程标志信息包括进程关键字、进程端口和进程运行日志。

图2所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。

由上述技术方案可以看出,通过java标准接口可以与java进程建立通信连接;依据预先设置的时间周期,定时向所述java进程发送确认消息,并记录所述确认消息的发送时间;接收所述java进程发送的反馈消息,并记录接收到所述反馈消息的接收时间;所述反馈消息中携带有所述java进程的进程标志信息;依据所述发送时间、所述接收时间以及所述进程标志信息,可以对所述java进程的运行情况进行判断,当所述java进程出现异常时,则从预先存储的对应关系列表中,查找与所述java进程对应的进程重启指令,并利用所述进程重启指令重新启动所述java进程。可见,通过对java进程的监测,可以及时发现java进程的异常情况,通过重启进程的方式实现java进程失败的自动恢复,从而保护java进程的正常运行。

以上对本发明实施例所提供的一种java进程保护的方法与装置进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1