一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种系统慢查询分析方法、装置、介质与流程

2022-11-14 02:45:18 来源:中国专利 TAG:


1.本技术涉及elasticsearch系统维护领域,特别是涉及一种系统慢查询分析方法、装置、介质。


背景技术:

2.随着大数据的发展,以elasticsearch(一种分布式全文搜索引擎)等为代表的非关系型数据库快速崛起,满足了企业对于海量文档型数据的存储和查询需求,得到了广泛的应用。由于产品功能迭代较快、数据量过大,可能会导致elasticsearch系统在数据写入、数据查询等过程中出现性能瓶颈或系统故障,其中,数据查询过程由于涉及到的系统节点和数据量较大,容易出现查询缓慢导致查询任务超时的情况。
3.在具体实施中,需要对出现超时的查询任务进行分析,以优化elasticsearch系统性能,提高查询速度。目前主要通过官方提供的慢查询日志确定超时查询任务,但由于elasticsearch系统各节点独立确定超时查询任务,且仅记录执行完成的超时查询任务,导致慢查询日志的时效性较低且存储混乱。同时,由于elasticsearch系统资源有限,当存在高负载查询任务时,可能使系统中的其他查询任务的效率也随之降低,导致系统将受到影响的正常查询任务判定为慢查询任务,影响后续对elasticsearch系统的分析和改进。
4.由此可见,如何提供一种准确且高效的系统慢查询分析方法,以防止由于系统计算资源不足导致查询任务误判的情况,是本领域技术人员亟需解决的问题。


技术实现要素:

