记录日志的方法及微服务系统与流程

文档序号:14426615阅读:523来源:国知局

本发明涉及系统开发领域,尤其涉及一种记录日志的方法及微服务系统。



背景技术:

随着医疗和养老行业需求不断细化,对于底层的医疗和养老相关信息系统的建设提出了更高的要求,医养集成平台应运而生。医养集成平台包括医疗和养老领域的所有信息,该集成平台采用微服务架构,大量的业务是基于不同领域微服务建设的。庞大的微服务提供者在开发过程中必然面临着对不同领域微服务的日志记录和输出、与第三方系统(如splunk日志分析平台)对接、通过日志监控集成平台的各项微服务的运行情况等诸多难题。

针对集成平台的日志记录,传统的日志记录方式需要开发人员在不同领域的每个微服务中书写大量记录日志的代码,给开发人员带来巨大的工作量。另外,不同领域微服务的日志记录规范存在差异,造成与第三方系统对接困难。



技术实现要素:

本发明提供一种记录日志的方法及微服务系统,用于简化微服务系统记录日志的过程,实现不同领域微服务日志记录的规范化和一致性。

本发明的第一方面提供一种记录日志的方法,应用于微服务系统,所述微服务系统为向至少两个服务领域提供服务的系统,所述至少两个服务领域提供的相同类型的微服务对应同一软件开发工具包sdk,所述方法包括:

接收终端发送的微服务请求;

根据所述微服务请求确定待提供的微服务的类型,并获取所述待提供的微服务的类型对应的公共sdk;

调用所述公共sdk,以记录所述微服务请求对应的微服务的日志;

根据所述微服务的日志,向所述终端发送微服务响应。

可选的,所述公共sdk中包括异常日志处理工具包、基础日志处理工具包;所述调用所述公共sdk,以记录所述微服务请求对应的微服务的日志,包括:

检测所述微服务是否存在异常;

若存在,则调用所述异常日志处理工具包,以记录所述微服务请求对应的微服务的异常日志;

若不存在,则调用所述基础日志处理工具包,以记录所述微服务器请求对应的微服务的正常日志。

可选的,所述公共sdk中还包括第一拦截工具包,所述调用所述异常日志处理工具包,以记录所述微服务请求对应的微服务的异常日志之前,还包括:

调用所述第一拦截工具包拦截java异常;

所述调用所述异常日志处理工具包,以记录所述微服务请求对应的微服务的异常日志,包括:

调用所述异常日志处理工具包,以错误日志级别记录所述微服务请求对应的微服务的java异常日志。

可选的,所述公共sdk中还包括第一拦截工具包,所述调用所述异常日志处理工具包,以记录所述微服务请求对应的微服务的异常日志之前,还包括:

调用所述第一拦截工具包拦截业务异常;

所述调用所述异常日志处理工具包,以记录所述微服务请求对应的微服务的异常日志,包括:

调用所述异常日志处理工具包,以警告类日志级别记录所述微服务请求对应的微服务的业务异常日志。

可选的,所述公共sdk中还包括第二拦截工具包,所述调用所述基础日志处理工具包,以记录所述微服务请求对应的微服务的正常日志,包括:

调用所述第二拦截工具包拦截所述微服务请求;

调用所述基础日志处理工具包,以信息类日志级别记录开始微服务的访问日志;

调用所述第二拦截工具包拦截待发送的所述微服务响应;

调用所述基础日志处理工具包,以信息类日志级别记录结束微服务的访问日志。

可选的,所述根据所述微服务的日志,向所述终端发送微服务响应,包括:

根据所述微服务的异常日志,向所述终端发送所述微服务请求对应的异常响应;所述异常响应包括java异常响应或者业务异常响应。

可选的,所述微服务系统为向医疗领域和养老领域提供服务的系统,所述医疗领域和所述养老领域提供的相同类型的微服务对应同一sdk。

本发明的第二方面提供一种微服务系统,所述微服务系统为向至少两个服务领域提供服务的系统,所述至少两个服务领域提供的相同类型的微服务对应同一软件开发工具包sdk,所述系统包括:

接收模块,用于接收终端发送的微服务请求;

确定获取模块,用于根据所述微服务请求确定待提供的微服务的类型,并获取所述待提供的微服务的类型对应的公共sdk;

调用记录模块,用于调用所述公共sdk,以记录所述微服务请求对应的微服务的日志;

