一种日志记录的方法和系统的制作方法

文档序号:6442749阅读:200来源:国知局
专利名称:一种日志记录的方法和系统的制作方法
技术领域
本申请涉及系统日志处理的技术领域,特别是涉及一种日志记录的方法和一种日志记录的系统。
背景技术
在一个应用系统中,日志是一个非常重要的功能组成部分,目前,应用系统普遍使用磁盘日志作为应用系统的附带功能。日志可以用来记录应用系统产生的所有行为,包括业务操作行为以及系统框架本身的行为,并按照某种规范表达出来。有了这些记录,相关技术人员就可进行系统层面或业务层面的排错,以及系统性能的优化。通常的日志记录方法是,将日志实时地记录到应用服务器的本地磁盘上,相关技术人员登录到该应用服务器上查看日志。可以理解,日志记录需要进行磁盘操作以及文件的读写操作,而应用系统的业务处理在内存中进行,因为磁盘操作比内存操作慢,使用磁盘的性能比使用内存的性能低(通常内存的读写比磁盘的读写快10倍以上),所以日志记录比业务处理慢。然而,在应用系统中,业务处理的量是跟日志记录成正比的,因而业务处理的效率会受日志记录的影响较大。尤其在高并发、系统繁忙的情况下,日志实时记录在应用服务器的本地磁盘上会是应用系统的性能瓶颈,不仅会消耗服务器的资源,还会制约应用系统业务处理的吞吐量。因此,目前需要本领域技术人员迫切解决的一个技术问题就是:创造性地提出一种日志记录的机制,用以消除应用系统中日志记录所带来的性能瓶颈,节约服务器的资源,提高应用系统业务处理的吞吐量。

发明内容
本申请所要解决的技术问题是提供一种日志记录的方法和系统,消除应用系统中日志记录所带来的性能瓶颈,节约服务器的资源,提高应用系统业务处理的吞吐量。为了解决上述问题,本申请公开了一种日志记录的方法,具体可以包括:生成日志;检测应用系统当前的负载状态;若当前负载状态达到第一预设阈值,则将日志写入预置的缓存中;在所述应用系统的负载状态满足预设条件时,将所述缓存中的日志写入应用系统的本地硬盘。优选的是,所述预置的缓存为预置的日志缓存服务器,所述将日志写入预置的缓存中的步骤为,将日志通过光纤网络传输给预置的日志缓存服务器。优选的是,所述预置的缓存设置在所述应用系统内存中,在所述将缓存中的日志写入应用系统的本地硬盘的步骤之前,所述的方法还可以包括:当所述缓存中所写入的日志到达一定容量时,将所述缓存中的日志通过光纤网络传输给预置的日志缓存服务器;或者,按照预设时间间隔,将所述缓存中的日志通过光纤网络传输给预置的日志缓存服务器。优选的是,所述的方法,还可以包括:若当前负载状态未达到第一预设阈值,或,当前负载状态达到第二预设阈值,则将日志直接写入应用系统的本地硬盘。优选的是,所述的方法,还可以包括:在预设时间启动日志回导线程;由所述日志回导线程判断应用系统当前的负载状态是否满足预设条件。优选的是,所述的方法,还可以包括:将所述日志缓存服务器中的日志写入应用系统的本地硬盘。优选的是,所述负载状态为应用系统的平均负载参数,和/或,硬盘剩余空间量和内存剩余空间量。本申请同时公开了一种日志记录的系统,具体可以包括:日志生成模块,用于生成日志;第一负载检测模块,用于检测应用系统当前的负载状态,并判断当前负载状态是否达到第一预设阈值,若是,则调用缓存写入模块;缓存写入模块,用于将日志写入预置的缓存中;第二负载检测模块,用于判断所述应用系统的负载状态是否满足预设条件,若是,则调用第一硬盘写入模块;第一硬盘写入模块,用于将所述缓存中的日志写入应用系统的本地硬盘。优选的是,所述预置的缓存为预置的日志缓存服务器,所述缓存写入模块可以包括:日志获取子模块,用于获取所生成的日志;第一日志传输子模块,用于将所述日志通过光纤网络传输给预置的日志缓存服务器。优选的是,所述预置的缓存设置在所述应用系统内存中,所述的系统还可以包括:条件判断子模块,用于判断所述缓存中所写入的日志是否到达一定容量,和/或,判断是否满足预设时间间隔;若是,则调用第二日志传输子模块;第二日志传输子模块,用于将所述缓存中的日志通过光纤网络传输给预置的日志缓存服务器。优选的是,所述的系统,还可以包括:第二硬盘写入模块,用于在当前负载状态未达到第一预设阈值,或,当前负载状态达到第二预设阈值时,将日志直接写入应用系统的本地硬盘。优选的是,所述的系统,还可以包括:线程启动模块,用于在预设时间启动日志回导线程;由所述日志回导线程调用第二负载检测模块。
优选的是,所述的系统,还可以包括:第三硬盘写入模块,用于将所述日志缓存服务器中的日志写入应用系统的本地硬盘。与现有技术相比,本申请包括以下优点:本申请结合了弹性计算思想与日志记录,创造性地提出了可伸缩地日志记录方案,通过自动检测系统当前负载,并应用到日志记录过程中,当系统资源严重不足时,降低日志记录的资源消耗,加快日志记录的速度,从而消除了应用系统中日志记录所带来的性能瓶颈,节约了服务器的资源,提高了应用系统业务处理的吞吐量。应用本申请实施例,对应用系统来说没有任何变化,是透明的,现有应用系统在业务上无需做任何改动。在某些恶劣的环境下,尤其在高并发、系统繁忙、系统资源严重不够用的情况下,能尽最大可能地保证应用系统的业务处理效率而不是日志记录。并且,本申请还采用了日志回导机制保证了日志的完整性,达到日志无损的目的。另外,本申请还采用了光纤网络通信有效保证日志传输的时效性。


