网管系统性能数据汇总的方法和装置的制作方法

文档序号:6331924阅读:143来源:国知局
专利名称:网管系统性能数据汇总的方法和装置的制作方法
技术领域
本发明涉及到通信领域,特别涉及到一种网管系统性能数据汇总的方法和装置。
背景技术
性能管理是电信网络管理中的重要功能之一,性能管理的目的是对网络、网络单元或设备进行性能监视,采集相关的性能统计数据,评价网络和网络单元的有效性,报告电信设备的状态,以及支持网络规划和网络分析。通常网管系统在采集到原始的性能数据后, 需要将性能数据汇总为不同时间粒度的数据存放,如小时、天、周、月等粒度,以便查询时有直接的数据提取,提高系统效率。性能数据汇总方法通常使用并行汇总,传统的并行汇总方法是当网管系统采集到一批性能数据后,便建立一批线程对该性能数据进行汇总。上述并行汇总的方法存在下述缺陷由于电信网络所具有的规模庞大、高并发性、高实时性等特点,当大量性能数据到达时,网管系统需要建立大量线程进行汇总,极易产生并行风暴而导致网管系统崩溃。

发明内容
本发明的主要目的为提供一种网管系统性能数据汇总的方法和装置,通过建立包括性能数据汇总任务的消息队列,以及限制执行性能数据汇总任务的线程数量,防止了因大量线程并发造成的网管系统崩溃。本发明提出一种网管系统性能数据汇总的方法,包括建立多个消息队列,所述消息队列包括性能数据汇总任务;建立数量不超过一预设值的线程,所述线程获取消息队列,并执行所述消息队列中性能数据汇总任务。优选地,所述建立多个消息队列包括按性能数据汇总任务的类别对消息队列进行分类;将新增的性能数据汇总任务根据类别添加到对应的消息队列中。优选地,所述将新增的性能数据汇总任务根据类别添加到对应的消息队列中包括判断新增的性能数据汇总任务类别;当新增的性能数据汇总任务所属类别的消息队列不满时,添加新增的性能数据汇总任务到该消息队列;或,当新增的性能数据汇总任务所属类别的消息队列已满时,停止入队,等待该消息队列取走后新建一消息队列,并添加新增的性能数据汇总任务到新建的消息队列;或,当新增的性能数据汇总任务所属类别的消息队列不存在时,新建一消息队列,并添加新增的性能数据汇总任务到新建的消息队列。优选地,在执行所述建立数量不超过一预设值的线程之后,包括定时查询所述消息队列是否已满;
根据是否存在已满的消息队列,调整所述线程的数量和/或等待时间,所述等待时间为线程获取消息队列的时间间隔。优选地,所述根据是否存在已满的消息队列,调整线程的数量和/或等待时间包括当存在已满的消息队列时,减少所述线程的等待时间,当所述线程的等待时间达到预设的最小值时,新建一线程直到线程数量达到所述预设值;当不存在已满的消息队列时,增加所述线程的等待时间,当所述线程的等待时间达到预设的最大值时,结束所述线程。本发明还提出一种网管系统性能数据汇总的装置,包括建立队列模块,用于建立多个消息队列,所述消息队列包括性能数据汇总任务;建立线程模块,用于建立数量不超过一预设值的线程,所述线程获取消息队列,用于执行所述消息队列中性能数据汇总任务。优选地,所述建立队列模块包括分类单元,用于按性能数据汇总任务的类别对消息队列进行分类;添加任务单元,用于将新增的性能数据汇总任务根据类别添加到对应的消息队列中。优选地,所述添加任务单元包括判断子单元,用于判断新增的性能数据汇总任务的类别;第一添加子单元,用于当新增的性能数据汇总任务所属类别的消息队列不满时, 添加新增的性能数据汇总任务到该消息队列;第二添加子单元,用于当新增的性能数据汇总任务所属类别的消息队列已满时, 停止入队,等待该消息队列取走后新建一消息队列,并添加新增的性能数据汇总任务到新建的消息队列;第三添加子单元,用于当新增的性能数据汇总任务所属类别的消息队列不存在时,新建一消息队列,并添加新增的性能数据汇总任务到新建的消息队列。优选地,所述网管系统性能数据汇总的装置还包括查询模块,用于定时查询所述消息队列是否已满;调整线程模块,用于根据是否存在已满的消息队列,调整所述线程的数量和/或等待时间,所述等待时间为线程获取消息队列的时间间隔。优选地,所述调整线程模块包括第一调整单元,用于当存在已满的消息队列时,减少所述线程的等待时间,当所述线程的等待时间达到预设的最小值时,新建一线程直到线程数量达到所述预设值;第二调整单元,用于当不存在已满的消息队列时,增加所述线程的等待时间,当所述线程的等待时间达到预设的最大值时,结束所述线程。本发明提供的一种网管系统性能数据汇总的方法和装置,首先建立多个包括性能数据汇总任务的消息队列,再建立不超过一预设值的线程执行性能数据汇总任务。限制了并行工作的线程数量,防止了因大量线程并发造成的网管系统崩溃。