发送模块,用于根据所述微服务的日志,向所述终端发送微服务响应。

可选的,所述公共sdk中包括异常日志处理工具包、基础日志处理工具包;所述系统还包括:

检测模块,用于检测所述微服务是否存在异常;

若存在,所述调用记录模块还用于调用所述异常日志处理工具包,以记录所述微服务请求对应的微服务的异常日志;

若不存在,所述调用记录模块还用于调用所述基础日志处理工具包,以记录所述微服务器请求对应的微服务的正常日志。

本发明的第三方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任一项所述的方法。

本发明的第四方面提供一种电子设备,包括:

处理器;以及

存储器,用于存储所述处理器的可执行指令;

其中,所述处理器配置为经由执行所述可执行指令来执行第一方面中任一项所述的方法。

本发明提供了一种记录日志的方法及微服务系统,该系统为向至少两个服务领域提供服务的系统,通过接收终端发送的微服务请求,确定待提供的微服务的类型,根据待提供的微服务的类型获取对应的公共sdk,调用公共sdk以记录微服务请求对应的微服务的日志,并根据微服务的日志向终端发送微服务响应。通过调用公共sdk,实现系统日志按照公共sdk中自定义处理方法进行记录,确保了微服务系统对不同领域同一类型微服务日志的规范化和一致性记录,便于开发人员监控微服务系统的运行情况,从而不断完善系统提供的各项微服务。

附图说明

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

图1为本发明提供的记录日志的方法的应用场景图;

图2为本发明一实施例提供的记录日志的方法的流程图;

图3为本发明另一实施例提供的记录日志的方法的流程图;

图4为本发明一实施例提供的微服务系统的结构示意图;

图5为本发明提供的电子设备实施例的结构示意图。

具体实施方式

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

本发明提供的记录日志的方法应用于微服务系统,图1为本发明提供的记录日志的方法的应用场景图,如图1所示,本发明实施例提供的微服务系统为向至少两个服务领域提供服务的系统。该微服务系统可以理解为具有相关性的至少两个服务领域的集成系统,例如,随着医疗和养老行业需求不断细化,启动建设的医养集成平台,该集成平台包括医疗领域和养老领域的所有信息。终端设备通过应用程序或浏览器向微服务系统发送微服务请求,该微服务请求对应的微服务为系统提供的至少一个服务领域的微服务。

对于上述微服务系统,各服务领域之间必然存在相关联的共享信息,或者,各服务领域必然存在提供相同类型的微服务。面对庞大的信息服务和数据监控,必须做好微服务系统的日志记录,通过日志监控系统的运行情况。

由于微服务系统提供多领域的微服务,系统开发阶段需要在每一个微服务中书写大量的记录日志的代码,同时,不同类型的日志的记录方法差异性大,给开发人员带来巨大的工作量。本发明实施例提供一种记录日志的方法,以简化微服务系统记录日志的过程,实现不同领域微服务日志记录的规范化和一致性。

下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。

图2为本发明一实施例提供的记录日志的方法的流程图,该方法的执行主体为微服务系统,如图2所示,本实施例中记录日志的方法,包括:

s101、接收终端发送的微服务请求;

s102、根据微服务请求确定待提供的微服务的类型,并获取待提供的微服务的类型对应的公共sdk;

s103、调用公共sdk,以记录微服务请求对应的微服务的日志;

s104、根据微服务的日志,向终端发送微服务响应。

在本实施例中,微服务系统的服务层接收终端发送的微服务请求,该微服务请求的微服务包括微服务系统提供的一个或者多个微服务,其中,多个微服务可以是同一领域的微服务或者不同领域的微服务。

微服务系统根据该微服务请求确定系统待提供的微服务的类型,根据微服务的类型,查询与微服务的类型对应的微服务数据库,同时获取微服务的类型对应的公共sdk。

公共sdk为开发人员根据微服务系统预设的公共软件开发工具包,该公共sdk保存在微服务系统的存储器上。该公共sdk包括了各种类型微服务记录日志的自定义处理方法。其中,对于不同领域同一类型的微服务,其记录日志的处理方法相同。开发人员不必针对不同领域的各个微服务进行大量记录日志的自定义开发过程,不同领域同一类型的微服务只需进行一次自定义,大大简化开发工作量。

