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

访问限流的方法、服务器及存储介质与流程

2021-12-18 01:48:00 来源:中国专利 TAG:


1.本发明实施例涉及分布式存储系统领域,特别涉及一种访问限流的方法、服务器及存储介质。


背景技术:

2.ceph是统一的、分布式的存储系统,具有优秀的性能、可靠性和可扩展性。分布式对象存储网关(reliable autonomic distributed object store gateway,radosgw)作为ceph系统的一个组件,在ceph系统中充当接入网关的角色,ceph系统中通常一个radosgw只能对接一个ceph集群,如果同时有多个ceph集群,各个集群的访问量时高时低,访问量高的ceph集群对应radosgw处于忙碌状态,甚至导致ceph系统的处理访问请求的瓶颈,而访问量低的ceph集群对应的radosgw则处于空闲状态。为了减少该状态的发生,目前radosgw可以根据访问请求中携带的ceph集群的标识信息,访问不同的ceph集群的能力,解决了radosgw处理访问请求不均匀的问题。
3.radosgw在接收到访问请求后会立即将该访问请求的数据打包成请求对象并创建一个对应的协程来处理该请求对象。当在某一时段内访问某个集群的访问请求的数量远大于访问其他ceph集群的访问请求的数量时,若采用固定的请求阈值直接对访问请求进行限流,可能导致该段时间内访问其他ceph集群的访问请求都因为限流而被拒绝,访问资源不能得到合理利用。


技术实现要素:

