CN113434477B - 保存日志文件的方法、系统、介质及服务器端 - Google Patents

保存日志文件的方法、系统、介质及服务器端 Download PDF

Info

Publication number
CN113434477B
CN113434477B CN202110569595.2A CN202110569595A CN113434477B CN 113434477 B CN113434477 B CN 113434477B CN 202110569595 A CN202110569595 A CN 202110569595A CN 113434477 B CN113434477 B CN 113434477B
Authority
CN
China
Prior art keywords
server
client
service
file writing
file
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
CN202110569595.2A
Other languages
English (en)
Other versions
CN113434477A (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.)
Yanfeng Visteon Electronic Technology Shanghai Co Ltd
Original Assignee
Yanfeng Visteon Electronic Technology Shanghai 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 Yanfeng Visteon Electronic Technology Shanghai Co Ltd filed Critical Yanfeng Visteon Electronic Technology Shanghai Co Ltd
Priority to CN202110569595.2A priority Critical patent/CN113434477B/zh
Publication of CN113434477A publication Critical patent/CN113434477A/zh
Application granted granted Critical
Publication of CN113434477B publication Critical patent/CN113434477B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • 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

Abstract

本发明提供一种保存日志文件的方法、系统、介质及服务器端;所述方法包括以下步骤:判断客户端发送的文件写入请求中是否带服务器ID及服务器ID是否有效;在服务器ID有效时,将待写入数据发送至相应的文件写入服务;在文件写入请求中不带有服务器ID或服务器ID无效时,查询内存数据库中是否有对应的有效的服务器ID;在查询结果为是时,根据内存数据库中对应的有效的服务器ID,将待写入数据发送至相应的文件写入服务;在查询结果为否时,为客户端分配一有效的服务器ID,并根据为客户端分配的有效的服务器ID,将待写入数据发送至相应的文件写入服务;本发明实现了将同一个客户端的日志数据处理定位在服务器端的同一进程进行日志文件的写入。

Description

