专利名称:一种分布式系统动态应用隔离的方法和系统的制作方法
技术领域:
本发明涉及计算机领域,尤其涉及一种在分布式顺序表上,建立受控组并且保持不同受控组内数据分布和服务请求占用的服务器资源相互隔离的方法。
背景技术:
当系统需要支持多个对服务器资源配置要求差异巨大的应用时,通常需要搭建多个集群,因此需要多个支援系统来满足运行需求,无法共用基础设施平台。就是说,在系统中,如果某些数据表的服务请求对服务器的需求过大时,服务器对这些数据表的服务请求执行的过于频繁,使得其他的数据表的服务请求长时间得不到执行,那么目前的现有技术,还没有能实现支持多个服务器资源互不兼容的应用,共用系统基础设施的问题还属于分布式系统或数据库领域正待解决的技术问题。
发明内容
本发明提出了一种分布式系统动态应用隔离的方法,保证不同数据表在使用服务器资源时,可以相互隔离互不干扰,实现了支持多个服务器资源互不兼容应用,能共用系统基础设施,所述技术方案如下一种分布式系统动态应用隔离的方法,其特征在于,所述方法包括在分布式系统中,根据服务器应用的类型将系统的服务器划分成不同的受控组;根据服务请求对不同应用类型受控组的需求,为每个受控组分配相应数量的服务器;`将所述服务请求所要调用的数据表存放到在相应应用类型的受控组中的服务器上,使服务器所执行的服务请求被限制在受控组范围内。进一步的,在所述分布式系统中,数据表中的数据按照主关键字划分成多个水平数据分片,将所述数据分片分配到同一个受控组内多个服务器上。进一步的,当服务请求对不同类型受控组的需求改变时,重新分配受控组中服务器的数量,服务器在受控组之间进行迁移。进一步的,所述将服务器进行迁移的方法包括将所要迁移的服务器中的数据分片转移到相同受控组的其他服务器上;将所述要迁移的服务器从原受控组删除;将所述要迁移的服务器注册在新的受控组;将新的受控组内,部分服务器上的部分数据分片转移到所述新迁移到组的服务器上。进一步的,根据受控组内服务器负载的情况对数据分片的分布做重新分配。进一步的,所述根据受控组内服务器负载的情况对数据分片的分布做重新分配包括在受控组内比较所有服务器的负载;
将负载最大的服务器中,部分数据表的数据分片转移到负载最小的服务器中;重复以上两个步骤,直到负载最大与负载最小的服务器中,数据的分片差值为1,停止操作。—种分布式系统动态应用隔离的系统,所述系统包括 控制模块,用于将服务请求通过组件管理模块发送给应用类型相同的服务请求执行模块,并向组间管理模块发送组件管理的指令;组件管理模块,与所述控制模块相连接,用于根据服务请求的类型选择应用类型相同的服务请求执行模块,并且管理所述服务请求执行模块;服务请求执行模块,与所述组件管理模块相连接,用于存储系统中的数据分片,执行所述控制模块发送的服务请求;其中,所述服务请求执行模块由多个服务器组成,根据应用的类型划分成不同的受控组,服务器所执行的服务请求被限制在受控组范围内。进一步的,所述组件管理模块包括服务器管理模块,用于根据服务请求的类型选择应用类型相同的服务请求执行模块,并管理所述服务请求执行模块中的服 务器对服务请求的执行;数据管理模块,用于根据服务请求对不同应用类型受控组的需求,为每个受控组分配相应数量的服务器,并在服务请求对不同类型受控组的需求改变时,重新分配受控组中服务器的数量,服务器在受控组之间进行迁移;受控组内服务器负载均衡管理模块,用于根据受控组内服务器负载的情况对数据分片的分布进行均衡分配。本发明通过提出的受控组资源管理技术,把系统的全部服务器资源划分为不同的受控组,不同数据表的数据分布和服务请求受到受控组资源的限制,保证不同数据表使用服务器资源可以相互隔离互不干扰,实现了支持多个服务器资源互不兼容应用,能共用系统基础设施。
图1是本发明实施例提供的分布式系统动态应用隔离的方法流程图;图2是本发明实施例提供的分布式系统动态应用隔离的系统功能模块框图;图3是本发明实施例提供的分布式系统受控组资源管理的基本结构示意图。
具体实施例方式下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例,仅仅用于解释本发明,而非对本发明的限定。实施例一分布式系统(distributed system)是建立在网络之上的软件系统。在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体,是一个系统。系统拥有多种通用的物理和逻辑资源,可以动态的分配任务,分散的物理和逻辑资源通过计算机网络实现信息交换。系统中存在一个以全局的方式管理计算机资源的分布式操作系统。通常,对用户来说,分布式系统只有一个模型或范型。在操作系统之上有一层软件中间件(middleware)负责实现这个模型。一个著名的分布式系统的例子是万维网(World Wide Web),在万维网中,所有的一切看起来就好像是一个文档(Web)—样。图1是本发明实施例提供的分布式系统动态应用隔离的方法流程图。如图1所示分布式系统动态应用隔离的方法包括步骤101 :在分布式系统中,根据服务器应用的类型将系统的服务器划分成不同的受控组;在分布式系统中,服务器应用的类型有很多种,这里的服务器应用的类型包括读缓存、写缓存、缓存系统内存的大小等等,这些服务器应用的类型对服务器的需求量不同,而不同应用类型对服务器的需求由一定时段的服务请求决定,比如,有时读缓存的操作多一些,则读缓存对服务器的需求量就较多。先根据服务器应用的类型将系统的服务器划分成不同的受控组,每种受控组对应一种应用类型,以便后续为受控组分配服务器。步骤102 :根据服务请求对不同应用类型受控组的需求,为每个受控组分配相应数量的服务器;由于服务器应用的类型对服务器的需求量不同,并且不同应用类型对服务器的需求量由一定时段的服务请求决定,所以,可以根据服务请求对不同应用类型的需求,为每个受控组分配相应数量的服务器,对服务器需求量较多的应用类型受控组可分得较多数量的服务器,而对服务器需求量较少的应用类型受控组分得较少数量的服务器。这样可以充分利用资源,不至于出现有些服务器中的服务请求执行不过来,很多服务请求不能得到执行,而有些服务器却被闲置,没有得到充分的利用。步骤103 :将服务请求所要调用的数据表存放到在相应应用类型的受控组中的服务器上,使服务器所执 行的服务请求被限制在受控组范围内。首先,在分布式系统中,数据表中的数据按照主关键字划分成多个水平数据分片,将这些数据分片分配到同一个受控组内多个服务器上。这些数据表的操作也与所在的受控组的应用类型相对应。将服务请求所要调用的数据表的数据分片,存放到在相应应用类型的受控组中的服务器上,使服务器所执行的服务请求被限制在受控组范围内,而其他受控组则不能调用这个数据表。当服务请求对不同类型受控组的需求改变时,要重新分配受控组中服务器的数量,将服务器在受控组之间进行迁移。将需求量较小的受控组中的服务器迁移到需求量较大的受控组。将服务器进行迁移的方法包括步骤1031 :将所要迁移的服务器中的数据分片转移到相同受控组的其他服务器上;步骤1032 :将所要迁移的服务器从原受控组删除。步骤1033 :将所要迁移的服务器注册在新的受控组,并且新的受控组对服务器的需求量较大。步骤1034 :将新的受控组内,部分服务器上的部分数据分片转移到新迁移到组的服务器上。由于受控组之间服务器的迁移,而造成受控组内的数据分片分布和服务请求分布不均衡,要根据受控组内服务器负载的情况对数据分片的分布做重新分配。使得受控组内服务器资源达到均衡。根据受控组内服务器负载的情况对数据分片的分布做重新分配包括步骤1035 :在受控组内比较所有服务器的负载,其中,服务器的负载指服务器中数据分片的数量。步骤1036 :将负载最大的服务器中,部分数据表的数据分片转移到负载最小的服务器中;步骤1037 :重复以上两个步骤,直到负载最大与负载最小的服务器中,数据的数据分片差值为I,停止操作。实施例二图2是本发明实施例提供的分布式系统动态应用隔离的系统功能模块框图;如图2所示分布式系统动态应用隔离的系统包括控制模块201,用于将服务请求通过组件管理模块202发送给应用类型相同的服务请求执行模块203,并向组件管理模块202发送组`件管理的指令;组件管理模块202,与控制模块201相连接,用于根据服务请求的类型选择应用类型相同的服务请求执行模块203,并且管理服务请求执行模块203 ;服务请求执行模块203,与组件管理模块202相连接,用于存储系统中的数据分片,执行控制模块201发送的服务请求;其中,服务请求执行模块203由多个服务器组成,根据应用的类型划分成不同的受控组,服务器所执行的服务请求被限制在受控组范围内。组件管理模块202包括服务器管理模块,用于根据服务请求的类型选择应用类型相同的服务请求执行模块,并管理所述服务请求执行模块中的服务器对服务请求的执行;数据管理模块,用于根据服务请求对不同应用类型受控组的需求,为每个受控组分配相应数量的服务器,并在服务请求对不同类型受控组的需求改变时,重新分配受控组中服务器的数量,将服务器在受控组之间进行迁移;受控组内服务器负载均衡管理模块,用于根据受控组内服务器负载的情况对数据分片的分布进行均衡分配。实施例三图3是本发明实施例提供的分布式系统受控组资源管理的基本结构示意图。如图3所示以服务器在组间的迁移为例,要迁移的服务器将数据分片均匀的分给相同受控组的其他服务器,转移数据分片后,给组件管理系统中的服务器管理模块发送请求,服务器管理模块找到需要添加服务器的受控组,然后将所要迁移的服务器从原来的受控组中删除掉,注册到新的受控组。注册到新的受控组后,由受控组内服务器负载均衡管理模块对新的受控组中服务器上存储的数据分片进行均衡处理,最后达到新的受控组内数据分布的均衡。本发明通过提出的受控组资源管理技术,把系统的全部服务器资源划分为不同的受控组,不同数据表的数据分布和服务请求受到受控组资源的限制,保证不同数据表使用服务器资源可以相互隔离互不干扰,实现了支持多个服务器资源互不兼容应用,能共用系统基础设施。 以上仅是针对本发明的优选实施例及其技术原理所做的说明,而并非对本发明的技术内容所进行的限制,任何熟悉本技术领域的技术人员在本发明所公开的技术范围内,所容易想到的变化或替换,都应涵盖在本发明的保护范围内。
权利要求
1.一种分布式系统动态应用隔离的方法,其特征在于,所述方法包括 在分布式系统中,根据服务器应用的类型将系统的服务器划分成不同的受控组; 根据服务请求对不同应用类型受控组的需求,为每个受控组分配相应数量的服务器;将所述服务请求所要调用的数据表存放到在相应应用类型的受控组中的服务器上,使服务器所执行的服务请求被限制在受控组范围内。
2.根据权利要求1所述的方法,其特征在于,在所述分布式系统中,数据表中的数据按照主关键字划分成多个水平数据分片,将所述数据分片分配到同一个受控组内多个服务器上。
3.根据权利要求1所述的方法,其特征在于,当服务请求对不同类型受控组的需求改变时,重新分配受控组中服务器的数量,服务器在受控组之间进行迁移。
4.根据权利要求3所述的方法,其特征在于,所述将服务器进行迁移的方法包括 将所要迁移的服务器中的数据分片转移到相同受控组的其他服务器上; 将所述要迁移的服务器从原受控组删除; 将所述要迁移的服务器注册在新的受控组; 将新的受控组内,部分服务器上的部分数据分片转移到所述新迁移到组的服务器上。
5.根据权利要求4所述的方法,其特征在于,根据受控组内服务器负载的情况对数据分片的分布做重新分配。
6.根据权利要求5所述的方法,其特征在于,所述根据受控组内服务器负载的情况对数据分片的分布做重新分配包括 在受控组内比较所有服务器的负载; 将负载最大的服务器中,部分数据表的数据分片转移到负载最小的服务器中; 重复以上两个步骤,直到负载最大与负载最小的服务器中,数据的分片差值为1,停止操作。
7.一种分布式系统动态应用隔离的系统,其特征在于,所述系统包括 控制模块,用于将服务请求通过组件管理模块发送给应用类型相同的服务请求执行模块,并向组间管理模块发送组件管理的指令; 组件管理模块,与所述控制模块相连接,用于根据服务请求的类型选择应用类型相同的服务请求执行模块,并且管理所述服务请求执行模块; 服务请求执行模块,与所述组件管理模块相连接,用于存储系统中的数据分片,执行所述控制模块发送的服务请求; 其中,所述服务请求执行模块由多个服务器组成,根据应用的类型划分成不同的受控组,服务器所执行的服务请求被限制在受控组范围内。
8.根据权利要求7所述的方法,其特征在于,所述组件管理模块包括 服务器管理模块,用于根据服务请求的类型选择应用类型相同的服务请求执行模块,并管理所述服务请求执行模块中的服务器对服务请求的执行; 数据管理模块,用于根据服务请求对不同应用类型受控组的需求,为每个受控组分配相应数量的服务器,并在服务请求对不同类型受控组的需求改变时,重新分配受控组中服务器的数量,服务器在受控组之间进行迁移; 受控组内服务器负载均衡管理模块,用于根据受控组内服务器负载的情况对数据分片的分布进 行均衡分配。
全文摘要
本发明提供了一种分布式系统动态应用隔离的方法和系统,所述方法包括在分布式系统中,根据服务器应用的类型将系统的服务器划分成不同的受控组;根据服务请求对不同应用类型受控组的需求,为每个受控组分配相应数量的服务器;将所述服务请求所要调用的数据表存放到在相应应用类型的受控组中的服务器上,使服务器所执行的服务请求被限制在受控组范围内。本发明通过提出的受控组资源管理技术,把系统的全部服务器资源划分为不同的受控组,不同数据表的数据分布和服务请求受到受控组资源的限制,保证不同数据表使用服务器资源可以相互隔离互不干扰,实现了支持多个服务器资源互不兼容应用,能共用系统基础设施。
文档编号H04L12/803GK103051686SQ20121053027
公开日2013年4月17日 申请日期2012年12月10日 优先权日2012年12月10日
发明者刘佳, 胡肖, 查礼 申请人:北京普泽天玑数据技术有限公司