4.本发明实施方式的目的在于提供一种访问限流的方法、服务器及存储介质,可以解决因访问不均导致资源利用不均的问题,均衡利用ceph集群的资源。
5.为解决上述技术问题,第一方面,本技术的实施方式提供了一种访问限流的方法,包括:若确定当前协程的数目小于预设的协程阈值,则获取第一ceph集群的数目以及第二ceph集群的数目,第一ceph集群为当前被协程处理的请求所对应的ceph集群,第二ceph集群为上一次调整时刻被协程处理的请求所对应的ceph集群;若检测到所述第一ceph集群的数目与所述第二ceph集群的数目之间的环比变化率满足预设的调整条件,则调整各所述第一ceph集群的访问请求阈值;获取访问请求对应的所述第一ceph集群作为目标ceph集群;若确定目标ceph集群的请求数目大于目标ceph集群的访问请求阈值,则将访问请求返回。
6.第二方面,本技术的实施方式还提供了一种服务器,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的访问限流的方法。
7.第三方面,本技术的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述的访问限流的方法。
8.本技术实施例中访问限流的方法,应用于分布式对象存储网关rgw,该rgw在接收访问请求后,会创建对应的协程处理该访问请求,若确定当前协程的数目小于预设的协程
阈值,表明当前rgw处理访问请求的能力未饱和,可以对访问请求进行处理,可以避免出现rgw因访问请求过多导致程序崩溃的问题;本技术中通过获取第一ceph集群的数目与第二ceph集群的数目之间的环比变化率,确定是否调整各第一ceph集群的访问请求阈值,在环比变化率满足调整条件时,对各第一ceph集群的访问请求阈值进行调整,由于不是采用固定不变的访问请求阈值,使得在某一ceph集群的访问请求量大的情况下,对其它ceph集群的访问不会出现因为限流而导致被拒绝的问题;均衡访问各第一ceph集群,提高对ceph集群的利用率;且由于是动态进行调整,提高了限制访问ceph集群的适应性。
附图说明
9.一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
10.图1是根据本技术实施例提供的一种访问限流的方法的流程图;
11.图2是根据本技术实施例提供的一种检测环比变化率是否满足预设的调整条件的具体实现示意图;
12.图3是根据本技术实施例提供的rgw仅接收到一个访问请求的情况的示意图;
13.图4是根据本技术实施例提供的rgw处理访问请求req_c2中,接收到新的访问请求req_c2的情况的示意图;
14.图5是根据本技术实施例提供的rgw对ceph_c1集群和ceph_c2集群的访问请求仍在处理中,同时接收到新的访问请求req_c2的情况的示意图;
15.图6是根据本技术实施例提供的rgw对ceph_c1集群和ceph_c2集群的访问请求仍在处理中,同时接收到新的访问请求req_c3的情况的示意图;
16.图7是根据本技术实施例提供的rgw对ceph_c1和ceph_c3集群的访问请求的处理完成的情况的示意图;
17.图8是根据本技术实施例提供的调整各第一ceph集群的访问请求阈值的具体实现示意图;
18.图9是根据本技术实施例提供的一种服务器的结构示意图。
具体实施方式
19.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本技术而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本技术所要求保护的技术方案。
20.以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
21.本发明的第一实施方式涉及一种访问限流的方法。该访问限流的方法由分布式对象存储网关执行,分布式对象存储网关简称radosgw或rgw;rgw可以部署于服务器内,该服务器可以为ceph集群中的服务器,也可以为其它非ceph集群的服务器。rgw可以与n个ceph集群通信连接,n为大于0的整数,该rgw用于接收外部用户的访问请求,通常用户发起的访
问请求通过业务系统发送至rgw。rgw在接收到访问请求后会立即将访问请求的数据打包成请求对象,并对应创建一个协程来处理该访问对象,此时该访问请求的接入步骤已经完成。rgw若接收到新的访问请求,则重复上述过程,协程在处理完访问请求后会被销毁,以释放其所使用的资源。
22.协程处理访问请求的速度取决于访问请求本身执行逻辑的复杂程度以及ceph集群的繁忙程度,如果短时间内有大量的访问请求到达rgw,该rgw将会创建大量的协程,协程处理不及时,会使内存使用量急剧增加导致rgw响应缓慢甚至程序崩溃,因此需要进行限流处理。本技术实施访问限流的方法的流程图如图1所示:
23.步骤101:若确定当前协程的数目小于预设的协程阈值,则获取第一ceph集群的数目以及第二ceph集群的数目。第一ceph集群为当前被协程处理的请求所对应的ceph集群,第二ceph集群为上一次调整时刻被协程处理的请求所对应的ceph集群。
24.具体地,可以预先获取服务器的硬件参数,如内存容量等,根据服务器的硬件参数确定该rgw可承载的协程数目,可以将该rgw可承载的协程数目作为预设的协程阈值,本示例中设置协程阈值记为total_coroutine_num。由于每个访问请求由各自对应的协程处理,rgw中协程的数量可以用于表征访问请求的数目,故可以在接收到访问请求后,检测当前协程数目是否超过协程阈值,若超过该协程阈值,则将该访问请求返回。若确定当前协程数目小于该协程阈值,则表明当前rgw可以继续处理访问请求。
25.由于rgw在处理访问请求时,会为每个访问请求创建对应的协程,由该协程对访问请求进行处理,在访问请求处理完成后,rgw销毁对应的协程;当访问请求增加时,对应的协程也会增加,若协程数量过大,将导致访问请求处理不及时,故rgw处理访问请求的数量与该rgw中协程的数量相关,即与该rgw的硬件参数相关,通过该rgw的硬件参数确定的协程阈值准确,进而可以有效防止访问请求数量超过rgw可处理范围。
26.需要说明的是,访问请求中包括待访问的ceph集群的标识信息,以供该rgw根据该访问请求访问对应的ceph集群,实现一个rgw同时访问多个ceph集群。
27.获取第一ceph集群的数目以及获取第二ceph集群的数目的方式可以有多种方式,例如,可以通过读取访问请求中待访问的ceph集群的标识信息进行第一ceph集群的统计。下面具体介绍获取第一ceph集群的数目以及获取第二ceph集群的数目的过程:
28.可以预先构建被协程处理的ceph集群的标识信息的集合,可以将该集合作为第一ceph集群标识集合。当接收新的访问请求后,获取该访问请求的待访问ceph集群的id号,检测在该第一ceph集群标识集合中是否存在待访问ceph集群的id号,若存在,则直接统计该第一ceph集群标识集合中的数目作为第一ceph集群的数目。若不存在,则将该待访问ceph集群的id号添加至该第一ceph集群标识集合中,再获取该第一ceph集群标识集合中的数目作为第一ceph集群的数目。
29.由于第二ceph集群为上一次调整时刻被协程处理的请求所对应的ceph集群,故可以将上一次调整时刻该第一ceph集群标识集合中的数目作为第二ceph集群的数目。例如,上一次调整时刻第一ceph集群标识集合中的数目为5个,当前时刻该第一ceph集群标识集合中的数目为3个,则第一ceph集群的数目为3个,第二ceph集群的数目为5个。
30.步骤102:若检测到第一ceph集群的数目与第二ceph集群的数目之间的环比变化率满足预设的调整条件,则调整各第一ceph集群的访问请求阈值。
31.具体地,获取第一ceph集群的数目与第二ceph集群的数目之间的环比变化率,环比变化率包括环比增长率或环比减少率。预设的调整条件可以是环比变化率大于0,即第一ceph集群的数目与第二ceph集群的数目相异时,确定调整各第一ceph集群的访问请求阈值。
32.需要说明的是,环比增长率可以采用如公式(1)所示的方式:
33.x=(current_key_num

last_key_num)/last_key_num公式(1);
34.其中,x表示环比增长率,current_key_num表示第一ceph集群的数目,last_key_num表示第二ceph集群的数目。
35.环比减少率可以采用公式(2):
36.y=(last_key_num

current_key_num)/current_key_num公式(1);
37.其中,y表示环比减少率,current_key_num表示第一ceph集群的数目,last_key_num表示第二ceph集群的数目。
38.调整各第一ceph集群的访问请求阈值的过程可以为:获取协程阈值与第一ceph集群的数目的比值;将各第一ceph集群的访问请求阈值调整为该比值。例如,第一ceph集群的数目为2,协程阈值为w,那么每个第一ceph集群的访问请求阈值调整为w/2。
39.每个访问请求阈值相同,且与第一ceph集群的数目相关,均衡每个第一ceph集群的访问请求阈值,该方式确定的访问请求阈值简单、快速。
40.步骤103:获取访问请求对应的第一ceph集群作为目标ceph集群。
41.具体地,rgw接收的访问请求中包括待访问ceph集群的标识信息,获取访问请求中的待访问ceph集群的标识信息,确定该访问请求对应的第一ceph集群,并将该访问请求对应的第一ceph集群作为目标ceph集群。
42.步骤104:若确定目标ceph集群的请求数目大于目标ceph集群的访问请求阈值,则将访问请求返回。
43.若确定目标ceph集群的请求数目小于或等于目标ceph集群的访问请求阈值,则确定该rgw可以处理该访问请求,该rgw创建协程处理该访问请求。若确定目标ceph集群的请求数目小于或等于目标ceph集群的访问请求,则确定该rgw已无法处理该访问请求,此时将该访问请求返回。
44.当访问请求被对应的协程处理完成后,rgw销毁对应访问请求的协程,若检测到存在访问请求的数目变更为0的第一ceph集群,则更新该第一ceph集群。具体的实现过程可以是:若检测到第一ceph集群标识集合中存在访问请求数为0的第一ceph集群的标识信息,则从第一ceph集群标识集合中移除该第一ceph集群的标识信息,更新该第一ceph集群标识集合。
45.本实施例中在新的访问请求接入后,根据预设的调整条件调整各个第一ceph集群的访问请求阈值,不仅使得具备多集群访问功能的rgw在访问请求大量达到时能进行限流保护,并且在单一ceph集群的访问请求大量到达时对其他ceph集群的访问不会因为限流而导致被完全拒绝。
46.本技术实施例中访问限流的方法,应用于分布式对象存储网关rgw,该rgw在接收访问请求后,会创建对应的协程处理该访问请求,若确定当前协程的数目小于预设的协程阈值,表明当前rgw处理访问请求的能力未饱和,可以对访问请求进行处理,可以避免出现
rgw因访问请求过多导致程序崩溃的问题;本技术中通过获取第一ceph集群的数目与第二ceph集群的数目之间的环比变化率,确定是否调整各第一ceph集群的访问请求阈值,在环比变化率满足调整条件时,对各第一ceph集群的访问请求阈值进行调整,由于不是采用固定不变的访问请求阈值,使得在某一ceph集群的访问请求量大的情况下,对其它ceph集群的访问不会出现因为限流而导致被拒绝的问题;均衡访问各第一ceph集群,提高对ceph集群的利用率;且由于是动态进行调整,提高了限制访问ceph集群的适应性。
47.在一个实施例中,提供了一种检测环比变化率是否满足预设的调整条件的方式,其具体实现过程如图2所示:
48.步骤101:若确定当前协程的数目小于预设的协程阈值,则获取第一ceph集群的数目以及第二ceph集群的数目。
49.步骤1021:检测环比变化率是否超过预设的调整比例,若确定环比变化率未超过该调整比例,则执行步骤1022。若确定环比变化率超过调整比例,则执行步骤1023。
50.具体地,该环比变化率包括环比增长率或环比减少率。预设的调整比例可以根据实际进行设置,例如该调整比例可以设置为在10%与100%之间的任意值。
51.当环比增长率或环比减少率超过调整比例,则确定对各第一ceph集群的访问请求阈值进行调整,执行步骤1023,若确定环比变化率未超过该调整比例,则执行步骤1022。
52.需要说明的是,若确定环比环比率未超过该调整比例时,也可以不执行步骤1022,而是保持当前各第一ceph集群的访问请求阈值;直接执行步骤103和步骤104。
53.为了进一步简化检测环比变化率是否超过预设的调整比例的过程,本实施例对环比增长率和环比减少率的公式进行了变形,根据公式(1),可以得到若检测到第一ceph集群的数目current_key_num大于last_key_num*(1 coroutine_rate_factor),则确定环比增长率超过该调整比例,其中,coroutine_rate_factor表示调整比例,last_key_num表示第二ceph集群的数目,current_key_num表示第一ceph集群的数目。
54.根据公式(2),可以得到若检测到第一ceph集群的数目current_key_num小于last_key_num/(1 coroutine_rate_factor),则确定环比减少率超过该调整比例,其中,coroutine_rate_factor表示调整比例,last_key_num表示第二ceph集群的数目,current_key_num表示第一ceph集群的数目。
55.步骤1022:检测距离上一次调整时刻的时长是否超过预设时长,若确定距离上一次调整时刻的时长超过预设时长,则执行步骤1023。
56.若确定环比变化率未超过该调整比例,表明该第一ceph集群的数目与第二ceph集群的数目相差小,变化波动小,为了确保处理访问请求的稳定性,此时可以不对第一ceph集群的访问请求阈值进行调整。
57.本实施例中,为了进一步提高限制访问请求的适用性,在确定环比变化率未超过该调整比例之后,还可以进行如步骤1022的处理。
58.具体地,可以预先设置预设时长,该预设时长可以设置为60秒,若确定环比变化率未超过该调整比例,检测距离上一次调整时刻的时长是否超过预设时长。即,检测到current_key_num小于last_key_num*(1 coroutine_rate_factor)同时大于last_key_num/(1 coroutine_rate_factor)且不等于last_key_num;则检测距离上一次调整时刻的时长是否超过预设时长,若超过则执行步骤1023。
59.需要说明的是,可以记录每次调整各第一ceph集群的访问请求阈值的时刻,以便检测距离上一次调整时刻的时长。由于本示例中,关注上一次调整时刻,因此,设置一个最后一次调整时间,记为last_adjust_time;当本次调整后,更新该last_adjust_time的时间即可,无需记录所有调整的时间,减少存储不必要的数据。
60.步骤1023:确定检测到环比变化率满足预设的调整条件。
61.步骤1024:调整各第一ceph集群的访问请求阈值。
62.需要说明的是,在执行完步骤1024之后,更新调整时刻,以及更新第一ceph集群标识信息集,以便rgw在接收到新的访问请求后,执行步骤101。
63.步骤103:获取访问请求对应的第一ceph集群作为目标ceph集群。
64.步骤104:若确定目标ceph集群的请求数目大于目标ceph集群的访问请求阈值,则将访问请求返回。
65.本实施例中,提供了检测环比变化率满足预设的调整条件的方式,由于访问请求的数目时刻在变化,本示例中设置了调整比例,在环比变化率大于该调整比例时,对各第一ceph集群的访问请求阈值进行调整,确保可以及时对各第一ceph集群的访问请求阈值进行调整。另外,在环比变化率小于调整比例时,表明待访问的ceph集群的波动小,故可以不对各第一ceph集群的访问请求阈值进行调整。若确定环比变化率未超过该调整比例,且检测距离上一次调整时刻的时长超过预设时长,表明第一ceph集群的数目的变动已经稳定,此时对各第一ceph集群的访问请求阈值进行调整,进一步提高了调整第一ceph集群的访问请求阈值的自适应的能力。
66.下面结合附图3~附图7,介绍调整的访问限流的过程:
67.图3为rgw仅接收到一个访问请求的情况,如图3所示,假设有三个ceph集群,rgw_a分别与该3个ceph集群连接,在rgw中预先构建第一ceph集群标识集合。若没有任何访问请求时,该第一ceph集群标识集合为空。当rgw接收到访问请求req_c1,判断当前协程的数目小于协程阈值,获取该访问请求req_c1的待访问的集群的标识信息ceph_c1,检测第一ceph集群标识集合中没有该ceph_c1,则将该ceph_c1添加至第一ceph集群标识集合中,由于仅接收到一个访问请求,而访问请求的数目与协程的数目对应,故可以设置该ceph_c1集群的访问请求阈值为预设的协程阈值w。
68.图4为rgw处理访问请求req_c1中,接收到新的访问请求req_c2的情况,图4中,假设协程阈值为w。当rgw接收到访问请求req_c2,判断当前协程的数目小于协程阈值,req_c2的待访问ceph集群为ceph_c2,检测第一ceph集群标识集合中包括ceph_c1集群的标识信息,没有该ceph_c2集群的标识信息,则将该ceph_c2的标识信息添加至第一ceph集群标识集合中。获取第一ceph集群的数目为2,获取第二ceph集群的数目为1,该环比变化率为100%,预设的调整比例为10%,该环比变化率超过调整比例,则调整ceph_c1集群的访问请求阈值和ceph_c2集群的访问请求阈值为w/2。检测ceph_c2集群的访问请求的数目是否超过访问请求阈值为w/2,若超过,则将该访问请求req_c2返回,否则,处理该访问请求req_c2。
69.图5为rgw对ceph_c1集群和ceph_c2集群的访问请求仍在处理中,同时接收到新的访问请求req_c2的情况,图5中,假设协程阈值为w。当rgw接收到访问请求req_c2,判断当前协程的数目小于协程阈值,新的req_c2的待访问ceph集群为ceph_c2集群,检测第一ceph集
群标识集合中包括ceph_c1集群的标识信息和该ceph_c2集群的标识信息;则直接获取第一ceph集群的数目为2,获取第二ceph集群的数目为2,该环比变化率为0,该环比变化率未超过调整比例,保持ceph_c1集群的访问请求阈值和ceph_c2集群的访问请求阈值为w/2。检测ceph_c2集群的访问请求的数目是否超过访问请求阈值为w/2,若超过,则将该访问请求req_c2返回,否则,处理该访问请求req_c2。
70.图6为rgw对ceph_c1集群和ceph_c2集群的访问请求仍在处理中,同时接收到新的访问请求req_c3的情况,图6中,假设协程阈值为w。当rgw接收到访问请求req_c3,判断当前协程的数目小于协程阈值,req_c3的待访问ceph集群为ceph_c3,检测第一ceph集群标识集合中包括ceph_c1集群的标识信息和ceph_c2集群的标识信息,没有该ceph_c3集群的标识信息,则将该ceph_c3的标识信息添加至第一ceph集群标识集合中。获取第一ceph集群的数目为3,获取第二ceph集群的数目为2,该环比变化率为50%,预设的调整比例为10%,该环比变化率超过调整比例,则调整ceph_c1集群的访问请求阈值、ceph_c2集群的访问请求阈值以及ceph_c3集群的访问请求阈值为w/3。检测ceph_c3集群的访问请求的数目是否超过访问请求阈值为w/3,若超过,则将该访问请求req_c3返回,否则,处理该访问请求req_c3。
71.图7为rgw对ceph_c1和ceph_c3集群的访问请求的处理完成,对应的协程将被销毁,从第一ceph集群标识集合中删除ceph_c1集群的标识信息和ceph_c3集群的标识信息;获取第一ceph集群的数目为1,获取第二ceph集群的数目为3,该环比变化率为200%,预设的调整比例为10%,该环比变化率超过调整比例,则调整ceph_c2集群的访问请求阈值为w。
72.在一个实施例中,提供了其它调整各第一ceph集群的访问请求阈值的方式,具体的实现如图8所示:
73.步骤10241:为各第一ceph集群分配对应的权重值。
74.根据各第一ceph集群的请求达到的第一速率或者处理各第一ceph集群的请求的第二速率,确定各第一ceph集群分配对应的权重值。可以分配请求达到的第一速率高的第一ceph集群的权重值小于请求达到的第一速率低的第一ceph集群的权重值。可以分配第二速率高的第一ceph集群的权重值高于第二速率低的第一ceph集群的分配的权重值。
75.步骤10242:根据各第一ceph集群的权重值和协程阈值,确定各第一ceph集群的访问请求阈值。
76.具体地,可以按照各第一ceph集群的权重值对协程阈值进行分配,获得各第一ceph集群的访问请求阈值。
77.本实施例中通过多种数据为各第一ceph集群分配权重值,使得尽可能均衡访问第一ceph集群的请求的数量。
78.上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
79.本技术第二实施方式涉及一种服务器,如图9所示,包括至少一个处理器201;以及,与至少一个处理器201通信连接的存储器202;其中,存储器202存储有可被至少一个处理器201执行的指令,指令被至少一个处理器201执行,以使至少一个处理器201能够执行如上述的访问限流的方法。
80.其中,存储器202和处理器201采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路链接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
81.处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
82.本技术第三实施例涉及一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述的访问限流的方法。
83.本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
84.本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献