图1为本发明网管系统性能数据汇总的方法一实施例的流程示意图;图2为本发明网管系统性能数据汇总的方法一实施例中建立消息队列的流程示意图;图3为本发明网管系统性能数据汇总的方法一实施例中添加新增的性能数据汇总任务到消息队列的流程示意图;图4为本发明网管系统性能数据汇总的方法又一实施例的流程示意图;图5为本发明网管系统性能数据汇总的方法又一实施例中调整线程的流程示意图;图6为本发明网管系统性能数据汇总的装置一实施例的结构示意图;图7为本发明网管系统性能数据汇总的装置一实施例中建立队列模块的结构示意图;图8为本发明网管系统性能数据汇总的装置一实施例中添加任务单元的结构示意图;图9为本发明网管系统性能数据汇总的装置又一实施例的结构示意图;图10为本发明网管系统性能数据汇总的装置又一实施例中调整线程模块的结构示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施例方式本发明提供的一种网管系统性能数据汇总的方法和装置,首先建立多个包括性能数据汇总任务的消息队列,再建立不超过一预设值的线程执行性能数据汇总任务。限制了并行工作的线程数量,防止了因大量线程并发造成的网管系统崩溃。参照图1,提出本发明一种网管系统性能数据汇总的方法,包括步骤S101,建立多个消息队列,消息队列包括性能数据汇总任务。网管系统首先建立多个消息队列,消息队列包括性能数据汇总任务,每一性能数据汇总任务包括网管系统所采集的性能数据的信息,例如性能数据的时间和位置等。消息队列之间为非线性的,各个消息队列的长度可以相同或不同,可预先设置并根据需要进行调整,以容纳一定数量的性能数据汇总任务。步骤S102,建立数量不超过一预设值的线程,线程获取消息队列,并执行该消息队列中性能数据汇总任务。网络系统接着建立执行性能数据汇总任务的线程,线程的最大数量为一预设值, 以防止大量线程并发时系统出现崩溃。当有多个线程时,各线程独立工作,每一线程可定时或随机获取一或多个待处理的消息队列,一般一线程一次处理一个待处理的消息队列,然后依次执行该消息队列中的性能数据汇总任务,直到该消息队列中所有性能数据汇总任务执行完毕,最后线程可将该消息队列销毁,再继续获取下一待处理的消息队列。线程执行的性能数据汇总任务,主要是将同一个粒度如一小时或一天的多个性能数据汇总分析,完成求和、求平均、求最大、求最小等功能。如上所述,每一线程可根据能力一次处理一或多个消息队列,防止各线程负担过重,同时由于并行工作的线程数量为一预设值,可防止大量线程并发时系统出现崩溃。上述并行工作的线程数量为网管系统预先设置,可根据网管系统能力调整。本发明提供的一种网管系统性能数据汇总的方法,通过建立包括性能数据汇总任务的消息队列,以及限制执行性能数据汇总任务的并行工作的线程数量,解决了因大量线程并发造成的网管系统崩溃。参照图2,在一实施例中,步骤SlOl可包括步骤S1011,按性能数据汇总任务的类别对消息队列进行分类。网管系统可对消息队列按性能数据的一定特征进行分类,本实施例以性能数据的测量类型为例,对消息队列进行分类。步骤S1012,将新增的性能数据汇总任务根据类别添加到对应的消息队列中。当网管系统采集到性能数据,需要进行汇总时,将新增的性能数据汇总任务根据测量类型插入到对应的消息队列的队尾,等待线程执行。参照图3,步骤S1012可包括步骤S1021,判断新增的性能数据汇总任务类别;步骤S1022,当新增的性能数据汇总任务所属类别的消息队列不满时,添加新增的性能数据汇总任务到该消息队列;或,步骤S1023,当新增的性能数据汇总任务所属类别的消息队列已满时,停止入队, 等待该消息队列取走后新建一消息队列,并添加新增的性能数据汇总任务到新建的消息队列;或,步骤S1024,当新增的性能数据汇总任务所属类别的消息队列不存在时,新建一消息队列,并添加新增的性能数据汇总任务到新建的消息队列。网管系统判断新增的性能数据汇总任务的类别,例如测量类型CS BasicMeasurement的性能数据汇总任务到达时,如对应的消息队列不满,将该性能数据汇总任务插入到对应的消息队列的队尾,等待线程执行。当测量类型CS Basic Measurement对应的消息队列已满时,停止新增的性能数据汇总任务入队,等待线程取出对应的消息队列后,再新建一测量类型为CS Basic Measurement的消息队列,并将等待及后续到达的测量类型为CSBasic Measurement的性能数据汇总任务添加到新建的消息队列中。当不存在测量类型CS Basic Measurement对应的消息队列时,新建一测量类型为 CS Basic Measurement的消息队列,将到达的测量类型为CS BasicMeasurement的性能数据汇总任务添加到新建的消息队列中。参照图4,提出本发明网管系统性能数据汇总的方法又一实施例,在上述实施例中,在执行步骤S102之后,还包括步骤S103,定时查询消息队列是否已满。网管系统可定时查询所有消息队列是否已满。网管系统可通过设置一计数器来实现该查询功能当有消息队列已满时,计数器加1,当线程取出一已满的消息队列时,计数器减1,网管系统可定时获取计数器的计数,如计数器的计数非0,代表存在至少一消息队列已满,当计数器为0,刚代表所有消息队列不满。网管系统也可通过对每一消息队列设置已满标识来查询,或采用其它可实现查询消息队列已满状态的方式。步骤S104,根据是否存在已满的消息队列,调整线程的数量和/或等待时间,等待时间为线程获取消息队列的时间间隔。当存在已满的消息队列时,说明待执行的性能数据汇总任务较多,网管系统可相应减少线程的等待时间和/或增加并行工作的线程数量,以加快性能数据汇总任务的执行速度,线程的等待时间即线程获取消息队列的时间间隔。当所有消息队列均不满时,说明待执行的性能数据汇总任务较少,网管系统可相应增加线程的等待时间和/或减少并行工作的线程数量,以降低性能数据汇总任务的执行速度。参照图5,步骤S104可包括步骤S1041,当存在已满的消息队列时,减少线程的等待时间,当线程的等待时间达到预设的最小值时,新建一线程直到线程数量达到预设值。当存在已满的消息队列时,说明消息队列中等待执行的性能数据汇总任务较多, 可采取如下方式调整线程的数量和/或等待时间网管系统某次查询时,存在已满的消息队列,则按一定顺序减少线程的等待时间,如有多个线程时减少第一个线程的等待时间 50ms,当下次查询,仍然存在已满的消息队列时,继续减少第一个线程的等待时间50ms,直到第一个线程的等待时间已达最小值时,继续对第二个线程作如上处理,当所有线程的等待时间都为最小值时,新建一线程,新建线程后的线程数量不能超过预设值,否则停止新建线程。步骤S1042,当不存在已满的消息队列时,增加线程的等待时间,当线程的等待时间达到预设的最大值时,结束线程。当不存在已满的消息队列时,说明消息队列中等待执行的性能数据汇总任务较少,可采取如下方式调整线程的数量和/或等待时间网管系统某次查询时,所有消息队列不满,则按一定顺序增加线程的等待时间,如有多个线程时增加第一个线程的等待时间 50ms,当下次查询,所有消息队列仍然不满,继续增加第一个线程的等待时间50ms,直到第一个线程的等待时间已达最大值时,结束该线程,并继续对第二个线程作如上处理,直到只余一个线程,且该线程的等待时间为预设的最大值。如不存在待处理的消息队列时,可结束所有线程。需要注意的是,网管系统可以单独或同时调整线程数量和等待时间,本领域的技术人员因此联想到的其它可实现根据性能数据汇总任务的数量调整线程的方式均可适用于本发明。本发明提供的一种网管系统性能数据汇总的方法,通过建立包括性能数据汇总任务的消息队列,以及限制执行性能数据汇总任务的线程数量,防止了因大量线程并发造成的网管系统崩溃。进一步地,可根据性能数据汇总任务的数量调整线程,提高网络系统性能。参照图6,提出本发明网管系统性能数据汇总的装置一实施例,包括建立队列模块10,用于建立多个消息队列,消息队列包括性能数据汇总任务;建立线程模块20,用于建立数量不超过一预设值的线程,线程获取消息队列,用于执行消息队列中性能数据汇总任务。建立队列模块10首先建立多个消息队列,消息队列包括性能数据汇总任务,每一性能数据汇总任务包括网管系统所采集的性能数据的信息,例如性能数据的时间和位置等。消息队列之间为非线性的,各个消息队列的长度可以相同或不同,可预先设置并根据需要进行调整,以容纳一定数量的性能数据汇总任务。建立线程模块20接着建立执行性能数据汇总任务的线程,线程的最大数量为一预设值,以防止大量线程并发时系统出现崩溃。当有多个线程时,各线程独立工作,每一线程可定时或随机获取一或多个待处理的消息队列,一般一线程一次处理一个待处理的消息队列,然后依次执行该消息队列中的性能数据汇总任务,直到该消息队列中所有性能数据汇总任务执行完毕,最后线程可将该消息队列销毁,再继续获取下一待处理的消息队列。线程执行的性能数据汇总任务,主要是将同一个粒度如一小时或一天的多个性能数据汇总分析,完成求和、求平均、求最大、求最小等功能。如上所述,每一线程可根据能力一次处理一或多个消息队列,防止各线程负担过重,同时由于并行工作的线程数量为一预设值,可防止大量线程并发时系统出现崩溃。上述并行工作的线程数量为网管系统预先设置,可根据网管系统能力调整。本发明提供的一种网管系统性能数据汇总的装置,通过建立包括性能数据汇总任务的消息队列,以及限制执行性能数据汇总任务的并行工作的线程数量,解决了因大量线程并发造成的网管系统崩溃。参照图7,在一实施例的网管系统性能数据汇总的装置中,建立队列模块10可包括分类单元11,用于按性能数据汇总任务的类别对消息队列进行分类;添加任务单元12,用于将新增的性能数据汇总任务根据类别添加到对应的消息队列中。分类单元11可对消息队列按性能数据的一定特征进行分类,本实施例以性能数据的测量类型为例,对消息队列进行分类。当网管系统采集到性能数据,需要进行汇总时,添加任务单元12将新增的性能数据汇总任务根据测量类型插入到对应的消息队列的队尾,等待线程执行。参照图8,添加任务单元12可包括判断子单元121,用于判断新增的性能数据汇总任务的类别;第一添加子单元122,用于当新增的性能数据汇总任务所属类别的消息队列不满时,添加新增的性能数据汇总任务到该消息队列;第二添加子单元123,用于当新增的性能数据汇总任务所属类别的消息队列已满时,停止入队,等待该消息队列取走后新建一消息队列,并添加新增的性能数据汇总任务到新建的消息队列;第三添加子单元124,用于当新增的性能数据汇总任务所属类别的消息队列不存在时,新建一消息队列,并添加新增的性能数据汇总任务到新建的消息队列。判断子单元121判断新增的性能数据汇总任务的类别,例如测量类型CSBasic Measurement的性能数据汇总任务到达时,如对应的消息队列不满,第一添加子单元122将该性能数据汇总任务插入到对应的消息队列的队尾,等待线程执行。当测量类型CS Basic Measurement对应的消息队列已满时,第二添加子单元 123停止新增的性能数据汇总任务入队,等待线程取出对应的消息队列后,再新建一测量类型为CS Basic Measurement的消息队列,并将等待及后续到达的测量类型为CS Basic Measurement的性能数据汇总任务添加到新建的消息队列中。
当不存在测量类型CS Basic Measurement对应的消息队列时,第三添加子单元 1 新建一测量类型为CS Basic Measurement的消息队列,将到达的测量类型为CS Basic Measurement的性能数据汇总任务添加到新建的消息队列中。参照图9,提出本发明网管系统性能数据汇总的装置又一实施例,在上述网管系统性能数据汇总的装置一实施例中,还包括查询模块30,用于定时查询消息队列是否已满;调整线程模块40,用于根据是否存在已满的消息队列,调整线程的数量和/或等待时间,该等待时间为线程获取消息队列的时间间隔。查询模块30可定时查询所有消息队列是否已满。查询模块30可通过设置一计数器来实现该查询功能当有消息队列已满时,计数器加1,当线程取出一已满的消息队列时,计数器减1,查询模块30可定时获取计数器的计数,如计数器的计数非0,代表存在至少一消息队列已满,当计数器为0,刚代表所有消息队列不满。查询模块30也可通过对每一消息队列设置已满标识来查询,或采用其它可实现查询消息队列已满状态的方式。当存在已满的消息队列时,说明待执行的性能数据汇总任务较多,调整线程模块 40可相应减少线程的等待时间和/或增加并行工作的线程数量,以加快性能数据汇总任务的执行速度,线程的等待时间即线程获取消息队列的时间间隔。当所有消息队列均不满时, 说明待执行的性能数据汇总任务较少,调整线程模块40可相应增加线程的等待时间和/或减少并行工作的线程数量,以降低性能数据汇总任务的执行速度。参照图10,调整线程模块40包括第一调整单元41,用于当存在已满的消息队列时,减少线程的等待时间,当线程的等待时间达到预设的最小值时,新建一线程直到线程数量达到预设值;第二调整单元42,用于当不存在已满的消息队列时,增加线程的等待时间,当线程的等待时间达到预设的最大值时,结束线程。当存在已满的消息队列时,说明消息队列中等待执行的性能数据汇总任务较多, 第一调整单元41可采取如下方式调整线程的数量和/或等待时间查询模块30某次查询时,存在已满的消息队列,则第一调整单元41按一定顺序减少线程的等待时间,如有多个线程时减少第一个线程的等待时间50ms,当查询模块30下次查询,仍然存在已满的消息队列时,继续减少第一个线程的等待时间50ms,直到第一个线程的等待时间已达最小值时,继续对第二个线程作如上处理,当所有线程的等待时间都为最小值时,新建一线程,新建线程后的线程数量不能超过预设值,否则停止新建线程。当不存在已满的消息队列时,说明消息队列中等待执行的性能数据汇总任务较少,第二调整单元42可采取如下方式调整线程的数量和/或等待时间查询模块30某次查询时,所有消息队列不满,则按一定顺序增加线程的等待时间,如有多个线程时增加第一个线程的等待时间50ms,当查询模块30下次查询,所有消息队列仍然不满,继续增加第一个线程的等待时间50ms,直到第一个线程的等待时间已达最大值,结束该线程,并继续对第二个线程作如上处理,直到只余一个线程,且该线程的等待时间为预设的最大值。如不存在待处理的消息队列时,第二调整单元42可结束所有线程。需要注意的是,调整线程模块40可以单独或同时调整线程数量和等待时间,本领域的技术人员因此联想到的其它可实现根据性能数据汇总任务的数量调整线程的方式均可适用于本发明的调整线程模块40。本发明提供的一种网管系统性能数据汇总的装置,通过建立包括性能数据汇总任务的消息队列,以及限制执行性能数据汇总任务的线程数量,防止了因大量线程并发造成的网管系统崩溃。进一步地,可根据性能数据汇总任务的数量调整线程,提高网络系统性能。以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
权利要求
1.一种网管系统性能数据汇总的方法,其特征在于,包括建立多个消息队列,所述消息队列包括性能数据汇总任务;建立数量不超过一预设值的线程,所述线程获取消息队列,并执行所述消息队列中性能数据汇总任务。
2.如权利要求1所述的网管系统性能数据汇总的方法,其特征在于,所述建立多个消息队列包括按性能数据汇总任务的类别对消息队列进行分类;将新增的性能数据汇总任务根据类别添加到对应的消息队列中。
3.如权利要求2所述的网管系统性能数据汇总的方法,其特征在于,所述将新增的性能数据汇总任务根据类别添加到对应的消息队列中包括判断新增的性能数据汇总任务类别;当新增的性能数据汇总任务所属类别的消息队列不满时,添加新增的性能数据汇总任务到该消息队列;或,当新增的性能数据汇总任务所属类别的消息队列已满时,停止入队,等待该消息队列取走后新建一消息队列,并添加新增的性能数据汇总任务到新建的消息队列;或,当新增的性能数据汇总任务所属类别的消息队列不存在时,新建一消息队列,并添加新增的性能数据汇总任务到新建的消息队列。
4.如权利要求1至3中任一项所述的网管系统性能数据汇总的方法,其特征在于,在执行所述建立数量不超过一预设值的线程之后,包括定时查询所述消息队列是否已满;根据是否存在已满的消息队列,调整所述线程的数量和/或等待时间,所述等待时间为线程获取消息队列的时间间隔。
5.如权利要求4所述的网管系统性能数据汇总的方法,其特征在于,所述根据是否存在已满的消息队列,调整线程的数量和/或等待时间包括当存在已满的消息队列时,减少所述线程的等待时间,当所述线程的等待时间达到预设的最小值时,新建一线程直到线程数量达到所述预设值;当不存在已满的消息队列时,增加所述线程的等待时间,当所述线程的等待时间达到预设的最大值时,结束所述线程。
6.一种网管系统性能数据汇总的装置,其特征在于,包括建立队列模块,用于建立多个消息队列,所述消息队列包括性能数据汇总任务;建立线程模块,用于建立数量不超过一预设值的线程,所述线程获取消息队列,用于执行所述消息队列中性能数据汇总任务。
7.如权利要求6所述的网管系统性能数据汇总的装置,其特征在于,所述建立队列模块包括分类单元,用于按性能数据汇总任务的类别对消息队列进行分类;添加任务单元,用于将新增的性能数据汇总任务根据类别添加到对应的消息队列中。
8.如权利要求7所述的网管系统性能数据汇总的装置,其特征在于,所述添加任务单元包括判断子单元,用于判断新增的性能数据汇总任务的类别;第一添加子单元,用于当新增的性能数据汇总任务所属类别的消息队列不满时,添加新增的性能数据汇总任务到该消息队列;第二添加子单元,用于当新增的性能数据汇总任务所属类别的消息队列已满时,停止入队,等待该消息队列取走后新建一消息队列,并添加新增的性能数据汇总任务到新建的消息队列;第三添加子单元,用于当新增的性能数据汇总任务所属类别的消息队列不存在时,新建一消息队列,并添加新增的性能数据汇总任务到新建的消息队列。
9.如权利要求6至8中任一项所述的网管系统性能数据汇总的装置,其特征在于,还包括查询模块,用于定时查询所述消息队列是否已满;调整线程模块,用于根据是否存在已满的消息队列,调整所述线程的数量和/或等待时间,所述等待时间为线程获取消息队列的时间间隔。
10.如权利要求9所述的网管系统性能数据汇总的装置,其特征在于,所述调整线程模块包括第一调整单元,用于当存在已满的消息队列时,减少所述线程的等待时间,当所述线程的等待时间达到预设的最小值时,新建一线程直到线程数量达到所述预设值;第二调整单元,用于当不存在已满的消息队列时,增加所述线程的等待时间,当所述线程的等待时间达到预设的最大值时,结束所述线程。
全文摘要
本发明揭示了一种网管系统性能数据汇总的方法和装置,该方法包括建立多个消息队列,所述消息队列包括性能数据汇总任务;建立数量不超过一预设值的线程,所述线程获取消息队列,并执行所述消息队列中性能数据汇总任务。本发明提出的网管系统性能数据汇总的方法和装置,通过建立包括性能数据汇总任务的消息队列,以及限制执行性能数据汇总任务的线程数量,防止了因大量线程并发造成的网管系统崩溃。
文档编号G06F9/48GK102402459SQ20101027984
公开日2012年4月4日 申请日期2010年9月10日 优先权日2010年9月10日
发明者熊纪涛 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1