CN101197754B - 分布式系统、分布式业务处理方法及相关装置 - Google Patents
分布式系统、分布式业务处理方法及相关装置 Download PDFInfo
- Publication number
- CN101197754B CN101197754B CN2007103071329A CN200710307132A CN101197754B CN 101197754 B CN101197754 B CN 101197754B CN 2007103071329 A CN2007103071329 A CN 2007103071329A CN 200710307132 A CN200710307132 A CN 200710307132A CN 101197754 B CN101197754 B CN 101197754B
- Authority
- CN
- China
- Prior art keywords
- server
- data
- request
- record
- data server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种分布式业务处理方法,该方法包括:主服务器获取分布式业务处理请求中携带的查询关键字;主服务器对查询关键字进行哈希散列,得到查询关键字的哈希散列值;若请求是逻辑业务处理请求,则主服务器在逻辑服务器映射表中查找散列值对应的逻辑服务器地址,并将请求发往相应的逻辑服务器进行处理;若请求是数据业务处理请求,则主服务器在数据服务器映射表中查找散列值对应的数据服务器地址,并将所述请求发往相应的数据服务器进行处理。本发明还相应的公开了一种分布式业务处理系统及相关装置。本发明实施例提供的方法既实现了将逻辑业务处理请求发往不同的逻辑服务器,也实现了将数据操作业务处理请求发往不同的数据服务器。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种分布式系统、分布式业务处理方法及相关装置。
背景技术
随着互联网业务的增加以及互联网用户规模的扩大,单台服务器已远远不能满足互联网业务处理的需求,因此,目前互联网的后台已经开始朝着分布式系统的方向发展。
分布式系统是在由通信网络互连的多处理机体系结构上进行业务处理的系统。要将由大量服务器组成的分布式系统协调成一个有机整体,需要一套有效的分布式业务处理方案,包括:将用户的逻辑业务处理请求发往不同的逻辑服务器进行处理,以及,将数据操作业务处理请求发往不同的数据服务器。同时,分布式系统还需要具有较高的可扩展性,能够随着互联网业务量的变化方便快捷地增加或者减少系统中的服务器。
现有的分布式业务处理方案包括:客户端在访问某个域名前,即客户端在向该域名对应的逻辑服务器发起逻辑业务处理请求前,需要先向域名解析(Domain Name System,DNS)服务器询问该域名对应的逻辑服务器的地址,DNS服务器在已存的域名与逻辑服务器地址的对应关系中,随机选择一个该域名对应的逻辑服务器地址返回给客户端,客户端向所述地址对应的逻辑服务器发起逻辑业务处理请求。
当互联网业务量变化时,如果要减少分布式系统中的逻辑服务器,则只需要删除DNS服务器上保存的该逻辑服务器的地址与域名的对应关系即可,如果要增加分布式系统中的逻辑服务器,则只需要在DNS服务器上增加该逻辑服务器的地址和域名的对应关系即可。
对现有技术进行研究后可知,采用DNS服务器的方式仅能实现将客户端发起的逻辑业务处理请求发往不同的逻辑服务器进行处理,不能实现将数据操作业务处理请求发往不同的数据服务器。
进一步,虽然利用DNS服务器可以方便的增加或者减少分布式系统中的逻辑服务器,但是由于客户端会缓存DNS服务器向其返回的逻辑服务器的地址,当客户端再次访问该域名时,客户端将不再向DNS服务器询问该域名对应的逻辑服务器的地址,而直接访问缓存的地址对应的逻辑服务器,这使得新增加的逻辑服务器不能尽快被客户端知晓,从而造成分布式系统中的逻辑服务器承载的业务量分布不均,而且,若该缓存的地址对应的服务器已不存在,则会造成客户端无法访问的情况。
发明内容
本发明实施例要解决的技术问题是提供一种分布式系统、分布式业务处理方法及相关装置,既能实现将用户的逻辑处理请求发往不同的逻辑服务器进行处理,还能够实现将数据操作请求发往不同的数据服务器。
为解决上述技术问题,本发明所提供的实施例是通过以下技术方案实现的:
本发明实施例提供了一种分布式业务处理方法,包括:
主服务器获取分布式业务处理请求中携带的查询关键字;
所述主服务器对所述查询关键字进行哈希散列,得到所述查询关键字的哈希散列值;
所述主服务器在接收逻辑服务器迁移请求时,将逻辑服务器映射表中哈希散列值与源逻辑服务器地址的对应关系更改为所述哈希散列值与目的逻辑服务器地址的对应关系,或者所述主服务器在接收数据服务器迁移请求时,将数据映射表中哈希散列值与源数据服务器地址的对应关系更改为所述哈希散列值与目的数据服务器地址的对应关系,并且将更改后的对应关系标记为迁移状态;
若所述分布式业务处理请求是逻辑业务处理请求,则主服务器在逻辑服务器映射表中查找所述散列值对应的逻辑服务器地址,并将所述请求发往相应的逻辑服务器进行处理;
若所述分布式业务处理请求是数据业务处理请求,则主服务器在数据服务器映射表中查找所述散列值对应的数据服务器地址,并将所述请求发往相应的数据服务器进行处理。
本发明实施例还提供了一种主服务器,包括:
第一关键字获取单元,用于获取数据操作业务处理请求中携带的查询关键字;
散列值计算单元,用于对查询关键字进行哈希散列,得到所述查询关键字的哈希散列值;
数据服务器地址查找单元,用于在数据服务器映射表中查找所述散列值对应的数据服务器地址,并将所述请求发往相应的数据服务器进行处理;
迁移请求接收单元,用于接收迁移请求,所述迁移请求携带源服务器地址和目的服务器地址;
迁移请求类型判断单元,用于判断所述请求是逻辑服务器迁移请求,还是数据服务器迁移请求,若所述请求是逻辑服务器迁移请求,则触发逻辑服 务器映射表维护单元,若所述请求是数据服务器迁移请求,则触发数据服务器映射表维护单元;
逻辑服务器映射表维护单元,用于将逻辑服务器映射表中哈希散列值与所述源逻辑服务器地址的对应关系,更改为所述哈希散列值与所述目的逻辑服务器地址的对应关系;
数据服务器映射表维护单元,用于将数据服务器映射表中哈希散列值与源数据服务器地址的对应关系,更改为所述哈希散列值与所述目的数据服务器地址的对应关系,并且,将更改后的对应关系标记为迁移状态。
本发明实施例提供了一种数据服务器,包括:
数据操作处理请求接收单元,用于接收数据操作操作处理请求,所述请求携带源服务器地址和目的服务器地址以及数据记录标识;
数据记录查找单元,用于根据所述数据记录标识,判断其上是否有所述数据记录,如果没有,则触发删除操作日志查找单元;
所述删除日志查找单元,用于在删除操作日志中查询是否有所述数据记录的删除操作日志,如果没有,则触发数据拉取单元;
所述数据拉取单元,用于在所述源数据服务器地址对应的源数据服务器中查询是否有所述数据记录,如果有,则拉取所述数据记录。
本发明实施例提供了一种分布式系统,包括:
主服务器,用于获取分布式业务处理请求中携带的查询关键字,并对所述查询关键字进行哈希散列,得到所述查询关键字的哈希散列值,在接收逻辑服务器迁移请求时,将逻辑映射表中哈希散列值与源逻辑服务器地址的对应关系更改为所述哈希散列值与目的逻辑服务器地址的对应关系,或者在接收数据服务器迁移请求时,将数据映射表中哈希散列值与源数据服务器地址的对应关系更改为所述哈希散列值与所述目的数据服务器地址的对应关系,并且将更改后的对应关系标记为迁移状态;
若主服务器判断得到所述分布式业务处理请求是逻辑业务处理请求,则主服务器在逻辑服务器映射表中查找所述散列值对应的逻辑服务器地址,并将所述请求发往相应的逻辑服务器进行处理;
若主服务器判断得到所述分布式业务处理请求是数据操作业务处理请求,则主服务器在数据服务器映射表中查找所述散列值对应的数据服务器地址,并将所述请求发往相应的数据服务器进行处理;
逻辑服务器,用于对逻辑业务处理请求进行处理;
数据服务器,用于对数据操作业务请求进行处理。
从以上技术方案可以看出,本发明实施例具有以下优点:
在本发明实施例提供的方法中,由于主服务器上存有逻辑服务器映射表和数据服务器映射表,并且,由于主服务器在收到分布式业务处理请求后,会对分布式业务处理请求中携带的查询关键字进行哈希散列,并根据所述哈希散列值和分布式业务处理类型,查找相应的服务器,因此,本发明实施例提供的方法既实现了将逻辑业务处理请求发往不同的逻辑服务器,也实现了将数据操作业务处理请求发往不同的数据服务器。
进一步,通过更改映射表中哈希散列值和服务器地址的对应关系,可以在不影响分布式业务处理的情况下,实现方便、快捷、平滑地增加分布式系统中的服务器或者减少分布式系统中的服务器,并且,由于主服务器每次都是根据查找关键字的Hash散列值查找对应的服务器,因此,保证了分布式系统中服务器的负载分布均衡。
附图说明
图1为本发明实施例提供的分布式业务系统的组成示意图;
图2为本发明实施例提供的服务器地址迁移方法流程图;
图3为本发明实施例提供的分布式业务处理方法流程图;
图4为本发明实施例提供的逻辑业务处理方法流程图;
图5为本发明实施例提供的正常运行状态时数据操作业务处理方法流程图;
图6为本发明实施例提供的迁移状态时数据操作业务处理方法流程图;
图7为本发明实施例提供的迁移状态时新建数据记录业务处理方法流程图;
图8为本发明实施例提供的迁移状态时删除数据记录业务处理方法流程图;
图9为本发明实施例提供的迁移状态时修改数据记录业务处理方法流程图;
图10为本发明实施例提供的迁移状态时查询数据记录业务处理方法流程图;
图11为本发明实施例提供的主服务器组成示意图;
图12为本发明实施例提供的迁移状态时数据服务器的组成示意图。
具体实施方式
为使本发明实施例的目的、技术方案、及优点更加清楚明白,以下参照附图对本发明实施例进行详细说明。
在本发明实施例中分布式业务分为:逻辑业务和数据操作业务。
请参见图1,为本发明实施例提供的分布式系统的组成示意图,包括:主(Master)服务器101,多个逻辑服务器102和数据服务器103;
逻辑服务器102,是对逻辑业务处理请求进行处理的服务器;
数据服务器103,是用于存放用户数据记录,并对数据操作业务处理请求进行处理的服务器;
Master服务器101,是了解逻辑服务器102和数据服务器103分布的服务器,用于保存和维护逻辑服务器映射表,和/或,数据服务器映射表;
并且,Master服务器101,负责对客户端发起的分布式业务处理请求进行转发和回复,具体的:
Master服务器101,接收客户端发起的分布式业务处理请求,该请求中携带有查询关键字(Key),其中,查询关键字用于唯一确定一个用户或者记录,其可以是一个数字,也可以是一个字符串,通常情况下是用户标识;
Master服务器101,对所述查询关键字进行Hash散列,得到该所述查询关键字的Hash散列值,并在映射表中查找所述Hash散列值对应的服务器地址,将所述请求转发给相应服务器进行处理;
其中,Master服务器101本身开销非常小,且存储数据量极小,它主要是对数据包进行转发。而大量的计算处理、逻辑运算和磁盘操作都在逻辑服务器和数据服务器进行。
请参见表1,为本发明实施例提供的Hash散列值与服务器地址的映射表,所述服务器地址可以是逻辑服务器地址,或者是数据服务器地址,其中,表中的第一列是Hash散列值,第二列是服务器地址,第三列是服务器的工作状态,每个服务器地址唯一对应一个的Hash散列值,不同的Hash散列值可以对应相同的服务器地址,并且,为了实现平滑扩容,该表的条目个数要远远大于服务器的个数。
0 | 192.168.0.1 | 正常 |
1 | 192.168.0.1 | 正常 |
4 | 192.168.0.1 | 正常 |
... | 192.168.0.1 | 正常 |
11 | 192.168.0.1 | 正常 |
12 | 192.168.0.1 | 正常 |
... | 192.168.0.1 | 正常 |
9998 | 192.168.0.1 | 正常 |
9999 | 192.168.0.1 | 正常 |
表1
其中,映射表需要由技术人员预先设定一份,并保存在Master服务器中,后续可以根据业务需要对该映射表进行动态维护。在本发明实施例中,为了方便管理,用一台Master服务器维护两张映射表,一张映射表为逻辑服务器映射表,另一张映射表为数据服务器映射表,Master服务器可以根据分布式业务处理请求的类型来决定使用哪张表。在本发明其他实施例中,也可用两台Master服务器,一台Master服务器用于维护逻辑服务器映射表,另一台服务器用于维护数据服务器映射表,并不影响本发明实施例的实现。
例如,Master服务器维护一个有10000个条目(实际中按需要确定条目个数)的映射表,每个条目中的Hash散列值均指向一个服务器地址。当用户25680004(查询关键字)向Master服务器发起分布式业务处理请求的时候,Master服务器对25680004进行Hash散列,比如,采用简单求模的方法,25680004模10000得Hash散列值为4,Hash散列值4对应的服务器地址为192.168.0.1,因此,Master服务器将这个分布式业务处理请求发送到地址192.168.0.1对应的服务器上进行处理。如果有两台服务器地址分别为192.168.0.1和192.168.0.2,Master服务器保存的映射表中有7000个Hash散列值是指向192.168.0.1,而另外3000个是指向192.168.0.2,那么,可以认为有70%的分布式业务处理请求将被发往192.168.0.1,而另外30%的分布式业务处理请求将被发往192.168.0.2进行处理。
以上介绍了本发明实施例提供的分布式系统,以下结合附图对本发明实施例提供的维护映射表的方法,即服务器地址迁移方法进行介绍。该方法能够实现方便、快捷、平滑地增加分布式系统中的服务器或者减少分布式系统 中的服务器,使分布式系统具有较高的可扩展性。
所谓迁移是指将映射表中的一些Hash散列值对应的服务器地址(可称为源服务器地址)改为另一个服务器地址(可称为目的服务器地址),以使得Master服务器将转发到源服务器地址对应的源服务器的分布式业务处理请求转发到目的服务器地址对应的目的服务器。
请参见图2,为本发明实施例提供的服务器地址迁移方法,包括:
步骤201:外部迁移工具向Master服务器发起迁移请求,该迁移请求携带迁移类型标识,源服务器地址和目的服务器地址,以及需要迁移条目数;
其中,所述外部迁移工具可以是脚本、或者程序等等;以及,迁移类型标识用于标识该请求是逻辑服务器迁移请求,还是数据服务器迁移请求,比如,可以预先定义迁移类型标识为00表示该请求是逻辑服务器迁移请求,迁移类型标识为01表示该请求为数据服务器迁移请求;
步骤202:Master服务器验证所述迁移请求有效,并且,源、目的服务器均处于正常工作状态;
其中,迁移请求有效是指:迁移请求中携带的Hash散列值真实存在,并且该Hash散列值对应的服务器当前没有处于迁移状态
步骤203:Master服务器判断迁移请求是逻辑服务器迁移请求,还是数据服务器迁移请求,如果是逻辑服务器迁移请求,则进入步骤204,如果是数据服务器迁移请求,则进入步骤205;
其中,如果Master服务器只维护一种映射表,则不需要对迁移请求进行判断。
步骤204:Master服务器将逻辑服务器映射表中Hash散列值与源逻辑服务器地址的对应关系,更改为所述Hash散列值与目的逻辑服务器地址的对应关系;
步骤205:Master服务器将数据服务器映射表中Hash散列值与源数据服务器地址的对应关系,更改为所述Hash散列值与目的数据服务器地址的对应关系,并且,将更改后的对应关系标记为迁移状态;
步骤206:Master服务器将源数据服务器中的数据逐条迁移到目的数据服 务器;
其中,步骤206是在分布式业务正常运行的同时执行的,具体的:
Master服务器将源数据服务器中的数据逐条迁移到目的数据服务器中,若Master服务器判断得到目的数据服务器中已有某条数据记录或者删除过某条数据记录,则Master服务器丢弃该条数据记录。
步骤207:所有数据都迁移完毕后,Master服务器将标记为迁移状态的对应关系标记为正常状态。
由上述服务器地址迁移方法可知,本发明实施例利用映射表来保存逻辑服务器和/或数据服务器的地址,并且,映射表的条目个数要远远大于服务器的个数,若要对服务器进行扩容,即在系统中增加服务器,则在映射表中添加该服务器的地址,若要对减少系服务器,或者更改服务器的地址,则更改映射表中的相应的条目。由于本发明实施例提供的服务器地址迁移方法是通过维护映射表的方式实现对系统的扩容,这种扩容方式不会影响系统中正在进行的业务,实现了方便、快捷、平滑地增加分布式系统中的服务器或者减少分布式系统中的服务器,并且,使分布式系统具有较高的可扩展性。
以对前文表1所示的映射表进行迁移为例,说明对数据服务器映射表进行迁移方法。请参见表2为迁移中的数据服务器映射表,表3为迁移完成的数据服务器映射表。
表2
0 | 192.168.0.1 | 正常 |
1 | 192.168.0.1 | 正常 |
4 | 192.168.0.1 | 正常 |
... | 192.168.0.1 | 正常 |
11 | 192.168.0.2 | 正常 |
12 | 192.168.0.1 | 正常 |
... | 192.168.0.1 | 正常 |
9998 | 192.168.0.1 | 正常 |
9999 | 192.168.0.1 | 正常 |
表3
以上对本发明实施例提供的服务器地址迁移方法进行了介绍,以下结合附图对本发明实施例提供的分布式业务处理方法进行介绍。
请参见图3,为本发明实施例提供的分布式业务处理方法,包括:
步骤301:Master服务器接收客户端发起的分布式业务处理请求,所述请求中携带查询关键字;
步骤302:Master服务器对所述查询关键字进行散列,得到所述查询关键字的Hash散列值;
其中,有许多散列算法可以用于计算Hash散列值,通常比较常用的方法是MD5Hash散列算法,如果查询关键字本身已经很散列,直接求模即可。
步骤303:Master服务器判断分布式业务处理请求是逻辑业务处理请求,还是数据操作业务处理请求,如果是逻辑业务处理请求,则进入步骤304,如果是数据操作业务处理请求,则进入步骤305;
其中,如果Master服务器只维护一种映射表,则不需要对分布式业务处理请求进行类型判断。
步骤304:Master服务器在逻辑服务器映射表中查找所述散列值对应的逻 辑服务器地址;
步骤305:Master服务器将逻辑业务处理请求发往所述地址对应的逻辑服务器进行处理;
步骤306:Master服务器在数据服务器映射表中查找所述散列值对应的数据服务器地址;
步骤307:Master服务器将数据处理请求发往所述地址对应的数据服务器进行处理。
以上是本发明实施例提供的分布式业务处理方法,以下分正常运行状态(未迁移状态)和迁移状态对本发明实施例提供的逻辑业务处理方法和数据操作业务处理方法进行介绍。
一、正常运行状态
请参见图4,为本发明实施例提供的逻辑业务处理方法,包括:
步骤401:客户端向Master服务器发起逻辑业务处理请求,该请求携带查询关键字;
步骤402:Master服务器对所述查询关键字进行Hash散列,得到该查询关键字的Hash散列值;
步骤403:Master服务器在逻辑服务器映射表中查找所述散列值对应的逻辑服务器的地址;
步骤404:Master服务器将所述逻辑业务处理请求发往所述地址对应的逻辑服务器;
步骤405:所述逻辑服务器进行相应的逻辑业务处理后返回响应至Master服务器;
步骤406:Master服务器将所述响应转发给所述客户端。
请参见图5,为本发明实施例提供的数据操作业务处理方法,包括:
步骤501:客户端向Master服务器发起数据操作业务处理请求,该请求携带查询关键字;
步骤502:Master服务器对所述查询关键字进行Hash散列,得到该查询关键字的Hash散列值;
步骤503:Master服务器在数据服务器映射表中查找所述散列值对应的数据服务器的地址;
步骤504:Master服务器将所述数据操作业务处理请求发往所述地址对应的数据服务器;
步骤505:所述数据服务器进行相应的数据操作业务处理后返回响应至Master服务器;
步骤506:Master服务器将所述响应转发给所述客户端。
二、迁移状态
迁移状态时,逻辑业务处理方法和正常运行状态时相同,相关内容请参见前文,此处不再赘述。
迁移状态时,对于数据操作业务的情况比较特殊,因为不仅要修改数据服务器映射表,还要将源数据服务器上的数据记录迁移到目的数据服务器。请参见图6,为本发明实施例提供的数据操作业务实现方法,包括:
步骤601:客户端向Master服务器发起数据操作业务处理请求,该请求携带查询关键字;
步骤602:Master服务器对所述查询关键字进行Hash散列,得到该查询关键字的Hash散列值;
步骤603:Master服务器在数据服务器映射表中查找所述散列值对应的数据服务器的地址;
步骤604:Master服务器判断得到所述散列值与数据服务器的地址的对应关系被标记为迁移态,则Master服务器将发往所述地址对应的数据服务器(目的数据服务器)的数据操作业务处理请求标记为迁移态,并附加源数据服务器地址在所述请求中;
步骤605:所述目的数据服务器收到数据操作处理请求后,判断所述请求类型,根据请求类型进行相应操作处理后返回响应至Master服务器;
步骤606:Master服务器将所述响应转发给所述客户端。
其中,数据操作类型分为对数据的新建、删除、修改、查询四种,假设,源数据服务器为A,目的数据服务器为B,具体操作处理流程如下:
请参见图7,为本发明实施例提供的新建数据记录业务处理方法,包括:
步骤701:Master服务器收到客户端发起的新建数据记录业务处理请求,该请求携带查询关键字及数据记录标识;
步骤702:Master服务器对所述查询关键字进行Hash散列,得到该查询关键字的散列值;
步骤703:Master服务器在数据服务器映射表中查找所述散列值对应的数据服务器的地址(目的数据服务器B的地址);
步骤704:Master服务器将发往目的数据服务器B的新建数据记录业务处理请求标记为迁移态,并附加源数据服务器A的地址在所述请求中;
步骤705:目的数据服务器B在根据所述新建数据记录业务请求中携带的数据记录标识,查找其上是否有该数据记录,如果有,则进入步骤706;如果没有,则进入步骤707;
步骤706:目的数据服务器B返回失败响应至Master服务器;
其中,Master服务器在收到失败响应后,会通知客户端目的数据服务器B中已有该新建记录,以及,Master服务器还可以进一步询问用户是否要覆盖所述新建记录,如果用户响应不再新建该记录,则结束,如果用户响应覆盖,则Master服务器触发目的数据服务器B用所述新建数据记录业务请求中携带的数据覆盖已有数据。
步骤707:目的数据服务器B在删除操作日志中查询是否有该数据记录的删除操作日志,如果有,则进入步骤708,如果没有,则进入步骤709;
其中,查询删除操作日志是为了保证数据的一致性,有删除日志说明该数据记录在目的数据服务器B上被删除过,此时的新建操作是最新操作,因此,无需再去访问源数据服务器A。
步骤708:目的数据服务器B删除该数据记录的删除操作日志,并新建数据记录,返回新建成功响应至Master服务器;
其中,删除该日志是因为新建数据记录后,删除日志不再有用了,可以删除。
步骤709:目的数据服务器B在所述源数据服务器地址对应的源数据服 务器A中查询是否有所述数据记录,如果有,则进入步骤710;如果没有,则进入步骤711;
步骤710:目的数据服务器B拉取所述数据记录到其上,并返回失败响应至Master服务器;
步骤711:目的数据服务器B新建该数据记录,并返回成功响应至Master服务器。
请参见图8,为本发明实施例提供的删除数据记录业务处理方法,包括:
步骤801:Master服务器接收客户端发起的删除数据记录业务处理请求,该请求携带查询关键字及数据记录标识;
步骤802:Master服务器对所述查询关键字进行Hash散列,得到该查询关键字的散列值;
步骤803:Master服务器在数据服务器映射表中查找所述散列值对应的数据服务器的地址(目的数据服务器B的地址);
步骤804:Master服务器将所述新建数据记录业务处理请求标记为迁移态,附加源数据服务器A的地址在所述请求中,并将该请求转发至目的数据服务器B;
步骤805:目的数据服务器B根据所述删除数据记录业务请求中携带的数据记录标识,判断其上是否有该数据记录,如果有,则进入步骤806;如果没有,则进入步骤807;
步骤806:目的数据服务器B将所述数据记录删除后,返回成功响应至Master服务器,并记录该数据记录的删除日志。
步骤807:目的数据服务器B记录删除操作日志。
请参见图9,为本发明实施例提供的修改数据记录业务处理方法,包括:
步骤901:Master服务器收到客户端发起的修改数据记录业务处理请求,该请求携带查询关键字及数据记录标识;
步骤902:Master服务器对所述查询关键字进行Hash散列,得到该查询关键字的Hash散列值;
步骤903:Master服务器在数据服务器映射表中查找所述散列值对应的数 据服务器的地址(目的数据服务器B的地址);
步骤904:Master服务器将发往目的数据服务器B的修改数据记录业务处理请求标记为迁移态,并附加源数据服务器A的地址在所述请求中;
步骤905:目的数据服务器B查找其上是否有所述数据记录标识对应的数据记录,如果有,则进入步骤906,如果没有,则进入步骤907;
步骤906:目的数据服务器B对所述数据记录进行修改操作并返回成功响应消息至Master服务器;
步骤907:目的数据服务器B在删除操作日志中查询是否有该数据记录的删除操作日志,如果有,则结束,如果没有,则进入步骤908;
步骤908:目的数据服务器B在源数据服务器A上查询是否有所述数据记录标识对应的数据记录,若源数据服务器A上有该数据记录,则进入步骤909;如果源数据服务器A上没有该数据记录,则进入步骤910;
步骤909:目的数据服务器B拉取所述数据记录到其上,在对所述数据记录进行修改并保存后,返回成功响应至Master服务器;
步骤910:目的数据服务器B返回失败响应至Master服务器。
请参见图10,为本发明实施例提供的查询数据记录业务处理方法,包括:步骤110:Master服务器收到客户端发起的查询数据记录业务处理请求,该请求携带查询关键字及数据记录标识;
步骤111:Master服务器对所述查询关键字进行Hash散列,得到该查询关键字的散列值;
步骤112:Master服务器在数据服务器映射表中查找所述散列值对应的数据服务器的地址(目的数据服务器B的地址);
步骤113:Master服务器将发往目的数据服务器B的查询数据记录业务处理请求标记为迁移态,并附加源数据服务器A的地址在所述请求中;
步骤114:目的数据服务器B查找其上是否有所述数据记录标识对应的数据记录,如果有,则进入步骤115,如果没有,则进入步骤116;
步骤115:目的数据服务器B将该数据记录数据返回给Master服务器;
步骤116:目的数据服务器B在删除操作日志中查询是否有该数据记录的 删除操作日志,如果有,则进入步骤117,如果没有,则进入步骤118;
步骤117:目的数据服务器B通知Master服务器该数据记录不存在;
步骤118:目的数据服务器B在源数据服务器A上查询是否有所述数据记录标识对应的数据记录,若源数据服务器A上有该数据记录,则进入步骤119;如果源数据服务器A上没有该数据记录,则进入步骤121;
步骤119:目的数据服务器B拉取所述数据记录到其上保存,并将所述数据记录返回至Master服务器;
步骤120:目的数据服务器B返回失败响应至Master服务器。
请参见图11,本发明实施例还提供了一种主服务器,包括:
第一关键字获取单元211,用于获取数据业务处理请求中携带的查询关键字;
散列值计算单元212,用于对所述查询关键字进行哈希散列,得到所述查询关键字的哈希散列值;
数据服务器地址查询单元213,用于在数据服务器映射表中查找所述散列值对应的数据服务器地址,并将所述请求发往相应的数据服务器进行处理。
为了使一个主服务器既可以完成对数据业务处理请求的转发,又可以完成对逻辑业务处理请求的转发,在上述主服务器中还可以包括:
第二关键字获取单元214,用于获取逻辑业务处理请求中携带的查询关键字,并将所述查询关键字发送到散列值计算单元212;
逻辑服务器地址查询单元215,用散列值计算单元212计算得到的散列值,在逻辑服务器映射表中查找相应的逻辑服务器地址,并将所述请求发往相应的逻辑服务器进行处理。
为了实现对映射表的动态维护,所述主服务器进一步包括:
迁移请求接收单元,用于接收迁移请求,所述请求携带源服务器地址和目的服务器地址;
迁移请求类型判断单元,用于判断所述请求是逻辑服务器迁移请求,还是数据服务器迁移请求,若所述请求是逻辑服务器迁移请求,则触发逻辑服务器映射表维护单元,若所述请求是数据服务器迁移请求,则触发数据服务 器映射表维护单元;
逻辑服务器映射表维护单元,用于将映射表中哈希散列值与源逻辑服务器地址的对应关系,更改为所述Hash散列值与目的逻辑服务器地址的对应关系;
数据服务器映射表维护单元,用于将映射表中Hash散列值与源数据服务器地址的对应关系,更改为所述Hash散列值与目的数据服务器地址的对应关系,并且,将更改后的对应关系标记为迁移状态;
为了将源服务器中的数据迁移到目的数据服务器,所述主服务器进一步包括:
数据迁移单元,用于将源数据服务器中的数据逐条迁移到目的数据服务器;
迁移状态更改单元,用于当所有数据都迁移完毕后,将数据服务器映射表中标记为迁移状态的对应关系标记为正常状态。
请参见图12,本发明实施例还提供了一种数据服务器,该数据服务器用于在数据服务器地址处于迁移状态时,进行相应的业务处理,包括:
数据操作处理请求接收单元321,用于接收客户端发起的数据业务操作处理请求,所述请求携带源服务器地址和目的服务器地址以及数据记录标识;
数据记录查找单元322,用于根据所述数据记录标识,判断其上是否有所述数据记录,如果有,则触发数据记录处理单元323;如果没有,则触发删除操作日志查找单元324;
所述数据记录处理单元323,用于执行相应的数据操作处理;
所述删除日志查找单元324,用于在删除操作日志中查询是否有所述数据记录的删除操作日志,如果没有,则触发数据拉取单元325;
数据拉取单元325,用于所述源数据服务器地址对应的源数据服务器中查询是否有所述数据记录,若有,则拉取所述数据记录。
若所述数据操作业务处理请求为修改数据记录业务处理请求,则数据服务器进一步包括:
数据修改单元,用于修改所述数据拉取单元拉取到的数据记录。
若所述数据操作业务处理请求为查询数据记录业务处理请求,则数据服务器进一步包括:
数据记录返回单元,用于将所述数据拉取单元拉取到的数据记录返回至所述主服务器。
以上对本发明所提供的一种分布式系统、分布式业务处理方法及相关装置进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种分布式业务处理方法,其特征在于,包括:
主服务器获取分布式业务处理请求中携带的查询关键字;
所述主服务器对所述查询关键字进行哈希散列,得到所述查询关键字的哈希散列值;
所述主服务器在接收逻辑服务器迁移请求时,将逻辑服务器映射表中哈希散列值与源逻辑服务器地址的对应关系更改为所述哈希散列值与目的逻辑服务器地址的对应关系,或者所述主服务器在接收数据服务器迁移请求时,将数据映射表中哈希散列值与源数据服务器地址的对应关系更改为所述哈希散列值与目的数据服务器地址的对应关系,并且将更改后的对应关系标记为迁移状态;
若所述分布式业务处理请求是逻辑业务处理请求,则主服务器在所述逻辑服务器映射表中查找所述散列值对应的逻辑服务器地址,并将所述请求发往相应的逻辑服务器进行处理;
若所述分布式业务处理请求是数据操作业务处理请求,则主服务器在数据服务器映射表中查找所述散列值对应的数据服务器地址,并将所述请求发往相应的数据服务器进行处理。
2.如权利要求1所述的方法,其特征在于,若所述请求是数据操作业务处理请求,并且所述散列值与数据服务器地址的对应关系在数据服务器映射表中被标记为迁移态,则所述主服务器在数据服务器映射表中查找到的所述散列值对应的数据服务器地址包括:源数据服务器地址和目的数据服务器地址;
所述主服务器将数据操作业务处理请求发往相应的数据服务器进行处理具体包括:
所述主服务器将所述数据操作业务处理请求标记为迁移态,并附加所述源数据服务器地址在所述请求中,并将所述请求发往所述目的数据服务器地址对应的目的数据服务器;
所述目的数据服务器根据所述数据操作业务处理请求的类型进行相应的业务处理。
3.如权利要求2所述的方法,其特征在于,若所述数据操作业务处理请求为新建数据记录业务处理请求,则所述目的数据服务器进行相应的业务处理具体包括:
所述目的数据服务器根据所述新建数据记录业务请求中携带的数据记录标识,判断其上是否有所述数据记录,如果没有,则所述数据服务器在删除操作日志中查询是否有所述数据记录的删除操作日志;
如果没有删除操作日志,则所述目的数据服务器在所述源数据服务器地址对应的源数据服务器中查询是否有所述数据记录,如果有数据记录,则所述目的数据服务器拉取所述数据记录到其上,如果没有数据记录,则所述目的数据服务器新建数据记录。
4.如权利要求2所述的方法,其特征在于,若所述数据操作业务处理请求为删除数据记录业务处理请求,则所述目的数据服务器进行相应的业务处理具体包括:
所述目的数据服务器根据所述删除数据记录业务请求中携带的数据记录标识,判断其上是否有所述数据记录,如果有,则删除所述数据记录并记录删除操作日志;如果没有,则记录删除操作日志。
5.如权利要求2所述的方法,其特征在于,若所述数据操作业务处理请求为修改数据记录业务处理请求,则所述目的数据服务器进行相应的业务处理具体包括:
所述目的数据服务器根据所述修改数据记录业务处理请求中携带的数据记录标识,判断其上是否有所述数据记录,如果没有,则所述目的数据服务器在删除操作日志中查询是否有所述数据记录的删除操作日志,如果没有删除操作日志,则所述目的数据服务器在所述源数据服务器地址对应的源数据服务器中查询是否有所述数据记录标识对应的数据记录,如果有数据记录,则所述数据服务器拉取所述数据记录到其上,对所述数据记录进行修改并保存。
6.如权利要求2所述的方法,其特征在于,若所述数据操作业务处理请求为查询数据记录业务处理请求,则所述目的数据服务器进行相应的业务处理具体包括:
所述目的数据服务器根据所述查询数据记录业务处理请求中携带的数据记录标识,判断其上是否有所述数据记录,如果没有,则所述目的数据服务器在删除操作日志中查询是否有所述数据记录的删除操作日志,如果没有删除操作日志,则所述目的数据服务器在所述源数据服务器地址对应的源数据服务器中查询是否有所述数据记录,如果有数据记录,则所述目的数据服务器拉取所述数据记录到其上,并返回所述数据记录至所述主服务器。
7.一种主服务器,其特征在于,包括:
第一关键字获取单元,用于获取数据操作业务处理请求中携带的查询关键字;
散列值计算单元,用于对查询关键字进行哈希散列,得到所述查询关键字的哈希散列值;
数据服务器地址查找单元,用于在数据服务器映射表中查找所述散列值对应的数据服务器地址,并将所述请求发往相应的数据服务器进行处理;
迁移请求接收单元,用于接收迁移请求,所述迁移请求携带源服务器地址和目的服务器地址;
迁移请求类型判断单元,用于判断所述请求是逻辑服务器迁移请求,还是数据服务器迁移请求,若所述请求是逻辑服务器迁移请求,则触发逻辑服务器映射表维护单元,若所述请求是数据服务器迁移请求,则触发数据服务器映射表维护单元;
逻辑服务器映射表维护单元,用于将逻辑服务器映射表中哈希散列值与所述源逻辑服务器地址的对应关系,更改为所述哈希散列值与所述目的逻辑服务器地址的对应关系;
数据服务器映射表维护单元,用于将数据服务器映射表中哈希散列值与源数据服务器地址的对应关系,更改为所述哈希散列值与所述目的数据服务器地址的对应关系,并且,将更改后的对应关系标记为迁移状态。
8.如权利要求7所述的主服务器,其特征在于,所述主服务器进一步包括:
第二关键字获取单元,用于获取逻辑业务处理请求中携带的查询关键字,并将所述查询关键字发送至所述散列值计算单元;
逻辑服务器地址查找单元,用于在逻辑服务器映射表中查找散列值对应的逻辑服务器地址,并将所述请求发往相应的逻辑服务器进行处理。
9.一种数据服务器,其特征在于,包括:
数据操作处理请求接收单元,用于接收数据操作业务处理请求,所述请求携带源服务器地址和目的服务器地址以及数据记录标识;
数据记录查找单元,用于根据所述数据记录标识,判断其上是否有所述数据记录,如果没有,则触发删除操作日志查找单元;
所述删除日志查找单元,用于在删除操作日志中查询是否有所述数据记录的删除操作日志,如果没有,则触发数据拉取单元;
所述数据拉取单元,用于在所述源数据服务器地址对应的源数据服务器中查询是否有所述数据记录,如果有,则拉取所述数据记录。
10.如权利要求9所述的数据服务器,其特征在于,若所述数据操作业务处理请求为修改数据记录业务处理请求,则数据服务器进一步包括:
数据修改单元,用于修改所述数据拉取单元拉取到的数据记录。
11.如权利要求9所述的数据服务器,其特征在于,若所述数据操作业务处理请求为查询数据记录业务处理请求,则数据服务器进一步包括:
数据记录返回单元,用于将所述数据拉取单元拉取到的数据记录返回至所述主服务器。
12.一种分布式系统,其特征在于,包括:
主服务器,用于获取分布式业务处理请求中携带的查询关键字,并对所述查询关键字进行哈希散列,得到所述查询关键字的哈希散列值,在接收逻辑服务器迁移请求时,将逻辑映射表中哈希散列值与源逻辑服务器地址的对应关系更改为所述哈希散列值与目的逻辑服务器地址的对应关系,或者在接收数据服务器迁移请求时,将数据映射表中哈希散列值与源数据服务器地址的对应关系更改为所述哈希散列值与所述目的数据服务器地址的对应关系,并且将更改后的对应关系标记为迁移状态;
若主服务器判断得到所述分布式业务处理请求是逻辑业务处理请求,则主服务器在逻辑服务器映射表中查找所述散列值对应的逻辑服务器地址,并将所述请求发往相应的逻辑服务器进行处理;若主服务器判断得到所述分布式业务处理请求是数据操作业务处理请求,则主服务器在数据服务器映射表中查找所述散列值对应的数据服务器地址,并将所述请求发往相应的数据服务器进行处理;逻辑服务器,用于对逻辑业务处理请求进行处理;数据服务器,用于对数据操作业务请求进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007103071329A CN101197754B (zh) | 2007-12-27 | 2007-12-27 | 分布式系统、分布式业务处理方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007103071329A CN101197754B (zh) | 2007-12-27 | 2007-12-27 | 分布式系统、分布式业务处理方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101197754A CN101197754A (zh) | 2008-06-11 |
CN101197754B true CN101197754B (zh) | 2011-11-16 |
Family
ID=39547913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007103071329A Active CN101197754B (zh) | 2007-12-27 | 2007-12-27 | 分布式系统、分布式业务处理方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101197754B (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741889B (zh) * | 2008-11-17 | 2012-07-11 | 北京易路联动技术有限公司 | 一种网络服务集中管理的方法、系统及服务器 |
CN101957861A (zh) * | 2010-10-18 | 2011-01-26 | 江苏大学 | 新型元数据服务器集群和基于调整表的元数据管理方法 |
CN102215129B (zh) * | 2011-06-15 | 2017-10-10 | 中兴通讯股份有限公司 | 业务模块外置方法、装置及系统 |
CN102957726B (zh) * | 2011-08-24 | 2017-09-26 | 南京中兴新软件有限责任公司 | 业务处理方法和系统 |
CN102427427B (zh) * | 2011-12-06 | 2014-10-08 | 中国科学院计算机网络信息中心 | 在哈希网络中查询解析服务器的方法及索引服务器 |
CN102591792B (zh) * | 2012-01-13 | 2015-04-29 | 从兴技术有限公司 | 一种内存数据的存储方法 |
CN103389997A (zh) * | 2012-05-10 | 2013-11-13 | 深圳市金蝶友商电子商务服务有限公司 | 一种发票信息检索方法及系统 |
CN103838779B (zh) | 2012-11-27 | 2019-02-05 | 深圳市腾讯计算机系统有限公司 | 复用空闲计算资源的云转码方法及系统、分布式文件装置 |
CN104113566B (zh) * | 2013-04-18 | 2019-05-21 | 蓝网科技股份有限公司 | 一种医疗影像的云存储的实现方法 |
CN105447023B (zh) * | 2014-08-25 | 2019-02-05 | 阿里巴巴集团控股有限公司 | 业务标识生成方法和装置 |
CN109639750B (zh) * | 2014-08-29 | 2021-09-07 | 创新先进技术有限公司 | 业务数据处理方法及设备 |
CN105827430A (zh) * | 2015-11-17 | 2016-08-03 | 广东亿迅科技有限公司 | 业务请求处理平台 |
CN105824958B (zh) * | 2016-03-31 | 2019-06-18 | 广州华多网络科技有限公司 | 一种查询日志的方法、装置和系统 |
CN106598502B (zh) * | 2016-12-23 | 2020-04-14 | 广州杰赛科技股份有限公司 | 数据存储方法和系统 |
CN108268509B (zh) * | 2016-12-30 | 2022-03-18 | 迈普通信技术股份有限公司 | 配置数据管理方法和装置 |
CN108345495A (zh) * | 2017-01-22 | 2018-07-31 | 北京国双科技有限公司 | 一种多线程的加锁方法及服务器 |
CN107181825B (zh) * | 2017-07-07 | 2021-08-17 | 广东中星电子有限公司 | 终端设备数据的在线处理方法 |
CN107609011B (zh) * | 2017-07-28 | 2020-07-28 | 北京百分点信息科技有限公司 | 一种数据库记录的维护方法和装置 |
CN107819891B (zh) * | 2017-10-16 | 2020-01-24 | 平安科技(深圳)有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN108121776A (zh) * | 2017-12-13 | 2018-06-05 | 深圳市智物联网络有限公司 | 一种数据读取方法及装置 |
CN110149352B (zh) * | 2018-02-11 | 2021-07-27 | 腾讯科技(深圳)有限公司 | 一种业务请求处理方法、装置、计算机设备和存储介质 |
CN110020002B (zh) * | 2018-08-21 | 2024-01-12 | 山西掌柜鼎科技有限公司 | 事件处理方案的查询方法、装置、设备和计算机存储介质 |
CN111309772A (zh) * | 2020-03-23 | 2020-06-19 | 优刻得科技股份有限公司 | 数据操作的管理方法及硬件处理模块 |
CN111338806B (zh) * | 2020-05-20 | 2020-09-04 | 腾讯科技(深圳)有限公司 | 一种业务控制方法及装置 |
CN114785396B (zh) * | 2022-03-09 | 2024-04-12 | 西安电子科技大学 | 逻辑端口配置、查找映射及流量管理方法、系统及终端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1399476A (zh) * | 2001-07-20 | 2003-02-26 | 深圳市中兴通讯股份有限公司上海第二研究所 | 一种通信设备软件子系统的消息调度方法 |
CN1412691A (zh) * | 2001-10-21 | 2003-04-23 | 天象网络技术(上海)有限公司 | 集成集中式计算和分布式计算的网络系统 |
CN1787489A (zh) * | 2005-12-22 | 2006-06-14 | 港湾网络有限公司 | 将接口流量在多个网络处理器引擎中均担的方法 |
-
2007
- 2007-12-27 CN CN2007103071329A patent/CN101197754B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1399476A (zh) * | 2001-07-20 | 2003-02-26 | 深圳市中兴通讯股份有限公司上海第二研究所 | 一种通信设备软件子系统的消息调度方法 |
CN1412691A (zh) * | 2001-10-21 | 2003-04-23 | 天象网络技术(上海)有限公司 | 集成集中式计算和分布式计算的网络系统 |
CN1787489A (zh) * | 2005-12-22 | 2006-06-14 | 港湾网络有限公司 | 将接口流量在多个网络处理器引擎中均担的方法 |
Non-Patent Citations (2)
Title |
---|
吴伟,谢长生, 韩德志,黄建忠.海量存储系统中高可扩展性元数据服务器集群设计.计算机科学34 7.2007,34(7),106-109. |
吴伟,谢长生, 韩德志,黄建忠.海量存储系统中高可扩展性元数据服务器集群设计.计算机科学34 7.2007,34(7),106-109. * |
Also Published As
Publication number | Publication date |
---|---|
CN101197754A (zh) | 2008-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101197754B (zh) | 分布式系统、分布式业务处理方法及相关装置 | |
US8166063B2 (en) | Query routing in distributed database system | |
CN102971732B (zh) | 键/值存储器的集成分级查询处理的系统结构 | |
JP5828760B2 (ja) | キャッシュを最適化するための方法とシステム | |
JP4278299B2 (ja) | 通信システム及び方法 | |
EP3668063A1 (en) | Domain name resolution method, server and system | |
CN101354726B (zh) | 一种机群文件系统的内存元数据管理方法 | |
CN103780679B (zh) | 基于http协议的长延时远程调用方法 | |
US20030110257A1 (en) | Method for performing a load distribution between session initiation protocol servers within an intra domain | |
CA2413956A1 (en) | Active directory for content objects | |
CN102196060A (zh) | 一种Cache服务器选择源站的方法和系统 | |
US20230128125A1 (en) | Systems and methods for processing requests for content of a content distribution network | |
EP3809676A1 (en) | Dns resolution method, authoritative dns server and dns resolution system | |
CN104008199B (zh) | 一种数据查询方法 | |
CN108256718A (zh) | 保单服务任务分配方法、装置、计算机设备和存储设备 | |
CN105611000A (zh) | 一种域名服务器的dns域名快速检索方法 | |
CN107070988A (zh) | 报文处理方法及装置 | |
WO2020215580A1 (zh) | 一种分布式全局数据去重方法和装置 | |
CN104346345A (zh) | 数据的存储方法及装置 | |
CN109165096B (zh) | web集群的缓存利用系统及方法 | |
CN109451089A (zh) | 一种访问方法、装置、计算机设备及计算机存储介质 | |
CN101673272A (zh) | 搜索信息的方法、系统、装置及垂直搜索引擎注册的方法 | |
AU6389999A (en) | An internet caching system and a method and an arrangement in such a system | |
CN107181773A (zh) | 分布式存储系统的数据存储及数据管理方法、设备 | |
JPH07311744A (ja) | 資源所在位置検出方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180914 Address after: 100090 Beijing Haidian District Zhichun Road 49 No. 3 West 309 Patentee after: Tencent cloud computing (Beijing) limited liability company Address before: 518044 East 410 room, Sai Ge science and Technology Park, Futian District Zhenxing Road, Shenzhen, Guangdong, China, 2 Patentee before: Tencent Technology (Shenzhen) Co., Ltd. |
|
TR01 | Transfer of patent right |