图1是本申请的一种日志记录的方法实施例1的步骤流程图;图2是本申请的一种日志记录的方法实施例2的步骤流程图;图3是本申请的一种日志记录的系统实施例1的结构框图;图4为本申请的一种日志记录的系统实施例2的结构框图。
具体实施例方式为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本申请作进一步详细的说明。参照图1,示出了本申请的一种日志记录的方法实施例1的步骤流程图,具体可以包括如下步骤:步骤101、生成日志;当应用系统的业务处理模块需要记录日志时,例如,在有页面访问请求或服务调用请求到达时,则生成相应的日志。在实际中,日志可以记录下系统所产生的所有行为,并按照某种规范表达出来。我们可以使用日志系统所记录的信息为系统进行排错,优化系统的性能,或者根据这些信息调整系统的行为。在安全领域,日志的重要地位尤甚。通常,每种应用系统的日志都有根据其自身要求设计的形式和规范,在本申请实施例中,对所述日志的形式和规范不作限制。步骤102、检测应用系统当前的负载状态;作为本申请实施例的一种示例,所述负载状态可以为应用系统的平均负载参数,和/或,硬盘剩余空间量和内存剩余空间量。以Java系统为例,可以通过JDK (JDK是整个Java的核心,包括了 Java运行环境(Java Runtime Envirnment) ,Java 工具和 Java 基础的类库(rt.jar) ,Java 应用服务器实质都是内置了某个版本的JDK)自带的函数:double
Java.lang.management.0peratingSystemMXBean.getSystemLoadAverage (): ! 取系统的平均负载参数load。或者,还可以通过第三方包,比如sigar.jar,来获取硬盘剩余空间和内存剩余空间等系统关键性能信息。步骤103、判断当前负载状态是否达到第一预设阈值,若是,则执行步骤104 ;若否,则执行步骤105;在具体实现中,所述第一预设阈值可以由本领域技术人员根据负载状态的检测方式任意设置,例如,在负载状态为系统平均负载参数时,可以设置阈值为3,也就是说,当检测到应用系统当前的系统平均负载参数大于或等于3时,可以判定应用系统当前的负载过高,于是执行步骤104,否则,可以判定应用系统当前的负载较低,于是执行步骤105。或如,在负载状态为系统关键性能参数时,可以设置阈值为硬盘剩余空间为5%或内存剩余空间为5%,也就是说,当检测到应用系统当前的硬盘剩余空间或内存剩余空间小于5%时,可以判定应用系统当前的负载过高,于是执行步骤104,否则,可以判定应用系统当前的负载较低,于是执行步骤105。当然,上述阈值仅仅用作示例,根据实际情况的不同,所述阈值设置可能有多种变化。例如,可以设置两个阈值,假设为第一预设阈值和第二预设阈值,当检测到应用系统当前的负载状态大于第一预设阈值时,可以判定应用系统当前的负载过高,于是执行步骤104,当检测到应用系统当前的负载状态小于第二预设阈值时,可以判定应用系统当前的负载较低,于是执行步骤105,本申请对所述阈值的设置不作任何限制。步骤104、将日志写入预置的缓存中;转步骤106 ;

