对数据写入请求进行流量均衡的方法和系统与流程

文档序号:19634923发布日期:2020-01-07 11:53阅读:282来源:国知局
对数据写入请求进行流量均衡的方法和系统与流程
本公开涉及对数据写入请求进行流量均衡的方法和系统。
背景技术
:对于需要使用大型数据库的系统(例如,金融公司的账务处理系统、购物网站的订单处理系统,等等)而言,一般都会进行数据库的分库分表操作,也就是将要写入的数据(例如,交易记录、订单,等等)按照一定规则分散到不同的数据库,达到流量均衡的目的。然而,目前的流量均衡策略一般与业务强耦合,而且需要人工配置流量均衡的规则。从而,如果漏配置或者配置错误,都可能达不到流量负载均衡的效果,导致某一些数据库流量过大影响性能和/或导致故障。技术实现要素:本公开提出了一种将原本需要手动配置的路由功能沉入业务逻辑的方案。该方案通过使用散列算法对请求参数进行散列并根据散列值得出要路由到的数据分库,解决了负载均衡问题。本公开的这一方案利用散列函数的随机性来达成负载和/或流量均衡,不需要配置路由表,避免了手工配置错误或者遗漏以及业务请求的发起者或者业务标识的分表位集中导致的流量不均衡现象,不仅解放了生产力而且达到了负载均衡的效果。根据本公开的第一方面,提供了一种用于对数据写入请求进行流量均衡的方法,包括:获取将数据写入到数据库的数据写入请求,其中所述数据写入请求至少包括能唯一地标识该请求的业务标识符和序列号;解析所述数据写入请求以得到请求参数,所述参数至少包括所述业务标识符和所述序列号;基于解析出的所述参数来计算所述数据写入请求的散列值,其中所述散列值能唯一地标识所述数据写入请求;以及基于所述散列值来将所述数据写入请求路由到相应的数据库,以将数据写入该数据库。在一实施例中,所述散列值是至少对所述数据写入请求中包括的所述业务标识符和所述序列号应用散列函数来获得的。在另一实施例中,所述散列函数包括以下中的任一者:md4、md5、sha-1。在又一实施例中,数据库分库数目是n,其中n是大于等于1的整数,并且各数据库按0到n-1来编号,并且基于所述散列值来将所述数据写入请求路由到相应的数据库包括:通过使用函数运算将所述散列值映射到相应数据库编号;以及将所述数据写入请求路由到相应编号的数据库。在又一实施例中,所述函数运算包括模运算,并且通过使用函数运算将所述散列值映射到相应数据库编号包括:根据数据库分库数目n对所述散列值进行模运算以得到余数;以及将所述数据写入请求路由到编号等于所述余数的数据库。在又一实施例中,所述方法还包括在进行模运算之前,根据预定映射将所述散列值中的字母替换成数字,以得到纯数字形式的散列值。在又一实施例中,所述模运算进一步包括:将所述散列值拆分成两段或更多段,并根据预定值对每一段进行模运算;将针对各段所得到的各个余数累加在一起以得到总和;以及根据数据库分库数目对所述总和进行模运算以得到余数。在又一实施例中,所述预定值大于等于所述数据库分库数目n。在又一实施例中,所述数据写入请求包括汇总记账请求。在又一实施例中,所述方法还包括在解析所述数据写入请求之前确定该请求是否是汇总记账请求,并且如果是则执行该方法的后续解析请求和计算散列值操作,相反如果否则按照普通方式进行记账。根据本公开的第二方面,提供了一种用于对数据写入请求进行流量均衡的系统,包括:数据写入请求源设备,其被配置成产生将数据写入到数据库的数据写入请求,其中所述数据写入请求至少包括能唯一地标识该请求的业务标识符和序列号;流量均衡服务,其被配置成:获取由所述数据写入请求源设备所产生的数据写入请求;解析所述数据写入请求以得到请求参数,所述参数至少包括所述业务标识符和所述序列号;基于解析出的所述参数来计算所述数据写入请求的散列值,其中所述散列值能唯一地标识所述数据写入请求;以及基于所述散列值来将所述数据写入请求路由到相应的数据库,以将数据写入该数据库;以及数据库,所述数据库接收由所述流量均衡服务路由的数据写入请求以写入相应数据。在一实施例中,所述散列值是至少对所述数据写入请求中包括的所述业务标识符和所述序列号应用散列函数来获得的。在另一实施例中,所述散列函数包括以下中的任一者:md4、md5、sha-1。在又一实施例中,所述数据库包括n个数据库,其中n是大于等于1的整数,并且各数据库按0到n-1来编号,并且所述流量均衡服务还被配置成:通过使用函数运算将所述散列值映射到相应数据库编号;以及将所述数据写入请求路由到相应编号的数据库。在又一实施例中,所述函数运算包括模运算,并且所述流量均衡服务还被配置成:根据数据库的数目n对所述散列值进行模运算以得到余数;以及将所述数据写入请求路由到编号等于所述余数的数据库。在又一实施例中,所述流量均衡服务还被配置成在进行模运算之前,根据预定映射将所述散列值中的字母替换成数字,以得到纯数字形式的散列值。在又一实施例中,所述模运算进一步包括:将所述散列值拆分成两段或更多段,并根据预定值对每一段进行模运算;将针对各段所得到的各个余数累加在一起以得到总和;以及根据数据库分库数目对所述总和进行模运算以得到余数。在又一实施例中,所述预定值大于等于所述数据库分库数目n。在又一实施例中,所述数据写入请求包括汇总记账请求。在又一实施例中,所述流量均衡服务还被配置成在解析所述数据写入请求之前确定该请求是否是汇总记账请求,并且如果是则执行后续解析请求和计算散列值操作,相反如果否则按照普通方式进行记账。根据本公开的第三方面,提供了一种存储有计算机可执行指令的计算机可读介质,所述指令在由计算机执行时使得所述计算机执行根据本公开的第一方面所述的方法。各方面一般包括如基本上在本文参照附图所描述并且如通过附图所解说的方法、装备、系统、计算机程序产品和处理系统。前述内容已较宽泛地勾勒出根据本公开的示例的特征和技术优势以使下面的详细描述可以被更好地理解。附加的特征和优势将在此后描述。所公开的概念和具体示例可容易地被用作修改或设计用于实施与本公开相同的目的的其他结构的基础。此类等效构造并不背离所附权利要求书的范围。本文所公开的概念的特性在其组织和操作方法两方面以及相关联的优势将因结合附图来考虑以下描述而被更好地理解。每一附图是出于解说和描述目的来提供的,且并不定义对权利要求的限定。附图说明为了能详细理解本公开的以上陈述的特征所用的方式,可参照各方面来对以上简要概述的内容进行更具体的描述,其中一些方面在附图中解说。然而应该注意,附图仅解说了本公开的某些典型方面,故不应被认为限定其范围,因为本描述可允许有其他等同有效的方面。不同附图中的相同附图标记可标识相同或相似的元素。图1是现有技术中用于对数据写入请求进行流量均衡的示例方法的流程图;图2是根据本公开的一实施例的对数据写入请求进行流量均衡的示例方法的流程图;图3是根据本公开的一实施例的对数据写入请求进行流量均衡的示例系统的示意图;图4是根据本公开的一实施例的对汇总记账请求进行流量均衡的示例方法的流程图;图5是根据本公开的一实施例的汇总记账请求的示例格式;以及图6是根据本公开的一实施例的对数据写入请求进行流量均衡的另一示例系统的示意性框图。具体实施方式术语解释:分库分表,指的是对于大型的系统而言,单一数据库无法承载对应数据库请求而进行的数据库拆分;流量均衡,也可以称为负债均衡,一般指尽量让多台服务器均摊业务请求,对于数据库而言,是指让不同的分库分表位尽量均摊数据库流量;汇总记账,一种记账模式,指业务发生的时候不实时更新余额,只记录明细,后台任务按照一定频率捞取汇总后更新余额的记账方式;以下结合附图阐述的详细描述旨在作为各种配置的描述,而无意表示可实践本文中所描述的概念的仅有的配置。本详细描述包括具体细节以提供对各种概念的透彻理解。然而,对于本领域技术人员将显而易见的是,没有这些具体细节也可实践这些概念。参考图1,其示出了现有技术中用于对数据写入请求进行流量均衡的示例方法100的流程图。例如,如图1所示,方法100可包括在框110获取到数据写入请求之后,接着在框120解析该请求中包括的参数,例如业务类型、序列号、校验等等。随后,方法100可在框130确定是否存在针对该请求的经设定的路由配置,如果存在,则方法100可进至框140,在此,该数据写入请求被根据所设定的路由配置来路由到相应数据库。相反,如果不存在针对该请求的经设定的路由配置,则该数据写入请求可根据默认方式来路由到相应数据库。申请人认识到,这种方式将不能很好地满足数据库流量均衡的要求。例如,在汇总记账的示例中,数据写入请求将是汇总记账请求。举例如下:账户a请求进行充值100元的操作,记账基本信息可例如如下所示:账户金额订单号交易类型备注a0021000000xxp00-0001充值充值100块在该账户请求记账时(即,发出了数据写入请求),方法100将首先获取该请求并解析请求中包括的参数,进而判断是否有该账户的汇总路由配置,如果有按照该方式路由,如果没有,按照默认方式路由。一种典型的示例汇总路由配置如下:账户汇总路由方式是否生效配置人a002按照订单号路由是小王如上所示,如果账户a有该配置,则需要按照该方式进行路由计算路由到的数据库。在其他示例中,汇总路由方式一般可包括按照订单号路由、按照对手账户路由等等,并且默认地可按照自身账户分表位路由。在一实施例中,账户a如果按照订单号“0000xxp00-0001”路由,则该请求会被路由到编号为00的数据库;而如果按照默认方式路由,则会路由到“a002”,即编号为02的数据库。由以上示例可知,在业务真实的进行过程中,订单的构建本身没有约束,同时对手账户可能是一个高频账户,如此,方法100的路由方案路由没有严格的保证负载均衡。并且方法100需要依赖以下三点来保证负载均衡:订单号随机生成、对手账户完全随机、汇总路由配置正确。然而,在真实的业务过程中,订单号和对手账户完全由业务控制,账务系统(即,数据库系统)自身无法保证。而汇总路由配置则是由人工参与配置的,也存在配置错误或者漏配置的可能性。为解决以上以及其他问题,本公开提出了一种将原本需要手动配置的功能沉入业务逻辑的方案。该方案通过使用散列算法来解决负载均衡问题,避免了手工配置错误或者遗漏以及业务请求的账户或者订单的分表位集中导致的流量不均衡现象,不仅解放了生产力而且达到了负载均衡的效果。下面结合图2-6来描述本公开的各实施例的方案。参考图2,其示出了根据本公开的一实施例的对数据写入请求进行流量均衡的示例系统200的示意图。如图2所示,系统200可包括数据写入请求源设备202、流量均衡服务204以及诸数据库设备206,其中它们可通过各种通信手段彼此互连,例如图2所示的因特网208。本领域技术人员可以明白,尽管图2示出了移动设备形式的数据写入请求源设备202(即,各个用户可以使用其移动设备来产生数据写入请求),但还可存在各种其他形式的源设备(如省略号203所示),例如各种台式机、小型机、服务器,等等。如下文所述,图2中的流量均衡服务204可被配置成执行本公开的各示例方法。然而,尽管流量均衡服务204在图2中以物理机的形式示出,但它可以由设置在云端的虚拟机来支持或是由云提供的服务。在另一实施例中,它可被主存在与数据库设备206中。此外,尽管在此以“服务”来描述本公开的流量均衡功能,但它也可以是实现在单独计算设备上的功能、实现在数据库设备上的功能的形式,等等。本领域技术人员还可以明白,尽管图2中示出了物理机形式的两个数据库设备206,但系统200可包括任何数目数据库设备206,如省略号210所示。接着参考图3,其示出了根据本公开的一实施例的对数据写入请求进行流量均衡的示例方法300的流程图。在框310,方法300可包括获取将数据写入到数据库的数据写入请求。在一实施例中,数据写入请求至少包括能唯一地标识该请求的业务标识符和序列号。例如,结合图2,数据写入请求源设备202可以被配置成产生将数据写入到数据库的各种数据写入请求,并且将该请求传送给流量均衡服务204,而流量均衡服务204可被配置成获取该数据写入请求。在框320,方法300可包括解析数据写入请求以得到请求参数。如上所述,数据写入请求可包括各个参数,诸如能唯一地标识该请求的业务标识符和序列号。结合图2,流量均衡服务204还可被配置成在获取到数据写入请求之后,解析出这些业务标识符和序列号参数,以供后续使用来将该请求路由到相应数据库。在框330,方法300可包括基于解析出的所述参数来计算数据写入请求的散列值。在一示例中,计算得到的散列值能唯一地标识该数据写入请求。例如,图2中的流量均衡服务204可以被配置成使用解析出的参数中的一者或多者来计算该请求的散列值。在这一示例中,被使用来计算散列值的参数能够唯一地标识该数据写入请求。例如,该数据写入请求一般至少包括该写入请求的发起者标识符、请求所涉及的业务的标识符和序列号,等等。这些标识符和序列号能够唯一地标识该请求并且因此可被用来计算相应的散列值。在一实施例中,散列值即是至少对该数据写入请求中包括的业务标识符和序列号应用散列函数来获得的。然而,本领域技术人员可以明白,散列值仅是全局唯一标识的一种示例形式,还可以采取任何其他合适的方式来唯一地标识该请求,例如将该请求的各部分串接在一起,等等。另外,可以明白,散列值是可以使用各种已知或将来开发的散列算法来计算得到的,诸如md4、md5、sha-1等等。本领域技术人员还可以明白,流量均衡服务204可以被配置成使用接收到的请求中包括的任何部分和/或其组合来计算相对应的散列值,只要使用这些部分和/或其组合计算得到的散列值能够被用来唯一地标识该请求。继续参考图3,在框340,方法300可包括基于计算得到的散列值来将数据写入请求路由到相应的数据库,以将数据写入该数据库。结合图2,流量均衡服务204可被配置成基于计算得到的散列值来将来自数据写入请求源设备202的数据写入请求路由到相应的数据库设备206,以将数据写入该数据库。在一实施例中,采用数据库分库分表来使用多个数据库满足数据写入请求。例如,图2中示出了两个数据库设备206,但系统200可包括任何数目数据库设备206,如省略号210所示。在这一实施例中,数据库分库数目是n,其中n是大于等于1的整数,并且各数据库按0到n-1来编号。如此,基于数据写入请求的散列值来将数据写入请求路由到相应的数据库包括:通过使用函数运算将散列值映射到相应数据库编号,以及将数据写入请求路由到相应编号的数据库。例如,结合图2,流量均衡服务204可被配置成通过使用函数运算将散列值映射到相应数据库编号,以及将来自数据写入请求源设备202的数据写入请求路由到相应编号的数据库206。在一实施例中,所使用的函数可包括定义域包括散列值范围且值域为0到n-1的任何函数。在一优选示例中,使用模运算来将散列值映射到相应数据库编号。在这一优选示例中,在进行模运算之前,根据预定映射将散列值中的字母替换成数字,以得到纯数字形式的散列值。例如,预定映射可以是将字母a-z按照其字母表顺序替换成数字1-26。本领域技术人员可以明白,可以使用任何其他合适的映射。在在一示例中,在完成替换之后,可以根据数据库分库数目n对散列值进行模运算以得到余数,其中该余数即可对应于相应数据库的编号。例如,结合图2,流量均衡服务204可被配置成在进行模运算之前,根据预定映射将散列值中的字母替换成数字以得到纯数字形式的散列值,使用模运算来将该纯数字形式的散列值映射到相应数据库编号,以及将数据写入请求路由到相应编号的数据库206。在另一示例中,为了获得更好的均衡结果,可以对散列值进行多次模运算。例如,在这一示例中,可以首先将散列值拆分成两段或更多段,并根据预定值对每一段进行模运算;此后,将针对各段所得到的各个余数累加在一起以得到总和;以及最后,根据数据库分库数目对该总和进行模运算以得到余数。在该示例中,优选地,所使用的预定值大于等于数据库分库数目n。结合图2,流量均衡服务204可被配置成对散列值进行多次模运算以获得更好的均衡效果(即,通过增强散列的随机性来达到更好的均衡)。为更详细地说明本公开的方案,下面结合图4-5描述本公开的方案在汇总记账场景中的应用。图4是根据本公开的一实施例的对汇总记账请求进行流量均衡的示例方法400的流程图。首先,如图4所示,各个账户将会产生记账请求并且这一请求将被接收,如在框410处所示。例如,图2所示的数据写入请求源设备202可以产生记账请求,并且这一请求随后将由流量均衡服务204接收到。在收到请求之后,方法400可包括确定该记账请求是否是汇总账户。在一示例中,这一确定是基于该记账请求的账户的相应配置来作出的。下表给出了这一配置的示例格式:账户汇总开始时间汇总结束时间记账模式配置人a0022018-08-1300:002018-08-1400:00汇总记账小王在以上示例中,账户a002配置有汇总记账模式。结合图2,流量均衡服务204可被配置成基于记账请求的账户来查找是否存在用于该账户的汇总记账配置,从而确定该记账请求是否是汇总账户。如果否,则方法400可进至框430,在此进行普通方式记账。然而,如果确定该记账请求是汇总账户,则方法400可进至框440,在此解析请求参数,即解析汇总记账请求以得到该请求中包括的各个参数。例如,如图5所示,其示出了根据本公开的一实施例的汇总记账请求的示例格式500。可以看到,汇总记账请求可包括各个参数,例如账户、金额、订单号、交易类型、备注,等等。在图5所示的示例中,订单号可包括业务标识符和序列号。例如,如图所示,订单号0000xxp00-0001包括了业务标识符0000xxp00和序列号0001;订单号0002xxp00-0001包括了业务标识符0002xxp00和序列号0004;以及订单号0009xxp00-0006包括了业务标识符0009xxp00和序列号0006。本领域技术人员可以明白,尽管图5示出了包括账户、金额、订单号、交易类型、备注等字段,但还可包括任何其他字段(例如,crc校验字段)或不包含上述字段中的任一者或多者(例如,不包括备注字段,等等)。随后,方法400进至框450,在此,如上文结合图2-3描述的,基于解析出的参数来计算汇总记账请求的散列值,即hash(参数)。同样结合图2,流量均衡服务204可以被配置成使用解析出的参数中的一者或多者来计算该请求的散列值。在一示例中,被使用来计算散列值的参数能够唯一地标识该汇总记账请求。例如,结合图5,汇总记账请求包括能唯一地标识该请求的订单号(其包括了业务标识符和序列号),并且因此订单号可被用来计算相应的散列值。如上文结合图2-3所述,散列值即是至少对该汇总记账中包括的业务标识符和序列号(即,订单号)应用散列函数来获得的。然而,本领域技术人员可以明白,散列值仅是全局唯一标识的一种示例形式,还可以采取任何其他合适的方式来唯一地标识该请求,例如将该请求的各部分串接在一起,等等。另外,可以明白,散列值是可以使用各种已知或将来开发的散列算法来计算得到的,诸如md4、md5、sha-1等等。本领域技术人员还可以明白,流量均衡服务204可以被配置成使用接收到的请求中包括的任何部分和/或其组合来计算相对应的散列值,只要使用这些部分和/或其组合计算得到的散列值能够被用来唯一地标识该请求。在一实施例中,采用数据库分库分表来使用多个数据库满足汇总记账请求。例如,图2中示出了两个数据库设备206,但系统200可包括任何数目数据库设备206,如省略号210所示。在这一实施例中,数据库分库数目是n,其中n是大于等于1的整数,并且各数据库按0到n-1来编号。如此,基于汇总记账请求的散列值来将汇总记账请求路由到相应的数据库包括:通过使用函数运算将散列值映射到相应数据库编号,以及将汇总记账请求路由到相应编号的数据库。例如,结合图2,流量均衡服务204可被配置成通过使用函数运算将散列值映射到相应数据库编号,以及将来自数据写入请求源设备202的汇总记账请求路由到相应编号的数据库206。在一实施例中,所使用的函数可包括定义域包括散列值范围且值域为0到n-1的任何函数。在一优选示例中,使用模运算来将散列值映射到相应数据库编号。在这一优选示例中,在进行模运算之前,根据预定映射将散列值中的字母替换成数字,以得到纯数字形式的散列值。例如,预定映射可以是将字母a-z按照其字母表顺序替换成数字1-26。本领域技术人员可以明白,可以使用任何其他合适的映射。在在一示例中,在完成替换之后,可以根据数据库分库数目n对散列值进行模运算以得到余数,其中该余数即可对应于相应数据库的编号。例如,结合图2,流量均衡服务204可被配置成在进行模运算之前,根据预定映射将散列值中的字母替换成数字以得到纯数字形式的散列值,使用模运算来将该纯数字形式的散列值映射到相应数据库编号,以及将汇总记账请求路由到相应编号的数据库206。在另一示例中,为了获得更好的均衡结果,可以对散列值进行多次模运算。例如,在这一示例中,可以首先将散列值拆分成两段或更多段,并根据预定值对每一段进行模运算;此后,将针对各段所得到的各个余数累加在一起以得到总和;以及最后,根据数据库分库数目对该总和进行模运算以得到余数。在该示例中,优选地,所使用的预定值大于等于数据库分库数目n。结合图2,流量均衡服务204可被配置成对散列值进行多次模运算以获得更好的均衡效果(即,通过增强散列的随机性来达到更好的均衡)。例如,结合图5,使用md5算法,通过对订单号0000xxp00-0001、0002xxp00-0001以及0009xxp00-0006进行md5运算获取到字符串,然后对这些散列后的字符串使用预定映射(例如,将字母a-z按照其字母表顺序替换成数字1-26)按位转成整数。随后将这一纯数字形式的散列值分成两段,将每一段对固定值100(在此,数据库分库数目被设为100)取模,将取模得到的两个余数进行累计,并随后将累计得到的和按数据库分库数目100再次取模,即可以获得目标库的分表位(即,数据库编号),如下所示:<terminated>aaa[javaapplication]/library/java/javavirtualmachines/jdk1.8.0_172.jdk/contents/home/bin/java(201:md5加密后的字符串为:encodestr=54997980aba0763df599c5ec889ab131,tohash=89md5加密后的字符串为:encodestr=744ae7aba9503a08379be10c83b8bdab,tohash=9md5加密后的字符串为:encodestr=1b5a6c3f7d7afe093fddfa2265e1a9f1,tohash=30。可见,经上述操作之后获取到的分表位分别为89,09,30。这一结果保持了散列函数的随机性,同时这与账户以及订单号自身的序列号没有严格关系。如此,达到了省去汇总路由配置,同时负载均衡的目的。继续参考图4,在460,方法400可包括根据散列值路由,即根据计算得到的散列值来将汇总记账请求路由到相应的数据库,以将汇总记账写入该数据库。结合图2,流量均衡服务204可被配置成基于计算得到的散列值来将来自数据写入请求源设备202的数据写入请求路由到相应的数据库设备206,以将数据写入该数据库。例如,在以上结合图5的散列值,三个汇总记账请求分别被路由到第89、9和30数据库。图6是根据本公开的一实施例的对数据写入请求进行流量均衡的示例系统600的示意性框图。如图所示,辅助文本标注系统600包括处理器605和存储器610。存储器610存储有计算机可执行指令,这些指令可由处理器605执行来实现以上结合图1-5描述的方法和流程。以上具体实施方式包括对附图的引用,附图形成具体实施方式的部分。附图通过说明来示出可实践的特定实施例。这些实施例在本文中也称为“示例”。此类示例可以包括除所示或所述的那些元件以外的元件。然而,还构想了包括所示或所述元件的示例。此外,还构想出的是使用所示或所述的那些元件的任何组合或排列的示例,或参照本文中示出或描述的特定示例(或其一个或多个方面),或参照本文中示出或描述的其他示例(或其一个或多个方面)。在所附权利要求书中,术语“包括”和“包含”是开放式的,也就是说,在权利要求中除此类术语之后列举的那些元件之外的元件的系统、设备、制品或过程仍被视为落在那项权利要求的范围内。此外,在所附权利要求书中,术语“第一”、“第二”和“第三”等仅被用作标记,并且不旨在表明对它们的对象的数字顺序。另外,本说明书中所解说的各操作的次序是示例性的。在替换实施例中,各操作可以按与附图所示的不同次序执行,且各操作可以合并成单个操作或拆分成更多操作。以上描述旨在是说明性的,而非限制性的。例如,可结合其他实施例来使用以上描述的示例(或者其一个或多个方面)。可诸如由本领域普通技术人员在审阅以上描述之后来使用其他实施例。摘要允许读者快速地确定本技术公开的性质。提交该摘要,并且理解该摘要将不用于解释或限制权利要求的范围或含义。此外,在以上具体实施方式中,各种特征可以共同成组以使本公开流畅。然而,权利要求可以不陈述本文中公开的每一特征,因为实施例可以表征所述特征的子集。此外,实施例可以包括比特定示例中公开的特征更少的特征。因此,所附权利要求书由此被结合到具体实施方式中,一项权利要求作为单独的实施例而独立存在。本文中公开的实施例的范围应当参照所附权利要求书以及此类权利要求所赋予权利的等价方案的完整范围来确定。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1