5.本技术的目的是提供一种系统慢查询分析方法、装置、介质,以准确且高效的获取elasticsearch系统中的超时查询任务,以便于根据超时查询任务对elasticsearch系统进行分析和改进。
6.为了解决上述技术问题,本技术提供了一种系统慢查询分析方法,包括:
7.获取模型库中目标模型,其中,所述模型库为用于存储超时查询任务所对应的超时模型的数据库,所述超时查询任务为利用elasticsearch系统查询接口获得的查询时间大于第一阈值时间的查询任务,所述目标模型为所述数据库中满足第一预设条件的超时模型;
8.根据各所述目标模型的查询条件和数据量、与各所述目标模型所对应的查询任务样例对所述目标模型进行分析,并获取模型评分;
9.对所述模型评分高于阈值的所述目标模型进行分析,以确定查询任务的超时原因。
10.优选的,还包括:
11.获取各检测周期内各elasticsearch节点中的所述超时查询任务;
12.判断所述模型库中是否存在与所述超时查询任务对应的所述超时模型;
13.若存在所述超时模型,则将所述超时查询任务存入与所述超时模型相对应的样例
库中;
14.若不存在所述超时模型,则将所述超时模型存入所述模型库中。
15.优选的,所述第一预设条件为:
16.在第二阈值时间内未执行分析;
17.或所述目标模型的所对应的查询样例的变化量大于样例阈值。
18.优选的,所述根据各所述目标模型的查询条件和数据量、与各所述目标模型所对应的查询任务样例对所述目标模型进行分析包括:
19.根据所述目标模型的描述语言构建与所述目标模型对应的树结构,以确定所述目标模型的查询条件数和昂贵查询类别个数;
20.获取与所述目标模型对应的查询任务样例,并根据所述树结构和所述查询任务样例确定查询条件总长度和数据量;
21.根据所述目标模型的所述查询条件数、所述昂贵查询类别个数、所述查询条件总长度和所述数据量计算所述目标模型的所述模型评分。
22.优选的,所述根据所述目标模型的所述查询条件数、所述昂贵查询类别个数、所述查询条件总长度和所述数据量计算所述目标模型的所述模型评分包括:
23.确定所述查询条件数、所述昂贵查询类别个数、所述查询条件总长度和所述数据量所对应的权重;其中,所述昂贵查询类别个数、所述数据量、所述查询条件总长度、所述查询条件数的权重依次减小。
24.优选的,所述判断所述模型库中是否存在与所述超时查询任务对应的所述超时模型,包括:
25.构建与所述超时查询任务所对应的检测模型,并计算所述检测模型的检测标识符,其中,所述检测标识符为md5;
26.判断所述检测标识符与各所述超时模型的标识符是否相同;
27.若与各所述超时模型的标识符均不相同,则确定所述模型库中不存在与所述超时查询任务对应的所述超时模型。
28.优选的,所述对所述模型评分高于阈值的所述目标模型进行分析的步骤后,还包括:根据所述超时原因对elasticsearch系统的查询任务进行优化。
29.为了解决上述技术问题,本技术还提供了一种系统慢查询分析装置,包括:
30.获取模块,用于获取模型库中目标模型,其中,所述模型库为用于存储超时查询任务所对应的超时模型的数据库,所述超时查询任务为利用elasticsearch系统查询接口获得的查询时间大于第一阈值时间的查询任务,所述目标模型为所述数据库中满足第一预设条件的超时模型;
31.评分模块,用于根据各所述目标模型的查询条件和数据量、与各所述目标模型所对应的查询任务样例对所述目标模型进行分析,并获取模型评分;
32.分析模块,用于对所述模型评分高于阈值的所述目标模型进行分析,以确定查询任务的超时原因。
33.为了解决上述技术问题,本技术还提供了一种系统慢查询分析装置,包括存储器,用于存储计算机程序;
34.处理器,用于执行所述计算机程序时实现所述的系统慢查询分析方法的步骤。
35.为了解决上述技术问题,本技术还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的系统慢查询分析方法的步骤。
36.本技术提供了一种系统慢查询分析方法,包括:获取模型库中目标模型,以便于根据目标模型对慢查询任务进行分析,其中,模型库为用于存储超时查询任务所对应的超时模型的数据库,超时查询任务为查询时间大于第一阈值时间的查询任务,目标模型为数据库中满足第一预设条件的超时模型。根据各目标模型的查询条件和数据量、与各目标模型所对应的查询任务样例对目标模型进行分析,并获取模型评分,以排除由于计算资源被抢占导致超时的查询任务,防止查询任务误判干扰后续分析工作。对模型评分高于阈值的目标模型进行分析,以确定查询任务的超时原因。由此可见,本技术所提供的技术方案,通过对模型库中超时查询任务的模型进行分析和评分,以去除数据库中误判的模型,以便于根据实际超时查询任务对elasticsearch系统进行分析和改进。
37.此外,本技术还提供了一种系统慢查询分析装置、介质,与上述方法对应,效果同上。
附图说明
38.为了更清楚地说明本技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
39.图1为本技术实施例所提供的一种系统慢查询分析方法的流程图;
40.图2为本技术实施例所提供的一种系统慢查询分析装置的结构图;
41.图3为本技术另一实施例提供的系统慢查询分析装置的结构图。
具体实施方式
42.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本技术保护范围。
43.本技术的核心是提供一种系统慢查询分析方法、装置、介质,以准确且高效的获取elasticsearch系统中的超时查询任务,以便于根据超时查询任务对elasticsearch系统进行分析和改进。
44.在elasticsearch系统工作过程中,数据查询过程由于涉及到的系统节点和数据量较大,容易出现查询缓慢导致查询任务超时的情况。为了对elasticsearch系统进行优化,需要获取系统中超时查询任务,并对超时查询任务进行分析。但超时查询任务包括:由于自身逻辑问题导致的超时任务,和由于系统资源被抢占导致的超时任务。后一种并不能够反应elasticsearch系统中存在的问题,因此,需要在对超时查询任务进行分析时将后一种查询任务去除。为了解决这一问题,本技术实施例提供了一种系统慢查询分析方法,包括:获取模型库中目标模型,以便于根据目标模型对慢查询任务进行分析,其中,模型库为用于存储超时查询任务所对应的超时模型的数据库,超时查询任务为查询时间大于第一阈
值时间的查询任务,目标模型为数据库中满足第一预设条件的超时模型。根据各目标模型的查询条件和数据量、与各目标模型所对应的查询任务样例对目标模型进行分析,并获取模型评分,以排除由于计算资源被抢占导致超时的查询任务,防止查询任务误判干扰后续分析工作。对模型评分高于阈值的目标模型进行分析,以确定查询任务的超时原因。由此可见,本技术所提供的技术方案,通过对模型库中超时查询任务的模型进行分析和评分,以去除数据库中误判的模型,以便于根据实际超时查询任务对elasticsearch系统进行分析和改进。
45.为了使本技术领域的人员更好地理解本技术方案,下面结合附图和具体实施方式对本技术作进一步的详细说明。
46.图1为本技术实施例所提供的一种系统慢查询分析方法的流程图,如图1所示,该方法包括:
47.s10:获取模型库中目标模型,其中,模型库为用于存储超时查询任务所对应的超时模型的数据库,超时查询任务为利用elasticsearch系统查询接口获得的查询时间大于第一阈值时间的查询任务,目标模型为数据库中满足第一预设条件的超时模型;
48.在具体实施中,可以每隔预设时间对模型库中的模型执行一次本技术所提供的慢查询分析方法,也可以在模型库中的模型变化量大于阈值时执行,此处不做限定。
49.可以理解的是,目标模型为目标模型为数据库中满足第一预设条件的超时模型,其中,第一预设条件包括:从未进行分析和评分的模型或所对应的查询样例的变化量大于样例阈值的模型等。需要注意的是,由于各目标模型的评分为根据模型信息和查询任务实例确定的,且elasticsearch系统的整体资源量也在不断变化,因此,需要对已经完成分析和评分的模型再次进行分析,所以,上述第一预设条件还包括在第二阈值时间内未执行分析的模型。
50.需要注意的是,elasticsearch系统虽然会提供慢查询日志,但由于其滞后性,慢查询日志中并不能查询到当前未完成的超时任务,影响评分结果。为了解决这一问题,可以每隔预设时间(例如:1分钟)执行一次采集任务。通过elasticsearch系统的任务管理api,获取当前正在执行的查询任务。
51.请求获取命令如下:get_tasks?actions=*search&detailed
52.响应结果示例:
53.{"nodes":{"otultx4iqmouuveiohtt8a":{"name":"h5dffea","transport_address":"127.0.0.1:9300","host":"127.0.0.1","ip":127.0.0.1:9300","tasks":{"otultx4iqmouuveiohtt8a:464":{"node":"otultx4iqmouuveiohtt8a","id":464,"type":"transport","action":"indices:data/read/search","description":"indices[test],types[test],search_type[query_then_fetch],source[{\"query\":...}]","start_time_in_millis":1483478610008,"running_time_in_nanos":13991383,"cancellable":true,"cancelled":false}}}}}
[0054]
其中description为具体的查询信息,start_time_in_millis为查询开始时间戳,running_time_in_nanos为查询耗时(纳秒),筛选查询耗时超过预设时间的查询信息。
[0055]
s11:根据各目标模型的查询条件和数据量、与各目标模型所对应的查询任务样例对目标模型进行分析,并获取模型评分。
[0056]
可以理解的是,为了使评分能够更准确的反应各目标模型优劣程度,可以结合目标模型的查询条件、数据量和各目标模型所对应的查询任务样例对目标模型进行分析,并获取模型评分。具体的,对目标模型进行分析包括:根据目标模型的描述语言构建与目标模型对应的树结构,以确定目标模型的查询条件数和昂贵查询类别个数;获取与目标模型对应的查询任务样例,并根据树结构和查询任务样例确定查询条件总长度和数据量;根据目标模型的查询条件数、昂贵查询类别个数、查询条件总长度和数据量计算目标模型的模型评分。
[0057]
s12:对模型评分高于阈值的目标模型进行分析,以确定查询任务的超时原因。
[0058]
可以理解的是,在获取各目标模型的评分后,还需要判断各目标模型的评分是否大于阈值,若不大于阈值,则表明目标模型所对应的超时查询任务是由于系统资源不足导致超时,无需对该任务进行分析。若大于阈值,则表明该目标模型所对应的超时查询任务存在结构或逻辑上的问题,需要进行分析,以定查询任务的超时原因。
[0059]
可以理解的是,获取超时原因后,还需要根据超时原因对elasticsearch系统的查询任务进行优化。
[0060]
本技术提供了一种系统慢查询分析方法,包括:获取模型库中目标模型,以便于根据目标模型对慢查询任务进行分析,其中,模型库为用于存储超时查询任务所对应的超时模型的数据库,超时查询任务为查询时间大于第一阈值时间的查询任务,目标模型为数据库中满足第一预设条件的超时模型。根据各目标模型的查询条件和数据量、与各目标模型所对应的查询任务样例对目标模型进行分析,并获取模型评分,以排除由于计算资源被抢占导致超时的查询任务,防止查询任务误判干扰后续分析工作。对模型评分高于阈值的目标模型进行分析,以确定查询任务的超时原因。由此可见,本技术所提供的技术方案,通过对模型库中超时查询任务的模型进行分析和评分,以去除数据库中误判的模型,以便于根据实际超时查询任务对elasticsearch系统进行分析和改进。
[0061]
可以理解的是,为了提高查询任务分析效率,避免无用工作,在获取超时查询任务的模型前,还需要判断模型库中是否存在与超时查询任务对应的超时模型,包括:获取各检测周期内各elasticsearch节点中的超时查询任务;
[0062]
判断模型库中是否存在与超时查询任务对应的超时模型;
[0063]
若存在超时模型,则将超时查询任务存入与超时模型相对应的样例库中;
[0064]
若不存在超时模型,则将超时模型存入模型库中。
[0065]
具体的,判断模型库中是否存在与超时查询任务对应的超时模型包括:
[0066]
构建与超时查询任务所对应的检测模型,并计算检测模型的检测标识符,其中,检测标识符为md5;
[0067]
判断检测标识符与各超时模型的标识符是否相同;
[0068]
若与各超时模型的标识符均不相同,则确定模型库中不存在与超时查询任务对应的超时模型。
[0069]
在具体实施中,解析description中source内容,比如原查询语句为:
[0070]
{"query":{"bool":{"must":[{"term":{"name":"test"}},{"range":{"time":{"gte":"2022-06-21 00:00:00","lte":"2022-06-22 00:00:00"}}}]}
[0071]
}}
[0072]
构建模型时,将具体的查询条件清空,其他非query内条件移除掉,语句为:
[0073]
{"query":{"bool":{"must":[{"term":{"name":null}},{"range":{"time":null}}]}}}
[0074]
判断现有模型库是否存在该模型,若不存在则将该模型插入模型库中。
[0075]
作为优选的实施例,根据各目标模型的查询条件和数据量、与各目标模型所对应的查询任务样例对目标模型进行分析包括:
[0076]
根据目标模型的描述语言构建与目标模型对应的树结构,以确定目标模型的查询条件数和昂贵查询类别个数;
[0077]
获取与目标模型对应的查询任务样例,并根据树结构和查询任务样例确定查询条件总长度和数据量;
[0078]
根据目标模型的查询条件数、昂贵查询类别个数、查询条件总长度和数据量计算目标模型的模型评分。
[0079]
在具体实施中,对目标模型进行逐个分析包括从昂贵查询类别个数、总查询条件数、查询条件长度、数据量4个方面分析,具体包括:
[0080]
(1)模型语句构建树结构
[0081]
模型语句是json格式,代码中构建成树结构,便于遍历查找。
[0082]
(2)获取叶子节点父级字段名,统计昂贵查询类别个数及总查询条件数例如,叶子节点父级字段名为term、range,总查询条件数为2,昂贵查询类别包括:wildcard、script、fuzzy、regexp、prefix,在此范围内时,每有一个计数加1。
[0083]
(3)获取模型对应的样例列表,对各样例叶子节点条件长度求和,样例列表整体求平均条件长度。
[0084]
同一模型每个样例分别计算查询条件总长度,例如条件test长度为4,range内gte和lte长度都为19,该查询条件总长度为23。若有多个样例,计算多个样例的条件总长度平均值。
[0085]
(4)获取模型对应的样例列表,查询各样例中索引的数据量
[0086]
模型样例中,记录了查询信息(describe),此信息中包含查询的索引列表,查询elasticsearch中此索引列表的数据量,计算平均值,可以知道该查询样例查询的数据体量。
[0087]
作为优选的实施例,根据目标模型的查询条件数、昂贵查询类别个数、查询条件总长度和数据量计算目标模型的模型评分包括:
[0088]
确定查询条件数、昂贵查询类别个数、查询条件总长度和数据量所对应的权重;其中,昂贵查询类别个数、数据量、查询条件总长度、查询条件数的权重依次减小。
[0089]
在具体实施中,根据项目经验,设定如下(可调整):
[0090]
1个昂贵查询类别评分为5;数据量最高评分为3,每1千万数据量记0.1分,查询条件长度最高评分为2,每128字符记0.1分,总查询条件数最高评分为1,每1个条件记0.1分。如一个模型包含1个昂贵查询,数据量为3千万,查询条件总长度为1024,总查询条件数为5,则评分值=5 min(3,(3千万/1千万*0.1)) min(2,(1024/128*0.1)) min(1,5*0.1)=6.6。
[0091]
进一步的,完成评分后,将各模型的评分结果及各维度值存入评分库,以便于后续对评分库按评分结果排序,取评分最高的几项超时查询任务,并结合业务重点分析。
[0092]
在上述实施例中,对于系统慢查询分析方法进行了详细描述,本技术还提供系统慢查询分析装置对应的实施例。需要说明的是,本技术从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件的角度。
[0093]
图2为本技术实施例所提供的一种系统慢查询分析装置的结构图,包括:
[0094]
获取模块10,用于获取模型库中目标模型,其中,模型库为用于存储超时查询任务所对应的超时模型的数据库,超时查询任务为利用elasticsearch系统查询接口获得的查询时间大于第一阈值时间的查询任务,目标模型为数据库中满足第一预设条件的超时模型。
[0095]
评分模块11,用于根据各目标模型的查询条件和数据量、与各目标模型所对应的查询任务样例对目标模型进行分析,并获取模型评分。
[0096]
分析模块12,用于对模型评分高于阈值的目标模型进行分析,以确定查询任务的超时原因。
[0097]
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
[0098]
本技术提供了一种系统慢查询分析装置,包括:获取模型库中目标模型,以便于根据目标模型对慢查询任务进行分析,其中,模型库为用于存储超时查询任务所对应的超时模型的数据库,超时查询任务为查询时间大于第一阈值时间的查询任务,目标模型为数据库中满足第一预设条件的超时模型。根据各目标模型的查询条件和数据量、与各目标模型所对应的查询任务样例对目标模型进行分析,并获取模型评分,以排除由于计算资源被抢占导致超时的查询任务,防止查询任务误判干扰后续分析工作。对模型评分高于阈值的目标模型进行分析,以确定查询任务的超时原因。由此可见,本技术所提供的技术方案,通过对模型库中超时查询任务的模型进行分析和评分,以去除数据库中误判的模型,以便于根据实际超时查询任务对elasticsearch系统进行分析和改进。
[0099]
图3为本技术另一实施例提供的系统慢查询分析装置的结构图,如图3所示,该系统慢查询分析装置包括:存储器20,用于存储计算机程序;
[0100]
处理器21,用于执行计算机程序时实现如上述实施例系统慢查询分析方法的步骤。
[0101]
本实施例提供的智能设备可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
[0102]
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用数字信号处理器(digital signal processor,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(central processing unit,cpu);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以集成有图像处理器(graphics processing unit,gpu),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括人工智能(artificial intelligence,ai)处理器,该ai处理器用于处理有关机器学习的计算操作。
[0103]
存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的系统慢查询分析方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括windows、unix、linux等。数据203可以包括但不限于系统慢查询分析方法中提供的数据等。
[0104]
在一些实施例中,系统慢查询分析装置还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
[0105]
本领域技术人员可以理解,图3中示出的结构并不构成对系统慢查询分析装置的限定,可以包括比图示更多或更少的组件。
[0106]
本技术实施例提供的系统慢查询分析装置,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如下方法:
[0107]
获取模型库中目标模型,其中,模型库为用于存储超时查询任务所对应的超时模型的数据库,超时查询任务为利用elasticsearch系统查询接口获得的查询时间大于第一阈值时间的查询任务,目标模型为数据库中满足第一预设条件的超时模型。
[0108]
根据各目标模型的查询条件和数据量、与各目标模型所对应的查询任务样例对目标模型进行分析,并获取模型评分。
[0109]
对模型评分高于阈值的目标模型进行分析,以确定查询任务的超时原因。
[0110]
最后,本技术还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤。
[0111]
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(randomaccess memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0112]
以上对本技术所提供的一种系统慢查询分析方法、装置、介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
[0113]
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那
些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献