保存日志文件的方法、系统、介质及服务器端
技术领域
本发明涉及互联网技术领域,特别是一种保存日志文件的方法、系统、介质及服务器端。
背景技术
日志记录是软件开发和测试过程中必不可少的定位问题的手段,在车机等嵌入式设备中开发的软件,往往面临存储空间小、难以保存大量日志,闪存读写寿命有限、难以承受大量的日志写入这样的问题,而让日志的记录无法顺利开展。
在云端保存日志是一种方法,但是大量设备向云端服务器上传日志数据,必然会引起服务器端的高并发问题,而需要多台服务器多进程进行日志数据处理,这样一个客户端会随机访问到不同的服务器由不同的进程进行处理,如果不同服务器的不同进程要把同一个客户端的日志写入同一个文件,则难以保证文件写入的正确处理;如果采用文件加锁,每次都写入磁盘而不是缓存,则会大幅影响处理的性能。
目前,通常会采用数据库等方式保存日志数据,例如,一种业界服务器端的日志处理的标准做法是:各台服务器各自写日志文件,然后将日志通过Kafka(Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据)这样的日志系统进行统一管理,同一个客户端的相关日志在服务器端被不同的服务器写入不同的文件是很正常的,所以需要统一的日志管理系统来方便查询。
对于互联网的从业人员,查询统一的日志管理系统已经成了习惯,然而车机等嵌入式系统的开发人员习惯于下载和查看设备的日志文件,所以在云端将同一设备的日志保存到同一文件仍然是非常有必要的。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种保存日志文件的方法、系统、介质及服务器端,能够保证一客户端的日志数据对应保存至同一服务器中。
为实现上述目的及其他相关目的,本发明提供一种的保存日志文件的方法,应用于服务器端,所述服务器端包括至少两个服务器;独立于所述服务器中用于写入日志文件的文件写入服务,并使用所述服务器对应的服务器ID唯一地标识所述文件写入服务;所述方法包括以下步骤:接收客户端发送的文件写入请求;所述文件写入请求中至少包括:待写入数据;判断所述文件写入请求中是否带服务器ID及所述服务器ID是否有效;在所述服务器ID有效时,根据所述服务器ID将所述待写入数据发送至相应的所述文件写入服务;在所述文件写入请求中不带有所述服务器ID或所述服务器ID无效时,查询内存数据库中是否有与所述客户端对应的有效的服务器ID;在查询结果为是时,根据所述内存数据库中与所述客户端对应的有效的服务器ID,将所述待写入数据发送至相应的文件写入服务;在所述查询结果为否时,为所述客户端分配一有效的服务器ID,并根据为所述客户端分配的有效的服务器ID,将所述待写入数据发送至相应的文件写入服务。
于本发明的一实施例中,在查询结果为是时或在为所述客户端分配一有效的服务器ID后,所述保存日志文件的方法还包括以下步骤:发送设置指令至所述客户端,以使所述客户端基于所述设置指令,将所述内存数据库中与所述客户端对应的有效的服务器ID设置为所述客户端对应的服务器ID,或将为所述客户端分配的有效的服务器ID设置为所述客户端对应的服务器ID,以使所述客户端后续向所述服务器端发送的文件写入请求中带有所述内存数据库中与所述客户端对应的有效的服务器ID,或带有为所述客户端分配的有效的服务器ID。
于本发明的一实施例中,在为所述客户端分配一有效的服务器ID后,所述保存日志文件的方法还包括以下步骤:将所述客户端及为所述客户端分配的有效的服务器ID之间的对应关系存储至所述内存数据库中。
于本发明的一实施例中,将每一所述服务器中的文件写入服务分别独立成一单独的微服务进程写入微服务,并给每一所述微服务进程编号,且任意两个所述微服务进程的编号不同;将所述待写入数据发送至相应的文件写入服务包括以下步骤:将所述待写入数据发送至所述微服务中相应编号的微服务进程,以实现将所述待写入数据发送至相应的文件写入服务。
本发明提供一种的保存日志文件的系统,应用于服务器端,所述服务器端包括至少两个服务器;独立所述服务器中用于写入日志文件的文件写入服务,并使用所述服务器对应的服务器ID唯一标识所述文件写入服务;所述系统包括:接收模块、判断模块、第一发送模块、查询模块、第二发送模块及第三发送模块;所述接收模块用于接收客户端发送的文件写入请求;所述文件写入请求中至少包括:待写入数据;所述判断模块用于判断所述文件写入请求中是否带服务器ID及所述服务器ID是否有效;所述第一发送模块用于在所述服务器ID有效时,根据所述服务器ID将所述待写入数据发送至相应的所述文件写入服务;所述查询模块用于在所述文件写入请求中不带有所述服务器ID或所述服务器ID无效时,查询内存数据库中是否有与所述客户端对应的有效的服务器ID;所述第二发送模块用于在查询结果为是时,根据所述内存数据库中与所述客户端对应的有效的服务器ID,将所述待写入数据发送至相应的文件写入服务;所述第三发送模块用于在所述查询结果为否时,为所述客户端分配一有效的服务器ID,并根据为所述客户端分配的有效的服务器ID,将所述待写入数据发送至相应的文件写入服务。
本发明提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的的保存日志文件的方法。
本发明提供一种服务器端,包括:处理器、存储器、内存数据库及至少两个服务器;所述存储器用于存储计算机程序;所述处理器用于执行所述存储器存储的计算机程序,以使所述服务器端执行上述的保存日志文件的方法;所述服务器用于保存日志文件;所述内存数据库用于存储客户端及与所述客户端对应的服务器ID之间的对应关系。
本发明提供一种保存日志文件的系统,包括上述的服务器端及客户端;所述客户端与所述服务器端连接,用于向所述服务器端发送文件写入请求。
如上所述,本发明所述的保存日志文件的方法、系统、介质及服务器端,具有以下有益效果:
(1)与现有技术相比,本发明实现了将同一个客户端的日志数据处理定位在服务器端的同一进程进行日志文件的写入,有效解决了车机等嵌入式设备难以写入和保存大量日志,而通常的云端解决方案不够理想的问题。
(2)本发明中,车机等嵌入式设备的日志数据发送到服务器,由服务器保存为日志文件,开发人员下载日志文件和用数据线或U盘的方式导出日志文件的体验一致,让服务器真正变成了设备的写日志的扩展,突破了设备的闪存容量和写入寿命的限制。
(3)本发明中,当大量设备连接服务器端进行日志数据上报时,服务器端可以扩充多台服务器进行多进程处理,由于同一个设备的日志数据只在同一台服务器的同一进程进行处理,完全能确保日志文件写入的正确处理;而且,并不影响日志文件在服务器端的保存和下载,对于车机等嵌入式设备的软件开发和测试意义重大。
附图说明
图1显示为本发明的的保存日志文件的方法于一实施例中的流程图。
图2显示为本发明的的保存日志文件的方法于一实施例中的时序图。
图3显示为本发明的的保存日志文件的系统于一实施例中的结构示意图。
图4显示为本发明的服务器端于一实施例中的结构示意图。
图5显示为本发明的保存日志文件的系统于另一实施例中的结构示意图。
图6显示为本发明的保存日志文件的系统于一实施例中的架构图。
标号说明
31-接收模块;32-判断模块;33-第一发送模块;34-查询模块;35-第二发送模块;36-第三发送模块;41-处理器;42-存储器;43-内存数据库;44-服务器;51-服务器端;52-客户端。
具体实施方式
以下通过特定的具体实施例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,图示中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明的保存日志文件的方法、系统、介质及服务器端,与现有技术相比,本发明实现了将同一个客户端的日志数据处理定位在服务器端的同一进程进行日志文件的写入,有效解决了车机等嵌入式设备难以写入和保存大量日志,而通常的云端解决方案不够理想的问题;本发明中,车机等嵌入式设备的日志数据发送到服务器,由服务器保存为日志文件,开发人员下载日志文件和用数据线或U盘的方式导出日志文件的体验一致,让服务器真正变成了设备的写日志的扩展,突破了设备的闪存容量和写入寿命的限制;本发明中,当大量设备连接服务器端进行日志数据上报时,服务器端可以扩充多台服务器进行多进程处理,由于同一个设备的日志数据只在同一台服务器的同一进程进行处理,完全能确保日志文件写入的正确处理;而且,并不影响日志文件在服务器端的保存和下载,对于车机等嵌入式设备的软件开发和测试意义重大。
于一实施例中,将本发明的的保存日志文件的方法应用于服务器端,所述服务器端包括至少两个服务器;独立于所述服务器中用于写入日志文件的文件写入服务,并使用所述服务器对应的服务器ID唯一地标识所述文件写入服务。
需要说明的是,每一服务器对应一服务器ID;该服务器ID具体是用什么表示,不作为限制本发明的条件,只要能够实现唯一标识该服务器即可,诸如,可使用每一服务器对应的出厂编号作为该服务器ID,唯一标识服务器;也可以使用阿拉伯数字排序的方式,对每一服务器设定一服务器ID,以唯一标识服务器(比如,使用001、002、003……),等等。
于一实施例中,将每一所述服务器中的文件写入服务分别独立成一单独的微服务进程写入微服务,并给每一所述微服务进程编号,且任意两个所述微服务进程的编号不同。
如图1和图2所示,于一实施例中,所述保存日志文件的方法包括以下步骤:
步骤S1、接收客户端发送的文件写入请求。
需要说明的是,所述客户端至少包括但并不限于车机等嵌入式设备;所述文件写入请求中至少包括:待写入数据(具体为车机等嵌入式设备的日志数据)。
步骤S2、判断所述文件写入请求中是否带服务器ID及所述服务器ID是否有效。
需要说明的是,该服务器ID是否有效,是指是否存在一服务器,其对应的服务器ID与该服务器ID相同,若存在这样的服务器,即认为该服务器ID是有效的;反之,若不存在这样的服务器,即认为该服务器ID是无效的。
于一实施例中,在所述服务器ID有效时,执行步骤S3。
步骤S3、根据所述服务器ID将所述待写入数据发送至相应的所述文件写入服务。
于一实施例中,在所述文件写入请求中不带有所述服务器ID或所述服务器ID无效时,执行步骤S4。
步骤S4、查询内存数据库中是否有与所述客户端对应的有效的服务器ID。
需要说明的是,当客户端第一次向服务器端发送文件写入请求时,一般不带服务器ID,或者当该客户端所带的服务器ID已失效时,可以通过该服务器端给该客户端分配一个服务器ID,以使该服务器端按照该服务器ID将上述的待写入数据转发到相应的文件写入服务,同时,该服务器端还会发送一指令至该客户端,让该客户端设置该服务器ID;然而,如果完全按照此种方式操作,会有这样的问题:同一个客户端连续发送数据时,第一个请求被分配了服务器ID,第二个请求发出时,该客户端还没有来得及设置服务器ID,造成第二个请求可能被分配了不同的服务器ID,而造成逻辑错误。
于一实施例中,利用内存数据库中保存客户端和服务器ID的对应关系,即有效解决了这一问题;具体地,该内存数据库中至少存储了一客户端及与该客户端对应的服务器ID之间的对应关系。
需要说明的是,该内存数据库中存储的客户端与服务器ID之间的对应关系具体为:该客户端对应的用于唯一标识客户端的客户端ID与该服务器ID之间的对应关系。
需要说明的是,每一客户端对应一客户端ID;该客户端ID具体是用什么表示,不作为限制本发明的条件,只要能够实现唯一标识该客户端即可,诸如,可使用每一客户端对应的出厂编号作为该客户端ID,唯一标识客户端;也可以使用阿拉伯数字排序的方式,对每一客户端设定一客户端ID,以唯一标识客户端(比如,使用100、200、300……),等等。
进一步地,该内存数据库中,一客户端唯一对应一服务器ID,但一服务器ID可同时对应一个、两个,甚至是多个不同的客户端。
于一实施例中,在查询结果为是时,执行步骤S5。
步骤S5、根据所述内存数据库中与所述客户端对应的有效的服务器ID,将所述待写入数据发送至相应的文件写入服务。
于一实施例中,在查询结果为是时,所述保存日志文件的方法还包括以下步骤:
步骤S6、发送设置指令至所述客户端,以使所述客户端基于所述设置指令,将所述内存数据库中与所述客户端对应的有效的服务器ID设置为所述客户端对应的服务器ID。
需要说明的是,在将所述内存数据库中与所述客户端对应的有效的服务器ID设置为所述客户端对应的服务器ID后,所述客户端后续向所述服务器端发送的文件写入请求中带有所述内存数据库中与所述客户端对应的有效的服务器ID。
于一实施例中,在所述查询结果为否时,执行步骤S7。
步骤S7、为所述客户端分配一有效的服务器ID,并根据为所述客户端分配的有效的服务器ID,将所述待写入数据发送至相应的文件写入服务。
需要说明的是,如果每次在接收到文件写入请求时,都去内存数据库中查询客户端和服务器ID的对应关系,则会影响服务器端的处理性能;所以,只有在文件写入请求中不带有服务器ID或服务器ID无效的情况才去内存数据库中查询客户端和服务器ID的对应关系,查到了就按内存数据库中对应的服务器ID将数据转发到相应的文件写入服务(对应步骤S5),查不到再分配一个服务器ID(对应步骤S7);这样,以服务器ID确保服务端处理性能的同时,能够实现将同一客户端的文件写入请求引入到同一个文件写入服务进程,确保文件写入的完整性和一致性;同时用内存数据库补充服务器ID方案可能遗漏的处理情况,确保业务逻辑正确。
于一实施例中,在为所述客户端分配一有效的服务器ID后,所述保存日志文件的方法还包括以下步骤:
步骤S8、发送设置指令至所述客户端,以使所述客户端基于所述设置指令,将为所述客户端分配的有效的服务器ID设置为所述客户端对应的服务器ID。
需要说明的是,在将为所述客户端分配的有效的服务器ID设置为所述客户端对应的服务器ID后,所述客户端后续向所述服务器端发送的文件写入请求中带有该为所述客户端分配的有效的服务器ID。
步骤S9、将所述客户端及为所述客户端分配的有效的服务器ID之间的对应关系存储至所述内存数据库中。
于一实施例中,上述步骤S3、步骤S5及步骤S7中,将所述待写入数据发送至相应的文件写入服务包括以下步骤:将所述待写入数据发送至所述微服务中相应编号的微服务进程,以实现将所述待写入数据发送至相应的文件写入服务。
需要说明的是,上述步骤S1至步骤S9,实际上是由在调用文件写入服务之前,在服务器端上开发的一个前置处理服务执行的,或者是在原有的前置处理服务中通过加入业务逻辑来执行的。
需要说明的是,本发明提供的保存日志文件的方法通过算法实现了将同一个客户端的日志数据处理定位在服务器端的同一进程进行日志文件的写入,保证了将车机等嵌入式设备的日志以文件的形式完整地保存在服务器端,以供开发人员下载;在多台服务器多进程进行并发处理时,确保了日志文件写入的完整可靠。
需要说明的是,本发明所述的的保存日志文件的方法的保护范围不限于本实施例列举的步骤执行顺序,凡是根据本发明的原理所做的现有技术的步骤增减、步骤替换所实现的方案都包括在本发明的保护范围内。
如图3所示,于一实施例中,本发明的的保存日志文件的系统应用于服务器端,所述服务器端包括至少两个服务器;独立于所述服务器中用于写入日志文件的文件写入服务,并使用所述服务器对应的服务器ID唯一地标识所述文件写入服务;所述系统包括接收模块31、判断模块32、第一发送模块33、查询模块34、第二发送模块35及第三发送模块36。
所述接收模块31用于接收客户端发送的文件写入请求;所述文件写入请求中至少包括:待写入数据。
所述判断模块32用于判断所述文件写入请求中是否带服务器ID及所述服务器ID是否有效。
所述第一发送模块33用于在所述服务器ID有效时,根据所述服务器ID将所述待写入数据发送至相应的所述文件写入服务。
所述查询模块34用于在所述文件写入请求中不带有所述服务器ID或所述服务器ID无效时,查询内存数据库中是否有与所述客户端对应的有效的服务器ID。
所述第二发送模块35用于在查询结果为是时,根据所述内存数据库中与所述客户端对应的有效的服务器ID,将所述待写入数据发送至相应的文件写入服务。
所述第三发送模块36用于在所述查询结果为否时,为所述客户端分配一有效的服务器ID,并根据为所述客户端分配的有效的服务器ID,将所述待写入数据发送至相应的文件写入服务。
需要说明的是,该保存日志文件的系统的工作原理与上述保存日志文件的方法的工作原理相同,故在此不再赘述。
需要说明的是,应理解以上系统的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,x模块可以为单独设立的处理元件,也可以集成在上述系统的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述系统的存储器中,由上述系统的某一个处理元件调用并执行以上x模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个数字信号处理器(Digital Signal Processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(System-On-a-Chip,简称SOC)的形式实现。
本发明的存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述的的保存日志文件的方法。所述存储介质包括:只读存储器(Read-Only Memory,ROM)、随机访问存储器(Random Access Memory,RAM)、磁碟、U盘、存储卡或者光盘等各种可以存储程序代码的介质。
如图4所示,本发明的服务器端包括处理器41、存储器42、内存数据库43及至少两个服务器44。
所述存储器42用于存储计算机程序;优选地,所述存储器42包括:ROM、RAM、磁碟、U盘、存储卡或者光盘等各种可以存储程序代码的介质。
所述处理器41(对应前述的前置处理服务)与所述存储器42相连,用于执行所述存储器42存储的计算机程序,以使所述服务器端执行上述的保存日志文件的方法。
优选地,所述处理器41可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
所述服务器44用于保存日志文件。
所述内存数据库43用于存储客户端及与所述客户端对应的服务器ID之间的对应关系。
如图5所示,于一实施例中,本发明的保存日志文件的系统包括上述的服务器端51及客户端52。
具体地,所述客户端52与所述服务器端51连接,用于向所述服务器端51发送文件写入请求。
需要说明的是,该保存日志文件的系统的工作原理与上述保存日志文件的方法的工作原理相同,故在此不再赘述。
下面通过具体实施例来进一步解释说明本发明的保存日志文件的系统。
如图6所示,于一实施例中,该保存日志文件的系统包括两个客户端(分别为图6中的客户端1和客户端2)及一服务器端,其中,该服务器端中包括一内存数据库和两个服务器(假设这两个服务器对应的服务器ID分别为001和002,假设该内存数据库中存储有客户端2与服务器ID001的对应关系),这两个服务器中用于写入日志文件的文件写入服务分别为图6中的文件写入服务1和文件写入服务2,且该文件写入服务1和文件写入服务2均写入至该服务器端的微服务框架中;具体地,该保存日志文件的系统的工作原理如下实施例一和实施例二。
在该服务器端上,且在调用文件写入服务之前开发一前置处理服务(用于执行前述的步骤S1至步骤S9)。
实施例一
当客户端1向服务器端发送文件写入请求(该文件写入请求中包括待写入的日志数据)时,由该前置处理服务首先判断该文件写入请求中是否带有服务器ID,并在判断出该文件写入请求中带有服务器ID时,继续判断该服务器ID是否有效,若该服务器ID有效(假设该服务器ID为002),则直接根据该服务器ID,将客户端1的日志数据发送至微服务框架中相应的文件写入服务(文件写入服务2);若该文件写入请求中不带有服务器ID,或者该文件写入请求中所带的服务器ID是无效的(假设为003),则该前置处理服务查询内存数据库中是否有与该客户端对应的有效的服务器ID,经查询,发现该内存数据库中并不存在客户端1对应的有效的服务器ID,则由该前置处理服务为该客户端1分配一服务器ID,假设分配的服务器ID为001,则直接根据该服务器ID001,将客户端1的日志数据发送至微服务框架中相应的文件写入服务1;同时,该前置处理服务还会向该客户端1发送一设置指令,以使该客户端1基于该设置指令,设置服务器ID为001,则在该客户端1下次再向该服务器端发送文件写入请求时,携带该服务器ID,以便将该客户端1的日志数据发送至同一文件写入服务(文件写入服务1);另外,该前置处理服务还会将该客户端1与服务器ID001的对应关系存储至该内存数据库中,以在后续该客户端1向该服务器端发送的文件写入请求中不带有服务器ID,或者是带有的服务器ID无效时,从该内存数据库中获取该客户端1对应的有效的服务器ID001,以实现将日志数据发送至相应的文件写入服务1。
实施例二
当客户端2向服务器端发送文件写入请求(该文件写入请求中包括待写入的日志数据)时,由该前置处理服务首先判断该文件写入请求中是否带有服务器ID,并在判断出该文件写入请求中带有服务器ID时,继续判断该服务器ID是否有效,若该服务器ID有效(假设该服务器ID为001),则直接根据该服务器ID,将客户端1的日志数据发送至微服务框架中相应的文件写入服务(文件写入服务1);若该文件写入请求中不带有服务器ID,或者该文件写入请求中所带的服务器ID是无效的(假设为003),则该前置处理服务查询内存数据库中是否有与该客户端对应的有效的服务器ID,经查询,发现该内存数据库中存在客户端2对应的有效的服务器ID001,则根据该服务器ID001,将客户端2的日志数据发送至微服务框架中相应的文件写入服务1。
需要说明的是,本发明的的保存日志文件的系统可以实现本发明的的保存日志文件的方法,但本发明的的保存日志文件的方法的实现装置包括但不限于本实施例列举的的保存日志文件的系统的结构,凡是根据本发明的原理所做的现有技术的结构变形和替换,都包括在本发明的保护范围内。
综上所述,本发明的保存日志文件的方法、系统、介质及服务器端,与现有技术相比,本发明实现了将同一个客户端的日志数据处理定位在服务器端的同一进程进行日志文件的写入,有效解决了车机等嵌入式设备难以写入和保存大量日志,而通常的云端解决方案不够理想的问题;本发明中,车机等嵌入式设备的日志数据发送到服务器,由服务器保存为日志文件,开发人员下载日志文件和用数据线或U盘的方式导出日志文件的体验一致,让服务器真正变成了设备的写日志的扩展,突破了设备的闪存容量和写入寿命的限制;本发明中,当大量设备连接服务器端进行日志数据上报时,服务器端可以扩充多台服务器进行多进程处理,由于同一个设备的日志数据只在同一台服务器的同一进程进行处理,完全能确保日志文件写入的正确处理;而且,并不影响日志文件在服务器端的保存和下载,对于车机等嵌入式设备的软件开发和测试意义重大;所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

Claims (6)

1.一种保存日志文件的方法,应用于服务器端,其特征在于,所述服务器端包括至少两个服务器;独立于所述服务器中用于写入日志文件的文件写入服务,并使用所述服务器对应的服务器ID唯一地标识所述文件写入服务;所述方法包括以下步骤:
接收客户端发送的文件写入请求;所述文件写入请求中至少包括:待写入数据;
判断所述文件写入请求中是否带服务器ID及所述服务器ID是否有效;
在所述服务器ID有效时,根据所述服务器ID将所述待写入数据发送至相应的所述
文件写入服务;
在所述文件写入请求中不带有所述服务器ID或所述服务器ID无效时,查询内存数
据库中是否有与所述客户端对应的有效的服务器ID;
在查询结果为是时,根据所述内存数据库中与所述客户端对应的有效的服务器ID,
将所述待写入数据发送至相应的文件写入服务;
在所述查询结果为否时,为所述客户端分配一有效的服务器ID,并根据为所述客户
端分配的有效的服务器ID,将所述待写入数据发送至相应的文件写入服务;
在查询结果为是时或在为所述客户端分配一有效的服务器ID后,所述保存日志文件的方法还包括以下步骤:发送设置指令至所述客户端,以使所述客户端基于所述设置指令,将所述内存数据库中与所述客户端对应的有效的服务器ID设置为所述客户端对应的服务器ID,或将为所述客户端分配的有效的服务器ID设置为所述客户端对应的服务器ID,以使所述客户端后续向所述服务器端发送的文件写入请求中带有所述内存数据库中与所述客户端对应的有效的服务器ID,或带有为所述客户端分配的有效的服务器ID;
将每一所述服务器中的文件写入服务分别独立成一单独的微服务进程写入微服务,并给每一所述微服务进程编号,且任意两个所述微服务进程具有区别编号;将所述待写入数据发送至相应的文件写入服务包括以下步骤:
将所述待写入数据发送至所述微服务中相应编号的微服务进程,以实现将所述待写入数据发送至相应的文件写入服务。
2.根据权利要求1所述的保存日志文件的方法,其特征在于,在为所述客户端分配一有效的服务器ID后,所述保存日志文件的方法还包括以下步骤:将所述客户端及为所述客户端分配的有效的服务器ID之间的对应关系存储至所述内存数据库中。
3.一种保存日志文件的系统,应用于服务器端,其特征在于,所述服务器端包括至少两个服务器;独立于所述服务器中用于写入日志文件的文件写入服务,并使用所述服务器对应的服务器ID唯一标识所述文件写入服务;所述系统包括:接收模块、判断模块、第一发送模块、查询模块、第二发送模块及第三发送模块;
所述接收模块用于接收客户端发送的文件写入请求;所述文件写入请求中至少包括:
待写入数据;
所述判断模块用于判断所述文件写入请求中是否带服务器ID及所述服务器ID是否
有效;
所述第一发送模块用于在所述服务器ID有效时,根据所述服务器ID将所述待写入
数据发送至相应的所述文件写入服务;
所述查询模块用于在所述文件写入请求中不带有所述服务器ID或所述服务器ID无
效时,查询内存数据库中是否有与所述客户端对应的有效的服务器ID;
所述第二发送模块用于在查询结果为是时,根据所述内存数据库中与所述客户端对
应的有效的服务器ID,将所述待写入数据发送至相应的文件写入服务;
所述第三发送模块用于在所述查询结果为否时,为所述客户端分配一有效的服务器
ID,并根据为所述客户端分配的有效的服务器ID,将所述待写入数据发送至相应的文件写入服务;
在查询结果为是时或在为所述客户端分配一有效的服务器ID后,所述保存日志文件的方法还包括以下步骤:发送设置指令至所述客户端,以使所述客户端基于所述设置指令,将所述内存数据库中与所述客户端对应的有效的服务器ID设置为所述客户端对应的服务器ID,或将为所述客户端分配的有效的服务器ID设置为所述客户端对应的服务器ID,以使所述客户端后续向所述服务器端发送的文件写入请求中带有所述内存数据库中与所述客户端对应的有效的服务器ID,或带有为所述客户端分配的有效的服务器ID;
将每一所述服务器中的文件写入服务分别独立成一单独的微服务进程写入微服务,并给每一所述微服务进程编号,且任意两个所述微服务进程具有区别编号;将所述待写入数据发送至相应的文件写入服务包括以下步骤:
将所述待写入数据发送至所述微服务中相应编号的微服务进程,以实现将所述待写入数据发送至相应的文件写入服务。
4.一种存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至2中任一项所述的保存日志文件的方法。
5.一种服务器端,其特征在于,包括:处理器、存储器、内存数据库及至少两个服务器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述存储器存储的计算机程序,以使所述服务器端执行权利要
求1至2中任一项所述的保存日志文件的方法;
所述服务器用于保存日志文件;
所述内存数据库用于存储客户端及与所述客户端对应的服务器ID之间的对应关系。
6.一种保存日志文件的系统,其特征在于,包括权利要求5中所述的服务器端及客户端;
所述客户端与所述服务器端连接,用于向所述服务器端发送文件写入请求。
CN202110569595.2A 2021-05-25 2021-05-25 保存日志文件的方法、系统、介质及服务器端 Active CN113434477B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110569595.2A CN113434477B (zh) 2021-05-25 2021-05-25 保存日志文件的方法、系统、介质及服务器端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110569595.2A CN113434477B (zh) 2021-05-25 2021-05-25 保存日志文件的方法、系统、介质及服务器端

Publications (2)

Publication Number Publication Date
CN113434477A CN113434477A (zh) 2021-09-24
CN113434477B true CN113434477B (zh) 2023-08-04

Family

ID=77802823

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110569595.2A Active CN113434477B (zh) 2021-05-25 2021-05-25 保存日志文件的方法、系统、介质及服务器端

Country Status (1)

Country Link
CN (1) CN113434477B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108491499A (zh) * 2018-03-20 2018-09-04 苏州思必驰信息科技有限公司 数据采集方法、数据采集平台、客户端及业务服务器
US10140467B1 (en) * 2017-10-16 2018-11-27 Dropbox, Inc. Workflow functions of content management system enforced by client device
CN109359007A (zh) * 2018-09-30 2019-02-19 江苏满运软件科技有限公司 错误日志的处理方法、系统、电子设备和存储介质
CN109902074A (zh) * 2019-04-17 2019-06-18 江苏全链通信息科技有限公司 基于数据中心的日志存储方法和系统
CN111680016A (zh) * 2020-05-28 2020-09-18 中国人民银行清算总中心 分布式服务器集群日志数据处理方法、装置及系统
CN112732475A (zh) * 2021-01-13 2021-04-30 北京字节跳动网络技术有限公司 日志收集的方法、装置、电子设备、及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10140467B1 (en) * 2017-10-16 2018-11-27 Dropbox, Inc. Workflow functions of content management system enforced by client device
CN108491499A (zh) * 2018-03-20 2018-09-04 苏州思必驰信息科技有限公司 数据采集方法、数据采集平台、客户端及业务服务器
CN109359007A (zh) * 2018-09-30 2019-02-19 江苏满运软件科技有限公司 错误日志的处理方法、系统、电子设备和存储介质
CN109902074A (zh) * 2019-04-17 2019-06-18 江苏全链通信息科技有限公司 基于数据中心的日志存储方法和系统
CN111680016A (zh) * 2020-05-28 2020-09-18 中国人民银行清算总中心 分布式服务器集群日志数据处理方法、装置及系统
CN112732475A (zh) * 2021-01-13 2021-04-30 北京字节跳动网络技术有限公司 日志收集的方法、装置、电子设备、及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Cookie技术在Web日志挖掘预处理中的应用;周增国;庞有军;;大连大学学报(第02期);59-62 *
基于Web日志挖掘中的数据预处理;李晓军;;中国高新技术企业(第24期);157-158+164 *

Also Published As

Publication number Publication date
CN113434477A (zh) 2021-09-24

Similar Documents

Publication Publication Date Title
CA3129982A1 (en) Method and system for accessing distributed block storage system in kernel mode
CN110806942B (zh) 数据处理的方法和装置
CN111221653A (zh) 一种服务处理方法、装置及计算机可读存储介质
EP3724776A1 (en) Method, function manager and arrangement for handling function calls
CN112835885A (zh) 一种分布式表格存储的处理方法、装置及系统
CN113434477B (zh) 保存日志文件的方法、系统、介质及服务器端
CN114416470A (zh) 一种云端监控方法、系统、设备及计算机存储介质
CN111125168B (zh) 一种数据处理方法、装置、电子设备及存储介质
CN111538785A (zh) 区块链的数据写入方法、装置、系统及电子设备
CN115760405A (zh) 交易执行方法、装置、计算机设备及介质
CN114363211A (zh) 一种灾备系统网络的网络连通验证方法及相关设备
CN113961566A (zh) 一种交易流水的处理方法及系统
CN113326201A (zh) 基于分布式系统的软件测试方法、电子设备及存储介质
KR20220069113A (ko) 데이터 구조, 저장 수단 및 장치
CN114510460A (zh) 一种数据库系统的扩容方法、装置及电子设备、存储介质
CN111639089B (zh) 事务处理方法、装置、电子设备和计算机可读存储介质
CN111737223A (zh) 一种文件拷贝方法、装置、设备及存储介质
CN110879747B (zh) 资源管理方法及装置
CN112860746B (zh) 一种基于缓存削减的方法、设备及系统
CN116720818B (zh) 基于区块链的仓储处理方法、装置、计算机设备
CN113467960B (zh) 基于共享锁的多路径存储方法、系统、终端及存储介质
US7584271B2 (en) Method, system, and computer readable medium for delaying the configuration of a shared resource
CN117539802B (zh) 一种缓存操作方法、系统以及相关装置
CN117193662A (zh) 快照卷的io处理方法、系统、终端及存储介质
CN116431540A (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