一种数据同步方法、装置、系统、服务器和存储介质
技术领域
本发明实施例涉及互联网技术,尤其涉及一种数据同步方法、装置、系统、服务器和存储介质。
背景技术
随着互联网技术的快速发展,可以利用搜索服务器对海量数据进行搜索查询,获得用户所需要的信息。
通常,在索引初始化时、索引结构发生变更时、索引出现大面积数据误差时都需要对搜索服务器进行全量索引,也就是将数据库中的全量数据进行提取组装后写入搜索服务器中,以便保证数据库中的数据与索引的数据之间的一致性和完整性。
目前,通常是对正在提供搜素服务的搜索服务器进行全量索引的数据同步。然而,由于索引数据量过大,使得搜索服务器的写入操作会非常频繁,从而会占用较多资源,使得用于查询的资源较少,大大降低了查询性能。
发明内容
本发明实施例提供了一种数据同步方法、装置、系统、服务器和存储介质,以在不影响查询性能的提前下对搜索服务器进行全量索引的数据同步。
第一方面,本发明实施例提供了一种数据同步方法,应用于控制服务器,包括:
将数据库中的全量数据加载并发送至离线服务器,以使所述离线服务器获得多个索引子文件;
控制所述离线服务器对多个所述索引子文件进行合并,生成目标索引文件;
对至少两个搜索服务器集群中待同步的当前搜索服务器集群进行切流,以使当前查询请求由其他搜索服务器集群进行响应处理;
基于所述目标索引文件,对所述当前搜索服务器集群中的当前搜索服务器进行数据同步。
第二方面,本发明实施例还提供了一种数据同步装置,集成于控制服务器,包括:
数据加载模块,用于将数据库中的全量数据加载并发送至离线服务器,以使所述离线服务器获得多个索引子文件;
合并控制模块,用于控制所述离线服务器对多个所述索引子文件进行合并,生成目标索引文件;
集群切流模块,用于对至少两个搜索服务器集群中待同步的当前搜索服务器集群进行切流,以使当前查询请求由其他搜索服务器集群进行响应处理;
数据同步模块,用于基于所述目标索引文件,对所述当前搜索服务器集群中的当前搜索服务器进行数据同步。
第三方面,本发明实施例还提供了一种数据同步系统,所述系统包括:控制服务器、离线服务器和至少两个搜索服务器集群;
其中,所述控制服务器用于实现如本发明任意实施例所提供的数据同步方法。
第四方面,本发明实施例还提供了一种控制服务器,所述控制服务器包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所提供的数据同步方法。
第五方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的数据同步方法。
本发明实施例中的控制服务器通过将数据库中的全量数据加载并发送至离线服务器,并控制离线服务器对多个索引子文件进行合并,生成目标索引文件,从而实现离线构建索引,确保索引构建期间不会影响搜索服务器的查询性能。而且通过对至少两个搜索服务器集群中待同步的当前搜索服务器集群进行切流,使得当前查询请求由其他搜索服务器集群进行响应处理,并基于目标索引文件,对当前搜索服务器集群中的当前搜索服务器进行数据同步,从而通过分批同步的方式可以避免因全量索引同步而导致查询性能下降的情况,确保对外查询服务不受影响。
附图说明
图1是本发明实施例一提供的一种数据同步方法的流程图;
图2是本发明实施例一所涉及的一种全量数据分布式加载的示例;
图3是本发明实施例一所涉及的一种全量索引同步架构图;
图4是本发明实施例二提供的一种数据同步方法的流程图;
图5是本发明实施例二所涉及的一种切流同步的时序图;
图6是本发明实施例三提供的一种数据同步装置的结构示意图;
图7是本发明实施例四提供的一种数据同步系统的结构示意图;
图8是本发明实施例五提供的一种控制服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种数据同步方法的流程图,本实施例可适用于在利用至少两个搜索服务器集群提供对外查询服务时,对搜索服务器进行全量索引的数据同步的情况,尤其是可以用于大索引的应用场景中,大索引是指搜索服务器中存储的单个类型数据的文档总数达到千万级且总大小超过百G。该方法可以由数据同步装置来执行,该装置可以由软件和/或硬件的方式来实现,集成于控制服务器中。如图1所示,该方法具体包括以下步骤:
S110、将数据库中的全量数据加载并发送至离线服务器,以使离线服务器获得多个索引子文件。
其中,全量数据可以是指数据库中用于构建索引的全部业务数据。离线服务器可以是指处于离线状态,即未对外提供查询服务的设备。离线服务器可以单独部署,也可以部署在搜索服务器集群中。
具体地,控制服务器可以为一台,也可以为多台。例如,本实施例可以利用一台控制服务器将数据库中用于构建索引的全量数据进行提取组装,生成多个索引子文件,并将多个索引子文件发送至离线服务器。本实施例也可以利用多台控制服务器进行分布式加载,如图2所示,每个控制服务器只负责加载一个区间的数据库文件并将产生的索引子文件发送至离线服务器,从而可以缩短全量索引的构建时间,提高索引构建效率,进而提高数据同步效率。
S120、控制离线服务器对多个索引子文件进行合并,生成目标索引文件。
示例性地,S120可以包括:通过Solr搜索引擎中的段文件合并命令,将离线服务器中的多个索引子文件合并为一个或多个目标索引文件。
其中,目标索引文件可以是指将小的索引子文件进行合并后生成的索引大文件。具体地,控制服务器可以通过利用Solr搜索引擎中的段文件合并命令,控制离线服务器将全量索引完毕后产生的多个索引子文件合并为一个或多个目标索引文件。
S130、对至少两个搜索服务器集群中待同步的当前搜索服务器集群进行切流,以使当前查询请求由其他搜索服务器集群进行响应处理。
其中,搜索服务器集群可以是指将多个搜索服务器集成起来一起对外提供搜索查询服务,从客户端角度看就像只有一个服务器。本实施例可以利用至少两个搜索服务器集群响应处理大量的用户查询请求,以提高查询效率。本实施例中的搜索服务器可以为但不限于Solr搜索引擎。当前搜索服务器集群可以是指当前需要同步的搜索服务器集群。当前搜索服务器集群可以为所有搜索服务器集群中的部分集群。当前搜索服务器集群的数量可以为一个或多个,具体可以根据业务需求进行设置。例如,当利用两个搜索服务器集群对外提供搜索服务时,可以把其中任意一个作为当前搜索服务器集群。其他搜索服务器集群可以是指所有搜索服务器集群中除当前搜索服务器集群之外的集群。
具体地,控制服务器通过对当前搜索服务器集群进行切流,也就是将全部流量切至其他搜索服务器集群,由其他搜索服务器集群处理所有的查询请求,以保证对外查询服务不受影响。
示例性地,S130可以包括:向负载均衡服务器发送切流指令,以使负载均衡服务器基于切流指令将当前流量由至少两个搜索服务器集群中待同步的当前搜索服务器集群切至其他搜素服务器集群。
其中,切流指令可以是基于当前搜索服务器集群的集群标识生成。图3给出了一种全量索引同步架构图。如图3所示,负载均衡服务器可以用于对接收到的查询请求合理分配至搜索服务器集群中,避免出现过载情况,保持负载均衡,提高查询效率。
具体地,控制服务器可以向负载均衡服务器发送切流指令,负载均衡服务器可以基于切流指令对当前搜索服务器集群进行切流,将接收到的当前查询请求均发送至其他搜索服务器集群中进行响应处理,以暂停当前搜索服务器集群的搜索服务。例如,如图3所示,负载均衡服务器可以对搜索服务器集群A进行切流,将当前流量由搜索服务器集群A切至搜索服务器集群B,使得搜索服务器集群B处理所有的查询请求。通过利用负载均衡服务器可以实现快速切流,进一步提高索引同步效率。
S140、基于目标索引文件,对当前搜索服务器集群中的当前搜索服务器进行数据同步。
具体地,控制服务器可以控制当前搜索服务器集群中的每个当前搜索服务器同时从离线服务器中拉取最新的目标索引文件,并将目标索引文件存储至磁盘上,从而实现对当前搜索服务器的索引同步,同时也保证了查询性能不受影响。
需要说明的是,当前搜索服务器集群同步完毕后,可以基于相同的过程,对其他需要同步的搜索服务器集群进行索引同步,从而利用分批同步的方式,在不影响查询性能的提前下对所有搜索服务器进行全量索引的数据同步。
本实施例的技术方案,控制服务器通过将数据库中的全量数据加载并发送至离线服务器,并控制离线服务器对多个索引子文件进行合并,生成目标索引文件,从而实现离线构建索引,确保索引构建期间不会影响搜索服务器的查询性能。而且通过对至少两个搜索服务器集群中待同步的当前搜索服务器集群进行切流,使得当前查询请求由其他搜索服务器集群进行响应处理,并基于目标索引文件,对当前搜索服务器集群中的当前搜索服务器进行数据同步,从而通过分批同步的方式可以避免因全量索引同步而导致查询性能下降的情况,确保对外查询服务不受影响。
在上述技术方案的基础上,在步骤S110之前,还可以包括:获取输入的索引集合名称;若根据索引集合名称,检测到当前满足预设数据同步条件,则将数据库中的索引集合名称对应的全量数据加载并发送至离线服务器。
其中,索引集合名称可以是指当前需要同步更新的全量索引的名称。预设数据同步条件可以是基于业务需求预先设置的,可以进行索引同步的条件。例如,预设数据同步条件可以是输入的索引集合名称与正在构建的索引集合名称不同,且当前服务器集群的流量状态和运行状态均是正常状态。
具体地,控制服务器可以接收到用户输入的待构建的索引集合名称,并对接收到的索引集合名称和当前搜索服务器集群进行校验,若满足预设数据同步条件,则表明可以构建该索引集合名称所对应的索引,此时可以将数据库中的该索引集合名称对应的全量数据加载并发送至离线服务器,以便完成该索引的全量同步。若检测到当前不满足预设数据同步条件,则结束该索引同步,并可以发送告警消息,提醒相关人员及时进行处理。
实施例二
图4为本发明实施例二提供的数据同步方法的流程图,本实施例在上述实施例的基础上,对“基于目标索引文件,对当前搜索服务器集群中的当前搜索服务器进行数据同步”进行了进一步优化。在此基础上,还增加了步骤“周期性地向当前搜索服务器集群中的每个当前搜索服务器发送同步进度查询指令,获得每个当前搜索服务器的同步进度;若当前搜索服务器集群同步完毕,则对待同步的其他搜索服务器集群进行切流和数据同步,直到每个搜索服务器集群完成数据同步”。其中与上述各实施例相同或相应的术语的解释在此不再赘述。
参见图4,本实施例提供的数据同步方法包括以下步骤:
S410、将数据库中的全量数据加载并发送至离线服务器,以使离线服务器获得多个索引子文件。
S420、控制离线服务器对多个索引子文件进行合并,生成目标索引文件。
S430、对至少两个搜索服务器集群中待同步的当前搜索服务器集群进行切流,以使当前查询请求由其他搜索服务器集群进行响应处理。
S440、向当前搜索服务器集群中的当前搜索服务器发送同步开关开启指令,以使当前搜索服务器基于同步开关开启指令从离线服务器拉取目标索引文件进行数据同步。
其中,控制服务器可以与每个搜索服务器集群中的每个搜索服务器进行通信连接,从而可以向当前搜索服务器集群中的当前搜索服务器发送同步开关开启指令,以控制每个搜索服务器的同步开关。当前搜索服务器在接收到同步开关开启指令后,可以同时从离线服务器拉取最新的目标索引文件,并写入磁盘中,从而完成数据同步。控制服务器通过利用同步开关开启指令,可以更便捷地控制每个搜索服务器的同步操作,进而提高同步效率。
S450、周期性地向当前搜索服务器集群中的每个当前搜索服务器发送同步进度查询指令,获得每个当前搜索服务器的同步进度。
具体地,控制服务器可以周期性地向当前搜索服务器集群中的每个当前搜索服务器发送同步进度查询指令,以便及时获知每个当前搜索服务器的同步进度,从而可以更加及时地开展下一批集群的索引同步操作。
S460、若当前搜索服务器集群同步完毕,则对待同步的其他搜索服务器集群进行切流和数据同步,直到每个搜索服务器集群完成数据同步。
具体地,若当前搜索服务器集群同步完毕,则可以将其他待同步的搜索服务器集群作为当前服务器集群,返回执行步骤S410的操作,从而完成其他搜索服务器集群的索引同步。通过利用分批同步的方式,在不影响查询性能的提前下可以对所有搜索服务器进行全量索引的数据同步。
需要说明的是,在最后一批搜索服务器集群完成数据同步后,控制服务器可以向负载均衡服务器发送流量恢复指令,以恢复最后一批搜索服务器集群的搜索服务器,从而所有搜索服务器集群可以基于最新的索引数据对外提供搜索查询服务。
示例性地,图5给出了一种切流同步的时序图。如图5所示,控制服务器可以向负载均衡服务器发送切流指令,将全部流量切至搜索服务器集群A,由集群A承担所有的搜索业务。负载均衡服务器切流成功后,可以向控制服务器发送切流成功消息,以使控制服务器在接收到切流成功消息后再执行后续的数据同步,避免影响查询性能。切流成功后,控制服务器可以向搜索服务器集群B发送同步开关开启指令,开启集群B中所有服务器的同步开关,使得集群B中的所有服务器可以同时从离线服务器拉取最新的目标索引文件。控制服务器周期性地向集群B中的所有服务器发送同步进度查询指令,以获得各服务器的同步进度。当集群B中的所有服务器同步完成后,控制服务器向负载均衡服务器发送切流指令,将全部流量切至搜索服务器集群B,并在接收到切流成功消息后,向搜索服务器集群A送同步开关开启指令,开启集群A中所有服务器的同步开关,使得集群A中的所有服务器可以同时从离线服务器拉取最新的目标索引文件。控制服务器周期性地向集群A中的所有服务器发送同步进度查询指令,以获得各服务器的同步进度。当集群A中的所有服务器同步完成后,可以向负载均衡服务器发送流量恢复指令,以恢复集群A的流量状态,从而在不影响查询性能的前提下完成集群A和集群B的索引同步。
本实施例的技术方案,控制服务器通过利用同步开关开启指令,可以更便捷地控制每个搜索服务器的同步操作,进而提高同步效率。而且控制服务器通过周期性地向当前搜索服务器集群中的每个当前搜索服务器发送同步进度查询指令,从而可以及时获知每个当前搜索服务器的同步进度,以便及时地开展下一批集群的索引同步操作。通过利用分批同步的方式,可以在不影响查询性能的提前下对所有搜索服务器进行全量索引的数据同步。
以下是本发明实施例提供的数据同步装置的实施例,该装置与上述各实施例的数据同步方法属于同一个发明构思,在数据同步装置的实施例中未详尽描述的细节内容,可以参考上述数据同步方法的实施例。
实施例三
图6为本发明实施例三提供的一种数据同步装置的结构示意图,本实施例可适用于在利用至少两个搜索服务器集群提供对外查询服务时,对搜索服务器进行全量索引的数据同步的情况,该装置具体包括:数据加载模块610、合并控制模块620、集群切流模块630和数据同步模块640。
其中,数据加载模块610,用于将数据库中的全量数据加载并发送至离线服务器,以使离线服务器获得多个索引子文件;合并控制模块620,用于控制离线服务器对多个索引子文件进行合并,生成目标索引文件;集群切流模块630,用于对至少两个搜索服务器集群中待同步的当前搜索服务器集群进行切流,以使当前查询请求由其他搜索服务器集群进行响应处理;数据同步模块640,用于基于目标索引文件,对当前搜索服务器集群中的当前搜索服务器进行数据同步。
可选地,该装置还包括:
索引集合名称获取模块,用于在将数据库中的全量数据加载并发送至离线服务器之前,获取输入的索引集合名称。
相应地,数据加载模块610,具体用于若根据索引集合名称,检测到当前满足预设数据同步条件,则将数据库中的索引集合名称对应的全量数据加载并发送至离线服务器。
可选地,合并控制模块620,具体用于:通过Solr搜索引擎中的段文件合并命令,将离线服务器中的多个索引子文件合并为一个或多个目标索引文件。
可选地,集群切流模块630,具体用于:向负载均衡服务器发送切流指令,以使负载均衡服务器基于切流指令将当前流量由至少两个搜索服务器集群中待同步的当前搜索服务器集群切至其他搜素服务器集群。
可选地,数据同步模块640,包括:
同步开关开启指令发送子模块,用于向当前搜索服务器集群中的当前搜索服务器发送同步开关开启指令,以使当前搜索服务器基于同步开关开启指令从离线服务器拉取目标索引文件进行数据同步。
可选地,数据同步模块640,还包括:
同步进度查询指令发送子模块,用于在向当前搜索服务器集群中的当前搜索服务器发送同步开关开启指令之后,周期性地向当前搜索服务器集群中的每个当前搜索服务器发送同步进度查询指令,获得每个当前搜索服务器的同步进度;若当前搜索服务器集群同步完毕,则对待同步的其他搜索服务器集群进行切流和数据同步,直到每个搜索服务器集群完成数据同步。
本发明实施例所提供的数据同步装置可执行本发明任意实施例所提供的数据同步方法,具备执行数据同步方法相应的功能模块和有益效果。
值得注意的是,上述数据同步装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例四
图7为本发明实施例四提供的一种数据同步系统的结构示意图,本实施例可适用于在利用至少两个搜索服务器集群提供对外查询服务时,对搜索服务器进行全量索引的数据同步的情况,该系统具体包括:控制服务器710、离线服务器720和至少两个搜索服务器集群730。
其中,控制服务器710用于执行本发明任意实施例所提供的数据同步方法步骤。离线服务器可以是指处于离线状态,即未对外提供查询服务的设备。离线服务器可以用于存储最新的全量索引数据。
本实施例提供的数据同步系统,控制服务器通过将数据库中的全量数据加载并发送至离线服务器,并控制离线服务器对多个索引子文件进行合并,生成目标索引文件,从而实现离线构建索引,确保索引构建期间不会影响搜索服务器的查询性能。而且通过对至少两个搜索服务器集群中待同步的当前搜索服务器集群进行切流,使得当前查询请求由其他搜索服务器集群进行响应处理,并基于目标索引文件,对当前搜索服务器集群中的当前搜索服务器进行数据同步,从而通过分批同步的方式可以避免因全量索引同步而导致查询性能下降的情况,确保对外查询服务不受影响。
实施例五
图8是本发明实施例五提供的一种控制服务器的结构示意图。参见图8,该控制服务器包括:
一个或多个处理器810;
存储器820,用于存储一个或多个程序;
当一个或多个程序被一个或多个处理器810执行,使得一个或多个处理器810实现如上述实施例中任意实施例所提供的数据同步方法步骤,该方法包括:
将数据库中的全量数据加载并发送至离线服务器,以使离线服务器获得多个索引子文件;
控制离线服务器对多个索引子文件进行合并,生成目标索引文件;
对至少两个搜索服务器集群中待同步的当前搜索服务器集群进行切流,以使当前查询请求由其他搜索服务器集群进行响应处理;
基于目标索引文件,对当前搜索服务器集群中的当前搜索服务器进行数据同步。
图8中以一个处理器810为例;控制服务器中的处理器810和存储器820可以通过总线或其他方式连接,图8中以通过总线连接为例。
存储器820作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的数据同步方法对应的程序指令/模块(例如,数据同步装置中的数据加载模块610、合并控制模块620、集群切流模块630和数据同步模块640)。处理器810通过运行存储在存储器820中的软件程序、指令以及模块,从而执行控制服务器的各种功能应用以及数据处理,即实现上述的数据同步方法。
存储器820主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据控制服务器的使用所创建的数据等。此外,存储器820可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器820可进一步包括相对于处理器810远程设置的存储器,这些远程存储器可以通过网络连接至控制服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本实施例提出的控制服务器与上述实施例提出的数据同步方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例具备执行数据同步方法相同的有益效果。
实施例五
本实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的数据同步方法步骤,该方法包括:
将数据库中的全量数据加载并发送至离线服务器,以使离线服务器获得多个索引子文件;
控制离线服务器对多个索引子文件进行合并,生成目标索引文件;
对至少两个搜索服务器集群中待同步的当前搜索服务器集群进行切流,以使当前查询请求由其他搜索服务器集群进行响应处理;
基于目标索引文件,对当前搜索服务器集群中的当前搜索服务器进行数据同步。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本领域普通技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,或者分布在多个计算装置所组成的网络上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。