在本申请的一种优选实施例中,所述预置的缓存可以为预置的日志缓存服务器,在这种情况下,为保证日志写入的速度,所述步骤104可以为:将日志通过光纤网络传输给预置的日志缓存服务器。其中,光纤网络是利用光在玻璃或塑料制成的纤维中的全反射原理而达成的光传导工具。光纤通信是利用光波在光导纤维中传输信息的通信方式。由于激光具有高方向性、高相干性、高单色性等显著优点,光纤通信中的光波主要是激光,所以又叫做激光-光纤通信。光纤通信的原理是:在发送端首先要把传送的信息(如话音)变成电信号,然后调制到激光器发出的激光束上,使光的强度随电信号的幅度(频率)变化而变化,并通过光纤发送出去;在接收端,检测器收到光信号后把它变换成电信号,经解调后恢复原信息。采用光纤网络通信将有效保证日志从应用系统传输至日志缓存服务器的时效性,并且在本实施例中,采用独立设置的日志缓存服务器,在应用系统负载较高时将日志写入该日志缓存服务器,可以充分节省应用系统的资源,缓解应用系统的压力,提高应用系统业务处理的效率。步骤105、将日志直接写入应用系统的本地硬盘。在应用系统的当前负载不高的情况下,则可以直接将日志写入应用系统的本地硬盘,即执行常规的日志写入操作。步骤106、在所述应用系统的负载状态满足预设条件时,将所述缓存中的日志写入应用系统的本地硬盘。在具体实现中,所述预设条件可以为判断应用系统的负载较低的任一状态阈值。例如,在负载状态为系统平均负载参数,可以设置状态阈值为1,也就是说,当检测到应用系统当前的系统平均负载参数小于或等于I时,可以判定应用系统当前的负载状态满足预设条件,即当前应用系统的负载较低,于是将所述缓存中的日志写入应用系统的本地硬盘。或如,在负载状态为系统关键性能参数时,可以设置状态阈值为硬盘剩余空间为90 %或内存剩余空间为90 %,也就是说,当检测到应用系统当前的硬盘剩余空间或内存剩余空间大于或等于90%时,可以判定应用系统当前的负载状态满足预设条件,即当前应用系统的负载较低,于是将所述缓存中的日志写入应用系统的本地硬盘。应用本申请实施例,对应用系统来说没有任何变化,是透明的,现有应用系统在业务上无需做任何改动。在某些恶劣的环境下,尤其在高并发、系统繁忙、系统资源严重不够用的情况下,能尽最大可能地保证应用系统的业务处理效率而不是日志记录。并且,在应用系统负载较低的情况下,日志记录在本地硬盘,在应用系统负载较高的情况下,日志会被存储到日志缓存服务器上,即日志被分开存储在了两个地方,考虑到集中管理以及问题排查的便捷性,本申请还会在应用系统负载较低的情况下,将日志缓存服务器上的日志回写到应用系统的本地硬盘上,保证了日志的完整性,达到了无损的目的。本申请实施例结合了弹性计算思想与日志记录,创造性地提出了可伸缩地日志记录方案。其实是相当于损失了日志的实时记录而保全业务处理效率,对业务稳定性方面有很大的提升。隐含了对应用功能进行分级的思想,其中业务功能的等级比日志记录的等级要高,在极端情况下可以损失等级低的功能,保全等级高的功能。参照图2,其示出了本申请的一种日志记录的方法实施例2的步骤流程图,具体可以包括如下步骤:步骤201、生成日志;步骤202、检测应用系统当前的负载状态;作为本申请实施例的一种示例,所述负载状态可以为应用系统的平均负载参数,和/或,硬盘剩余空间量和内存剩余空间量。步骤203、判断当前负载状态是否达到第一预设阈值,若是,则执行步骤204;若否,则执行步骤205;步骤204、将日志写入预置的缓存中;转步骤206 ;在本申请的一种优选实施例中,所述预置的缓存设置在所述应用系统内存中。公知的是,内存的读写速度要大大高于本地硬盘的读写速度,因而将日志写入内存中,将保证日志写入的时效性,提高应用系统的处理效率。步骤205、将日志直接写入应用系统的本地硬盘。步骤206、当所述缓存中所写入的日志到达一定容量时,或者,按照预设时间间隔,将所述缓存中的日志通过光纤网络传输给预置的日志缓存服务器;在本实施例中,日志所写入的预置缓存设置在内存中,而内存有相对严格的容量控制,因而在本申请的一种优选实施例中,可以设置一容量阈值,比如为75%,也就是说,当写入的日志到达预置缓存容量的75%时,则将设置在应用系统内存中的缓存进行清空,将缓存中原有的日志记录到远端的日志缓存服务器中去。同时,应用系统与日志缓存服务器也采用光纤网络通信的方式,以保证传输的时效性。在本申请的另一种优选实施例中,也可以按照预设的时间间隔对缓存进行清空,例如,根据经验值设置每隔五小时,将缓存中的日志通过光纤网络传输给预置的日志缓存服务器。当然,上述清空缓存的条件均只用作示例,本领域技术人员根据实际情况任意设置所述触发缓存清空的条件均是可行的,本申请对此无需加以限制。步骤207、在预设时间启动日志回导线程;步骤208、由所述日志回导线程判断应用系统当前的负载状态是否满足预设条件,若是,则执行步骤209 ;步骤209、将所述缓存中的日志,以及,日志缓存服务器中的日志写入应用系统的本地硬盘。在具体实现中,可以在应用系统中设置单独的线程进行日志回导操作,即日志回导线程。所述日志回导操作即指,将所述缓存中的日志,以及,日志缓存服务器中的日志写入应用系统的本地硬盘的操作。所述日志回导线程可以被限定在一个特定的条件下执行,比如凌晨三点应用系统相对空闲的时候,该线程内部首先检测应用系统的当前负载状态,如果负载较低,则从应用系统中的缓存,和/或,日志缓存服务器上获取缓存的日志,再将取回来的日志记录到应用系统本地硬盘上的日志文件,如果负载较高则不做任何事情。在本申请实施例中,日志回导线程对应用系统进行负载检测的机制,以及,所述日志回导线程的启动限制条件一起形成对应用系统的双重防护。应用本实施例,在应用系统负载较低的情况下,日志记录在本地硬盘,在应用系统负载较高的情况下,日志会被存储到应用系统的缓存中,在某种条件下,如缓存容量将满,或按规定的时间间隔,缓存中的日志将被传输至日志缓存服务器上,即日志被分开存储在了三个地方,对日志应用功能进行了进一步的分级。考虑到集中管理以及问题排查的便捷性,本申请还会在应用系统负载较低的情况下,将应用系统缓存和日志缓存服务器上的日志回写到应用系统的本地硬盘上,保证了日志的完整性,达到了无损的目的。需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。参照图3,示出了本申请的一种日志记录的系统实施例1的结构框图,具体可以包括以下模块:日志生成模块301,用于生成日志;第一负载检测模块302,用于检测应用系统当前的负载状态,并判断当前负载状态是否达到第一预设阈值,若是,则调用缓存写入模块303 ;若否,则调用第二硬盘写入模块
304;缓存写入模块303,用于将日志写入预置的缓存中;然后调用第二负载检测模块
305;第二硬盘写入模块304,用于将日志直接写入应用系统的本地硬盘;作为本申请的另一种优选实施例,所述第二硬盘写入模块303还可以在当前负载状态达到第二预设阈值时,将日志直接写入应用系统的本地硬盘。
第二负载检测模块305,用于判断所述应用系统的负载状态是否满足预设条件,若是,则调用第一硬盘写入模块306 ;第一硬盘写入模块306,用于将所述缓存中的日志写入应用系统的本地硬盘。在本申请的一种优选实施例中,所述预置的缓存可以为预置的日志缓存服务器,在这种情况下,所述缓存写入模块302可以包括以下子模块:日志获取子模块,用于获取所生成的日志;第一日志传输子模块,用于将所述日志通过光纤网络传输给预置的日志缓存服务器。对于图3所示的系统实施例而言,由于其与图1所示的方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可,本申请在此不再赘述。参照图4,示出了本申请的一种日志记录的系统实施例2的结构框图,具体可以包括以下模块:日志生成模块401,用于生成日志;第一负载检测模块402,用于检测应用系统当前的负载状态,并判断当前负载状态是否达到第一预设阈值,若是,则调用缓存写入模块403 ;若否,则调用第二硬盘写入模块
406;缓存写入模块403,用于将日志写入预置的缓存中;所述预置的缓存设置在所述应用系统内存中:条件判断子模块404,用于判断所述缓存中所写入的日志是否到达一定容量,和/或,判断是否满足预设时间间隔;若是,则调用第二日志传输子模块405 ;第二日志传输子模块405,用于将所述缓存中的日志通过光纤网络传输给预置的日志缓存服务器。第二硬盘写入模块406,用于将日志直接写入应用系统的本地硬盘;线程启动模块407,用于在预设时间启动日志回导线程;由所述日志回导线程调用第二负载检测模块408。第二负载检测模块408,用于判断所述应用系统的负载状态是否满足预设条件,若是,则调用硬盘写入模块409和第三硬盘写入模块410 ;第一硬盘写入模块409,用于将所述缓存中的日志写入应用系统的本地硬盘。第三硬盘写入模块410,用于将所述日志缓存服务器中的日志写入应用系统的本地硬盘。对于图4所示的系统实施例而言,由于其与图2所示的方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可,本申请在此不再赘述。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或
者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,
并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。以上对本申请所提供的一种日志记录的方法和一种日志记录的系统,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
权利要求
1.一种日志记录的方法,其特征在于,包括: 生成日志; 检测应用系统当前的负载状态; 若当前负载状态达到第一预设阈值,则将日志写入预置的缓存中; 在所述应用系统的负载状态满足预设条件时,将所述缓存中的日志写入应用系统的本地硬盘。
2.根据权利要求1所述的方法,其特征在于,所述预置的缓存为预置的日志缓存服务器,所述将日志写入预置的缓存中的步骤为, 将日志通过光纤网络传输给预置的日志缓存服务器。
3.根据权利要求1所述的方法,其特征在于,所述预置的缓存设置在所述应用系统内存中,在所述将缓存中的日志写入应用系统的本地硬盘的步骤之前,所述的方法还包括: 当所述缓存中所写入的日志到达一定容量时,将所述缓存中的日志通过光纤网络传输给预置的日志缓存服务器; 或者, 按照预设时间间隔,将所述缓存中的日志通过光纤网络传输给预置的日志缓存服务器。
4.根据权利要求1或2或3所述的方法,其特征在于,还包括: 若当前负载状态未达到第一预设阈值,或,当前负载状态达到第二预设阈值,则将日志直接写入应用系统的本地硬盘。
5.根据权利要求1或2或3所述的方法,其特征在于,还包括: 在预设时间启动日志回导线程; 由所述日志回导线程判断应用系统当前的负载状态是否满足预设条件。
6.根据权利要求3所述的方法,其特征在于,还包括: 将所述日志缓存服务器中的日志写入应用系统的本地硬盘。
7.根据权利要求1或2或3或6所述的方法,其特征在于,所述负载状态为应用系统的平均负载参数,和/或,硬盘剩余空间量和内存剩余空间量。
8.一种日志记录的系统,其特征在于,包括: 日志生成模块,用于生成日志; 第一负载检测模块,用于检测应用系统当前的负载状态,并判断当前负载状态是否达到第一预设阈值,若是,则调用缓存写入模块; 缓存写入模块,用于将日志写入预置的缓存中; 第二负载检测模块,用于判断所述应用系统的负载状态是否满足预设条件,若是,则调用第一硬盘写入模块; 第一硬盘写入模块,用于将所述缓存中的日志写入应用系统的本地硬盘。
9.根据权利要求8所述的系统,其特征在于,所述预置的缓存为预置的日志缓存服务器,所述缓存写入模块包括: 日志获取子模块,用于获取所生成的日志; 第一日志传输子模块,用于将所述日志通过光纤网络传输给预置的日志缓存服务器。
10.根据权利要求8所述的系统,其特征在于,所述预置的缓存设置在所述应用系统内存中,所述的系统还包括: 条件判断子模块,用于判断所述缓存中所写入的日志是否到达一定容量,和/或,判断是否满足预设时间间隔;若是,则调用第二日志传输子模块; 第二日志传输子模块,用于将所述缓存中的日志通过光纤网络传输给预置的日志缓存服务器。
11.根据权利要求8或9或10所述的系统,其特征在于,还包括: 第二硬盘写入模块,用于在当前负载状态未达到第一预设阈值,或,当前负载状态达到第二预设阈值时,将日志直接写入应用系统的本地硬盘。
12.根据权利要求8或9或10所述的系统,其特征在于,还包括: 线程启动模块,用于在预设时间启动日志回导线程; 由所述日志回导线程调用第二负载检测模块。
13.根据权利要求10所述的系统,其特征在于,还包括: 第三硬盘写入模块,用 于将所述日志缓存服务器中的日志写入应用系统的本地硬盘。
全文摘要
本申请提供了一种日志记录的方法和系统,其中,所述方法包括生成日志;检测应用系统当前的负载状态;若当前负载状态达到第一预设阈值,则将日志写入预置的缓存中;在所述应用系统的负载状态满足预设条件时,将所述缓存中的日志写入应用系统的本地硬盘。用以消除应用系统中日志记录所带来的性能瓶颈,节约服务器的资源,提高应用系统业务处理的吞吐量。本申请能够消除应用系统中日志记录所带来的性能瓶颈,节约服务器的资源,提高应用系统业务处理的吞吐量。
文档编号G06F11/34GK103176888SQ20111043625
公开日2013年6月26日 申请日期2011年12月22日 优先权日2011年12月22日
发明者刘冬东 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1