对于不同领域同一类型的微服务的日志,又分为异常日志和正常日志,公共sdk中的自定义处理方法具体包括对处理异常日志和/或正常日志的方法。微服务系统根据微服务的类型,获取该微服务的类型对应的公共sdk之后,系统调用该微服务类型对应的公共sdk,自动记录微服务请求对应的微服务的异常日志和/或正常日志。

系统在自动记录微服务的异常日志和/或正常日志之后,将记录的日志分类进行保存,以供开发人员定期下载查看。具体可根据日志类型进行分类(包括异常日志包和正常日志包),或者,按照微服务类型进行分类,对此本实施例不作具体限定。

可选的,系统可根据上述日志分类包,查询与日志分类包对应的开发人员终端设备的标识,并根据该标识向开发人员定期推送日志分类包,便于开发人员定期查看日志,及时对系统进行维护。

本实施例中,系统确定微服务的日志为异常日志时,系统向终端发送微服务响应,提示用户本次微服务请求出现异常。其中,微服务响应包括异常响应,该异常响应包括系统异常响应或业务异常响应,用户可根据异常响应的内容进行下一步操作。

系统确定微服务的日志为正常日志时,系统根据微服务请求查询系统数据库,向终端发送微服务响应,该微服务响应为正常状态下的数据反馈信息,与现有技术相同,对此本实施例不作具体说明。

本发明实施例提供的记录日志的方法,应用于微服务系统,该系统为向至少两个服务领域提供服务的系统,通过接收终端发送的微服务请求,确定待提供的微服务的类型,根据待提供的微服务的类型获取对应的公共sdk,调用公共sdk以记录微服务请求对应的微服务的日志,并根据微服务的日志向终端发送微服务响应。通过调用公共sdk,实现系统日志按照公共sdk中自定义处理方法进行记录,确保了微服务系统对不同领域同一类型微服务日志的规范化和一致性记录,便于开发人员监控微服务系统的运行情况,从而不断完善系统提供的各项微服务。

图3为本发明另一实施例提供的记录日志的方法的流程图,本实施例中的公共sdk中包括异常日志处理工具包、基础日志处理工具包、第一拦截工具包和第二拦截工具包,如图3所示,本实施例提供的记录日志的方法具体包括如下步骤:

s201、接收终端发送的微服务请求;

s202、根据微服务请求确定待提供的微服务的类型,并获取待提供的微服务的类型对应的公共sdk;

s203、检测微服务是否存在异常;

若存在,则调用异常日志处理工具包,以记录微服务请求对应的微服务的异常日志;

若不存在,则调用基础日志处理工具包,以记录微服务器请求对应的微服务的正常日志。

s204、根据微服务的日志,向终端发送微服务响应。

本实施例中,系统获取待提供的微服务的类型对应的公共sdk,记录日志之前,检测该微服务是否存在异常,若存在异常,系统调用公共sdk中的异常日志处理工具包,记录微服务请求对应的微服务的异常日志。若不存在异常,则调用公共sdk中的基础日志处理工具包,记录微服务请求对应的微服务的正常日志。

具体来说,系统的微服务异常包括系统异常或业务异常,其中系统异常具体为java异常。

当系统检测到微服务存在java异常时,系统调用公共sdk中的第一拦截工具包拦截该java异常,并调用该微服务的类型对应的公共sdk中的异常日志处理工具包,以错误日志级别记录该微服务的java异常日志。

其中,java异常是不期望发生但是未预料到发生的各种状况,如文件找不到、网络连接失败、方法未找到、空指针等,java异常都是对象,是throwable子类的实例,描述了出现在一段编码中的错误条件。

系统通过try-catch检测到java异常,并根据第一拦截工具包中的@pointcut标签拦截该java异常,通过异常日志处理工具包中自定义记录java异常日志方法,以错误日志级别记录该微服务处理进程中的java异常日志。

当系统检测到微服务存在业务异常时,系统调用公共sdk中的第一拦截工具包拦截该业务异常,并调用该微服务的类型对应的公共sdk中的异常日志处理工具包,以警告类日志级别记录该微服务的业务异常日志。

其中,业务异常指的是不期望发生但是预料到了发生的各种状况,如:新增类服务的验重、修改类服务的排除自身验重、验证码次数校验等。

系统通过try-catch捕捉自定义的业务异常,并根据第一拦截工具包中的@pointcut标签拦截该业务异常,通过异常日志处理工具包中自定义记录业务异常日志方法,以警示类日志级别记录该微服务处理进程中的业务异常日志。

本实施例的系统若未检测到微服务存在异常,则调用公共sdk中的基础日志处理工具包,记录微服务请求对应的微服务的正常日志。正常日志即系统的服务访问日志,服务访问日志指的是期望的并且可预料的服务正常的开始访问时,记录服务开始访问日志,在服务处理完毕后,结束服务前记录服务访问结束日志。

下面对于正常日志的记录进行详细说明。

系统在服务访问开始时,调用公共sdk中的第二拦截工具包拦截微服务请求;调用公共sdk中的基础日志处理工具包,以信息类日志级别记录开始微服务的访问日志。具体的,

系统通过第二拦截工具包中的@pointcut标签拦截微服务请求,通过基础日志处理工具包中自定义记录日志方法writelog,以信息类日志级别记录微服务开始的访问日志。

系统在服务处理完毕后,调用公共sdk中的第二拦截工具包拦截待发送的微服务响应;调用公共sdk中的基础日志处理工具包,以信息类日志级别记录结束微服务的访问日志。其中,发送的微服务响应为正常状态下的数据反馈信息,与现有技术相同。具体的,

系统在服务进程执行完毕,返回微服务响应之前,通过第二拦截工具包中的@pointcut标签拦截微服务响应,通过基础日志处理工具包中自定义记录日志方法writelog,以信息类日志级别记录微服务结束的访问日志。

需要指出的是,本实施例的系统调用第一拦截工具包对微服务异常进行拦截,以及调用第二拦截工具包对微服务请求或微服务响应进行正常拦截,均不影响系统的处理进程。

图4为本发明一实施例提供的微服务系统的结构示意图,如图4所示,本实施例的微服务系统30包括:

接收模块31,用于接收终端发送的微服务请求;

确定获取模块32,用于根据所述微服务请求确定待提供的微服务的类型,并获取所述待提供的微服务的类型对应的公共sdk;

调用记录模块33,用于调用所述公共sdk,以记录所述微服务请求对应的微服务的日志;

发送模块34,用于根据所述微服务的日志,向所述终端发送微服务响应。

可选的,所述公共sdk中包括异常日志处理工具包、基础日志处理工具包;所述系统还包括:

检测模块35,用于检测所述微服务是否存在异常;

若存在,所述调用记录模块33还用于调用所述异常日志处理工具包,以记录所述微服务请求对应的微服务的异常日志;

若不存在,所述调用记录模块33还用于调用所述基础日志处理工具包,以记录所述微服务器请求对应的微服务的正常日志。

可选的,所述公共sdk中还包括第一拦截工具包,所述系统还包括:

调用拦截模块36,用于调用所述第一拦截工具包拦截java异常;

所述调用记录模块33,还用于:

调用所述异常日志处理工具包,以错误日志级别记录所述微服务请求对应的微服务的java异常日志。

可选的,所述公共sdk中还包括第一拦截工具包,所述系统还包括:

调用拦截模块36,用于调用所述第一拦截工具包拦截业务异常;

所述调用记录模块33,还用于:

调用所述异常日志处理工具包,以警告类日志级别记录所述微服务请求对应的微服务的业务异常日志。

可选的,所述公共sdk中还包括第二拦截工具包;

调用拦截模块36,用于调用所述第二拦截工具包拦截所述微服务请求;

所述调用记录模块33,还用于:

调用所述基础日志处理工具包,以信息类日志级别记录开始微服务的访问日志;

所述调用拦截模块36,还用于调用所述第二拦截工具包拦截待发送的所述微服务响应;

所述调用记录模块33,还用于:

调用所述基础日志处理工具包,以信息类日志级别记录结束微服务的访问日志。

可选的,所述发送模块34还用于根据所述微服务的异常日志,向所述终端发送所述微服务请求对应的异常响应;

所述异常响应包括java异常响应或者业务异常响应。

本实施例的系统,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述任一项方法实施例所述的技术方案,其实现原理和技术效果类似,此处不再赘述。

图5为本发明提供的电子设备实施例的结构示意图,如图5所示,本实施例的电子设备,包括:

处理器401;以及

存储器402,用于存储所述处理器的可执行指令;

其中,所述处理器配置为经由执行所述可执行指令来执行前述任一项方法实施例所述的技术方案,其实现原理和技术效果类似,此处不再赘述。

上述系统中的各模块的功能可以通过处理器401实现。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、sram、dram、flash、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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