CN101635680B - 一种业务路由方法和系统 - Google Patents
一种业务路由方法和系统 Download PDFInfo
- Publication number
- CN101635680B CN101635680B CN2009101603382A CN200910160338A CN101635680B CN 101635680 B CN101635680 B CN 101635680B CN 2009101603382 A CN2009101603382 A CN 2009101603382A CN 200910160338 A CN200910160338 A CN 200910160338A CN 101635680 B CN101635680 B CN 101635680B
- Authority
- CN
- China
- Prior art keywords
- routing
- node
- data
- key assignments
- key
- 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
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种业务路由方法和系统,涉及数据通讯技术领域。其中的业务路由方法包括:分发器对从接收的路由请求中获取到的键值进行哈希函数运算以获得运算结果;根据运算结果在以路由节点个数进行划分的整数空间中对应的序号,分发器将路由请求路由到序号对应的路由节点;路由节点根据路由请求在路由节点存储的路由表中查找键值对应的节点位置信息;和分发器根据节点位置信息将路由请求路由到节点位置信息指定的业务处理节点。本发明实现的系统中路由表的存储是分布式的,因此其数据可无限线性扩展,系统架构不存在单点和瓶颈,适合构建高性能大数据量的分布式系统,而且系统建设成本更低。
Description
技术领域
本发明涉及数据通讯技术领域,特别是涉及一种分布式系统中的业务路由方法和系统。
背景技术
在分布式系统中,如何进行消息分发和路由选择是普遍被关注的问题。目前,解决此技术问题常用到两种模式:将路由数据集中在少数机器上的分布式系统,例如HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)由NameNode存储路由信息(文件名和文件块位置等);P2P(peer to peer,对等网络)的DHT(distributed hashtable,分布式哈希表)协议,例如Kademlia。
对于超大规模数据量的分布式系统,路由表的数据也是非常巨大的,显然集中处理的模式会造成性能瓶颈。而在P2P系统中,每次查询需要联系多个节点,节点的数据调整可能会影响算法的效率。
发明内容
本发明的目的是提出一种业务路由方法和系统,以构建高性能大数据量的分布式系统。
为实现上述目的,本发明提供了一种业务路由方法,包括:分发器对从接收的路由请求中获取到的键值进行哈希函数运算以获得运算结果;根据所述运算结果在以路由节点个数进行划分的整数空间中对应的序号,所述分发器将所述路由请求路由到所述序号对应的路由节点;所述路由节点根据所述路由请求在所述路由节点存储的路由表中查找所述键值对应的节点位置信息;和所述分发器根据所述节点位置信息将所述路由请求路由到所述节点位置信息指定的业务处理节点。
在一个实施例中,业务路由方法还包括当所述业务处理节点上新增数据时,所述分发器对所述新增数据对应的键值进行所述哈希函数运算以获得运算结果;根据所述运算结果在以所述路由节点个数进行划分的整数空间中对应的序号,所述分发器发送添加路由请求到所述序号对应的路由节点,其中所述添加路由请求的内容包括所述新增数据的键值和所述键值对应的节点位置信息;所述路由节点根据接收到的所述添加路由请求在所述路由节点存储的路由表中查找是否存在所述新增数据的键值和所述键值对应的节点位置信息;和如果所述路由表中没有存储所述新增数据的键值和所述键值对应的节点位置信息,将所述新增数据的键值和所述键值对应的节点位置信息添加到所述路由表中。
进一步的,在对所述新增数据对应的键值进行所述哈希函数运算之前,记录所述新增数据相应的键值的状态为表示未设置路由的状态;所述业务处理节点定期扫描每个键值的状态以查出未设置路由状态的键值,从而添加所述键值代表的新增数据;和在将所述新增数据的键值和所述键值对应的节点位置信息添加到所述路由表中之后,将所述新增数据相应的键值的状态设置为表示已添加路由的状态。
在一个实施例中,业务路由方法还包括定期扫描删除记录表以找出所述业务处理节点记录的要删除的数据相应的键值;所述分发器对所述要删除的数据相应的键值进行哈希函数运算以获得运算结果;根据所述运算结果在以所述路由节点个数进行划分的整数空间中对应的序号,所述分发器发送删除路由请求到所述路由节点,其中所述删除路由请求的内容包括所述删除数据的键值和所述键值对应的节点位置信息;所述路由节点根据接收到的所述删除路由请求,在所述路由节点存储的路由表中删除所述删除数据的键值和所述键值对应的节点位置信息;所述路由节点将删除路由成功请求返回所述业务处理节点;和所述业务处理节点根据所述删除路由成功请求从所述删除记录表中删除所述删除数据相应的键值的记录。
进一步的,在对所述要删除的数据相应的键值进行哈希函数运算之前,锁定所述业务处理节点以禁止为所述业务处理节点添加数据;和在所述业务处理节点根据所述删除路由成功请求从所述删除记录表中删除所述删除数据相应的键值的记录之后,释放对所述业务处理节点的所述锁定。
为实现上述目的,本发明还提供了一种业务路由系统,包括:哈希函数计算单元,用于对从接收的路由请求中获取到的键值进行哈希函数运算以获得运算结果;路由节点查询单元,用于根据所述运算结果在以路由节点个数进行划分的整数空间中对应的序号,将所述路由请求路由到所述序号对应的路由节点;业务处理节点查询单元,用于根据所述路由请求在所述路由节点存储的路由表中查找所述键值对应的节点位置信息;和业务路由单元,用于根据所述节点位置信息将所述路由请求路由到所述节点位置信息指定的业务处理节点。
在一个实施例中,业务路由系统还包括数据添加装置,包括:哈希函数计算单元,用于当所述业务处理节点上新增数据时,对所述新增数据对应的键值进行所述哈希函数运算以获得运算结果;路由节点查询单元,用于根据所述运算结果在以所述路由节点个数进行划分的整数空间中对应的序号,发送添加路由请求到所述序号对应的路由节点,其中所述添加路由请求的内容包括所述新增数据的键值和所述键值对应的节点位置信息;添加数据检测单元,用于根据接收到的所述添加路由请求在所述路由节点存储的路由表中查找是否存在所述新增数据的键值和所述键值对应的节点位置信息;和添加数据单元,用于当所述路由表中没有存储所述新增数据的键值和所述键值对应的节点位置信息时,将所述新增数据的键值和所述键值对应的节点位置信息添加到所述路由表中。
进一步的,所述数据添加装置还包括:业务数据记录单元,用于在对所述新增数据对应的键值进行所述哈希函数运算之前,记录所述新增数据相应的键值的状态为表示未设置路由的状态;状态修改单元,用于在将所述新增数据的键值和所述键值对应的节点位置信息添加到所述路由表中之后,将所述新增数据相应的键值的状态设置为表示已添加路由的状态;和扫描单元,用于定期扫描每个键值的状态以查出未设置路由状态的键值,从而添加所述键值代表的新增数据。
在一个实施例中,业务路由系统还包括数据删除装置,包括:扫描单元,用于定期扫描删除记录表以找出所述业务处理节点记录的要删除的数据相应的键值;哈希函数计算单元,用于对所述要删除的数据相应的键值进行哈希函数运算以获得运算结果;路由节点查询单元,根据所述运算结果在以所述路由节点个数进行划分的整数空间中对应的序号,发送删除路由请求到所述路由节点,其中所述删除路由请求的内容包括所述删除数据的键值和所述键值对应的节点位置信息;和删除数据单元,用于根据接收到的所述删除路由请求,在所述路由节点存储的路由表中删除所述删除数据的键值和所述键值对应的节点位置信息,以及将删除路由成功请求返回所述业务处理节点,所述业务处理节点根据所述删除路由成功请求从所述删除记录表中删除所述删除数据相应的键值的记录。
进一步的,所述数据删除装置还包括:锁机制单元,用于在对所述要删除的数据相应的键值进行哈希函数运算之前,锁定所述业务处理节点以禁止为所述业务处理节点添加数据,以及在所述业务处理节点根据所述删除路由成功请求从所述删除记录表中删除所述删除数据相应的键值的记录之后,释放对所述业务处理节点的所述锁定。
基于上述技术方案,本发明提出了基于内容的哈希算法以及查表二次索引业务路由方法,包括路由数据的查询以及数据的维护。其中,通过分布式存储的路由表,可实现数据无限线性扩展,系统架构不存在单点和瓶颈,适合构建高性能大数据量的分布式系统,而且系统建设成本更低。
附图说明
此处所说明的附图用来提供对本发明的进一步解释,构成本发明的一部分。本发明的示意性实施例及其说明仅用于解释本发明,但并不构成对本发明的不当限定。在附图中:
图1为根据本发明实施例的应用场景的架构图。
图2为根据本发明实施例的业务路由方法的流程图。
图3为根据本发明实施例的路由表维护方法的流程图。
图4为根据本发明另一实施例的路由表维护方法的流程图。
图5为根据本发明实施例的路由系统的示意图。
图6为根据本发明另一实施例的路由系统的示意图。
图7为根据本发明进一步实施例的路由系统的示意图。
具体实施方式
下面参照附图对本发明进行更详细的描述,其中说明本发明的示例性实施例。
图1为根据本发明实施例的应用场景100的架构图。应用场景100包括分发器(Disp)102、路由节点(routeNode)104和业务处理节点(valueNode)106。其中分发器102是展现给外部系统的进程,用于对消息的分发和传递,以及对键值(key)的哈希计算等。根据本发明的实施例,路由表是由<key,value>对组成的记录,如表1所示的路由表结构:
Key0 | Value0 |
Key1 | Value1 |
…… | …… |
Keyn | Valuen |
表1
其中,key可以根据不同的应用选择一个消息内容中不重复的值;value可以存放负责处理这个消息的节点位置信息。本领域的一般技术人员显然将理解可以有很多种类的路由表设计方法,表1的路由表结构是为了描述本发明而举例说明的一种路由表。
路由节点104用于储存路由表信息。业务节点106为处理业务的节点。路由节点104和业务节点106可以是同一个进程,也可以是分开不同的进程。
在一个实施例中,本发明可以用于电信级分布式系统。例如,一个企业总机系统,系统有6个业务节点106,4个路由节点104。以每个登陆企业总机的账号为key(账号可以包括登陆web的账号、企业总机成员的主叫电话号码、企业总机的被叫电话号码)。假设系统每个企业总机平均有500成员,每个成员均有3个电话号码。如果系统有1万企业总机,电话记录就共有1500万条,每条电话作为一个账号分布到4个路由节点104,平均每个路由节点104保存400万左右的数据。这样的系统,数据量大、对数据可扩展性要求很高,下面通过图2、图3和图4的描述结图1的应用场景具体说明根据本发明的实施例的业务路由和维护数据的方法。
图2为根据本发明实施例的业务路由方法200的流程图。图2的描述结合了图1的应用场景100,但不限于应用场景100的形式。
在步骤202中,分发器对从接收的路由请求中获取到的键值进行哈希函数运算以获得运算结果。例如,由分发器102从接收到的路由请求消息中获得路由的key值。通过哈希函数(比如SHA-1)计算得到一个整数。如在上文提到的企业总机系统中,假设主叫用户打电话02012345678进入一个企业总机。02012345678即为key值。系统接入后,由分发器102对02012345678计算哈希函数,得到整数-14914318。
在步骤204中,根据运算结果在以路由节点个数进行划分的整数空间中对应的序号,分发器将路由请求路由到序号对应的路由节点。例如,分发器102计算-14914318 mod 100,并对整数空间分为n段。n为路由节点104的个数,比如为4,则整数空间划分为[0,25),[25,50),[50,75),[75,100)。-14914318 mod 100的结果对应到[0,25),分发器102将请求转到第1个路由节点104。
在步骤206中,路由节点根据路由请求在路由节点存储的路由表中查找键值对应的节点位置信息。例如,路由节点104查询路由表,key=02012345678,得到<key,value>对,且value=5。
在步骤208中,分发器根据节点位置信息将路由请求路由到节点位置信息指定的业务处理节点。例如,根据路由表中相应与key的值,value=5,分发器102可以将路由请求路由到第5个业务处理节点106以对消息进行处理。
图3为根据本发明实施例的路由表维护方法300的流程图。图3的描述结合了图1的应用场景100,但不限于应用场景100的形式。
在步骤302中,当业务处理节点上新增数据时,分发器对新增数据对应的键值进行哈希函数运算以获得运算结果。在对新增数据对应的键值进行哈希函数运算之前,先记录新增数据相应的键值的状态为表示未设置路由的状态。例如,第5个业务处理节点106添加一个02012345678的帐号,则记录下该帐号的状态为未设置路由的状态。假设status=0为未设置路由状态;status=1为已添加路由状态。则此时status=0。
另外,还需要从系统的删除记录表中删除02012345678的记录。删除记录表是记录已经从业务处理节点106上删除,而没有从路由节点104上删除的key。比如系统中原来有数据02012345678,然后从系统中删除,这时系统的删除记录表有key=02012345678的记录。如果在路由表的数据被删除前,用户再次添加key=02012345678的数据,为了防止系统冲突,需要把这个记录从删除记录表删除。
然后,分发器102对02012345678计算哈希函数得到整数-14914318。这里的哈希函数和方法200中用到的哈希函数相同。
在步骤304中,根据运算结果在以路由节点个数进行划分的整数空间中对应的序号,分发器发送添加路由请求到序号对应的路由节点,其中添加路由请求的内容包括新增数据的键值和键值对应的节点位置信息。例如,分发器102计算-14914318 mod 100,并对整数空间分为n段。n为路由节点104的个数,比如为4,则整数空间划分为[0,25),[25,50),[50,75),[75,100)。-14914318 mod 100的结果对应到[0,25),分发器102将添加路由请求发送到第1个路由节点104。路由请求的内容包括新增数据的key和业务处理节点106的位置信息,如value=5。
在步骤306中,路由节点根据接收到的添加路由请求在路由节点存储的路由表中查找是否存在新增数据的键值和键值对应的节点位置信息。例如,路由节点104根据key=02012345678在路由表中查询,如果路由表中没有存储新增数据的键值(key=02012345678)和键值对应的节点位置信息(value=5),则进入步骤308将新增数据的键值和键值对应的节点位置信息添加到路由表中。即将key=02012345678以及value=5的记录添加到路由节点104的路由表中。
如果路由表中已经存储新增数据的键值(key=02012345678)和键值对应的节点位置信息(value=5),则进入步骤310,检查路由表中的key和value是否与新增数据的键值和键值对应的节点位置信息一致。如果一致,则进入步骤312,返回添加成功的消息给业务节点106。如果不一致,则进入步骤314,返回添加失败的消息给业务节点106。
如果添加路由成功,将key的状态设置为已添加路由状态,即status=1。如果添加路由失败,对新增数据做rollback操作,返回给调用者新增数据失败的提示。
在一个实施例中,业务处理节点106定期扫描每个键值的状态以查出未设置路由状态(status=0)的键值,从而添加键值代表的新增数据。业务处理节点106进行定期扫描的目的是为了防止在实时添加数据的过程中,路由数据没有添加成功就发生了系统异常,比如路由节点104异常停止了。定期扫描能够使分布式系统中的路由节点104和业务处理节点106保持一致。因为分布式环境下不能保证添加业务数据和路由数据一定能在一个事务中完成,中间任何一个环节都可能中断,所以需要这样一个机制去保证在系统从错误中恢复后,数据能保持正确。采用这种做法,即使路由节点104异常终端了,用户仍然可以向系统中新增数据,但是要等路由节点104恢复后才可以查询到新数据。
图4为根据本发明另一实施例的路由表维护方法400的流程图。图4的描述结合了图1的应用场景100,但不限于应用场景100的形式。
在步骤402中,定期扫描删除记录表以找出业务处理节点记录的要删除的数据相应的键值。例如第5个业务处理节点106删除帐号02012345678,在删除记录表中记录下key=02012345678。通过定期扫描,系统可以发现删除记录表中的记录key=02012345678。
在步骤404中,分发器对要删除的数据相应的键值进行哈希函数运算以获得运算结果。例如,分发器102对02012345678计算哈希函数得到整数-14914318。这里的哈希函数和方法200中用到的哈希函数相同。
在步骤406中,根据运算结果在以路由节点个数进行划分的整数空间中对应的序号,分发器发送删除路由请求到路由节点,其中删除路由请求的内容包括删除数据的键值和键值对应的节点位置信息。例如,分发器102计算-14914318 mod 100,并对整数空间分为n段。n为路由节点104的个数,比如为4,则整数空间划分为[0,25),[25,50),[50,75),[75,100)。-14914318 mod 100的结果对应到[0,25),分发器102将删除路由请求发送到第1个路由节点104。路由请求的内容包括删除数据的key和业务处理节点106的位置信息,如value=5。
在步骤408中,路由节点根据接收到的删除路由请求,在路由节点存储的路由表中删除删除数据的键值和键值对应的节点位置信息。例如,路由节点104将路由表中的key=02012345678,value=5的记录删除。
在步骤410中,路由节点将删除路由成功请求返回业务处理节点。例如,路由节点104将删除路由成功的请求返回给业务处理节点106。
在步骤412中,业务处理节点根据删除路由成功请求从删除记录表中删除删除数据相应的键值的记录。例如,业务处理节点106将删除记录表中的key=02012345678的记录删除。
在一个实施例中,在步骤404之前,锁定业务处理节点106以禁止为业务处理节点106添加数据。然后,在步骤412之后,释放对业务处理节点106的锁定。通过锁机制实现一个互斥操作:在路由节点104删除路由表的时候,业务处理节点106不能同时进行添加操作。因为在多个请求并发处理的情况下,这两个操作并发可能会引起错误。
下面举一个例子说明,假设没有这个锁机制(即删除路由表的时候,业务处理节点106能够同时执行添加操作):
1、假设key=02012345678的记录在第5个业务处理节点106,路由记录在第1个路由节点104上。
2、用户A发起删除key=02012345678记录的操作,同时用户B发起增加key=02012345678记录的操作。
3、假设系统先执行A用户的删除操作,第5个业务处理节点106上删除key=02012345678的记录,正准备到第1个路由节点104删除路由记录,这时系统控制权转到执行到用户B的请求(注意:因为假设没有锁,系统可以执行用户B的添加记录)。
4、假设系统处理B用户的请求全部完成后再继续执行A用户的操作。
5、系统继续执行A用户的删除操作,到第3个路由节点104删除key=02012345678的路由。
6、结果是业务处理节点106上存在key=02012345678的记录,但是路由节点104节点没有相应的记录(被A用户的操作删除了)。
从上面的例子可以看到,如果删除路由表的时候业务处理节点106还能进行添加操作,会导致部分路由数据缺失,这个互斥锁机制能确保业务处理节点106和路由节点104的一致性。
另外,根据本发明的实施例,删除路由表的操作采用定期进行,而不是在删除业务处理节点106的记录后立刻执行,这是从系统的性能上考虑的。在频繁增加和删除数据的时候,如果实时删除路由表,业务处理节点106就要频繁的加锁和解锁,必然造成系统性能下降,压力测试也证明了这一点。如果不实时删除路由表的记录,不会对应用的正确性造成影响,仅是业务处理节点106中存在一些垃圾数据。所以删除路由表的操作一般选择在系统空闲的时候(例如凌晨1:00-5:00)定期进行,而不是在业务处理节点106上删除后立刻执行。
图5为根据本发明实施例的路由系统500的示意图。路由系统500包括数据查询装置502、数据添加装置504和数据删除装置506。其中数据查询装置502包括哈希函数计算单元52、路由节点查询单元54、业务处理节点查询单元56和业务路由单元58。
哈希函数计算单元52用于对从接收的路由请求中获取到的键值进行哈希函数运算以获得运算结果。
路由节点查询单元54用于根据运算结果在以路由节点个数进行划分的整数空间中对应的序号,将路由请求路由到序号对应的路由节点。
业务处理节点查询单元56用于根据路由请求在路由节点存储的路由表中查找键值对应的节点位置信息。
业务路由单元58用于根据节点位置信息将路由请求路由到节点位置信息指定的业务处理节点。
图6为根据本发明实施例的数据添加装置504的示意图。数据添加装置504包括哈希函数计算单元62、路由节点查询单元64、添加数据检测单元66、添加数据单元68、扫描单元63和业务数据记录单元65和状态修改单元69。
业务数据记录单元65用于添加业务数据,并记录新增数据相应的键值的状态为表示未设置路由的状态。
哈希函数计算单元62用于当业务处理节点上新增数据时,对新增数据对应的键值进行哈希函数运算以获得运算结果。
路由节点查询单元64用于根据运算结果在以路由节点个数进行划分的整数空间中对应的序号,发送添加路由请求到序号对应的路由节点,其中添加路由请求的内容包括新增数据的键值和值对应的节点位置信息。
添加数据检测单元66用于根据接收到的添加路由请求在路由节点存储的路由表中查找是否存在新增数据的键值和键值对应的节点位置信息。
添加数据单元68用于当路由表中没有存储新增数据的键值和键值对应的节点位置信息时,将新增数据的键值和键值对应的节点位置信息添加到路由表中。
状态修改单元69用于在将新增数据的键值和键值对应的节点位置信息添加到路由表中之后,将新增数据相应的键值的状态设置为表示已添加路由的状态。
扫描单元63用于定期扫描每个键值的状态以查出未设置路由状态的键值,从而添加键值代表的新增数据。
图7为根据本发明实施例的数据删除装置506的示意图。数据删除装置506包括扫描单元73、哈希函数计算单元72、路由节点查询单元74、删除数据单元78和锁机制单元75。
扫描单元73用于定期扫描删除记录表以找出业务处理节点记录的要删除的数据相应的键值。
哈希函数计算单元72用于对要删除的数据相应的键值进行哈希函数运算以获得运算结果。
路由节点查询单元74根据运算结果在以路由节点个数进行划分的整数空间中对应的序号,发送删除路由请求到路由节点,其中删除路由请求的内容包括删除数据的键值和键值对应的节点位置信息。
删除数据单元78用于根据接收到的删除路由请求,在路由节点存储的路由表中删除删除数据的键值和键值对应的节点位置信息,以及将删除路由成功请求返回业务处理节点,业务处理节点根据删除路由成功请求从删除记录表中删除删除数据相应的键值的记录。
锁机制单元75用于在对要删除的数据相应的键值进行哈希函数运算之前,锁定业务处理节点以禁止为业务处理节点添加数据,以及在业务处理节点根据删除路由成功请求从删除记录表中删除删除数据相应的键值的记录之后,释放对业务处理节点的锁定。
本发明提出了基于内容的哈希算法以及查表二次索引业务路由方法,包括路由数据的查询以及数据的维护。其中,通过分布式存储的路由表,可实现数据无限线性扩展,系统架构不存在单点和瓶颈,适合构建高性能大数据量的分布式系统,而且系统建设成本更低。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (10)
1.一种业务路由方法,其特征在于,包括:
分发器对从接收的路由请求中获取到的键值进行哈希函数运算以获得运算结果;
根据所述运算结果在以路由节点个数进行划分的整数空间中对应的序号,所述分发器将所述路由请求路由到所述序号对应的路由节点;
所述路由节点根据所述路由请求在所述路由节点存储的路由表中查找所述键值对应的节点位置信息;和
所述分发器根据所述节点位置信息将所述路由请求路由到所述节点位置信息指定的业务处理节点。
2.根据权利要求1所述的业务路由方法,其特征在于,还包括:
当所述业务处理节点上新增数据时,所述分发器对所述新增数据对应的键值进行所述哈希函数运算以获得运算结果;
根据所述运算结果在以所述路由节点个数进行划分的整数空间中对应的序号,所述分发器发送添加路由请求到所述序号对应的路由节点,其中所述添加路由请求的内容包括所述新增数据的键值和所述键值对应的节点位置信息;
所述路由节点根据接收到的所述添加路由请求在所述路由节点存储的路由表中查找是否存在所述新增数据的键值和所述键值对应的节点位置信息;和
如果所述路由表中没有存储所述新增数据的键值和所述键值对应的节点位置信息,将所述新增数据的键值和所述键值对应的节点位置信息添加到所述路由表中。
3.根据权利要求2所述的业务路由方法,其特征在于,还包括:
在对所述新增数据对应的键值进行所述哈希函数运算之前,记录所述新增数据相应的键值的状态为表示未设置路由的状态;
所述业务处理节点定期扫描每个键值的状态以查出未设置路由状态的键值,从而添加所述键值代表的新增数据;和
在将所述新增数据的键值和所述键值对应的节点位置信息添加到所述路由表中之后,将所述新增数据相应的键值的状态设置为表示已添加路由的状态。
4.根据权利要求1所述的业务路由方法,其特征在于,还包括:
定期扫描删除记录表以找出所述业务处理节点记录的要删除的数据相应的键值;
所述分发器对所述要删除的数据相应的键值进行哈希函数运算以获得运算结果;
根据所述运算结果在以所述路由节点个数进行划分的整数空间中对应的序号,所述分发器发送删除路由请求到所述路由节点,其中所述删除路由请求的内容包括所述删除数据的键值和所述键值对应的节点位置信息;
所述路由节点根据接收到的所述删除路由请求,在所述路由节点存储的路由表中删除所述删除数据的键值和所述键值对应的节点位置信息;
所述路由节点将删除路由成功请求返回所述业务处理节点;和
所述业务处理节点根据所述删除路由成功请求从所述删除记录表中删除所述删除数据相应的键值的记录。
5.根据权利要求4所述的业务路由方法,其特征在于,还包括:
在对所述要删除的数据相应的键值进行哈希函数运算之前,锁定所述业务处理节点以禁止为所述业务处理节点添加数据;和
在所述业务处理节点根据所述删除路由成功请求从所述删除记录表中删除所述删除数据相应的键值的记录之后,释放对所述业务处理节点的所述锁定。
6.一种业务路由系统,其特征在于,包括数据查询装置,包括:
哈希函数计算单元,用于对从接收的路由请求中获取到的键值进行哈希函数运算以获得运算结果;
路由节点查询单元,用于根据所述运算结果在以路由节点个数进行划分的整数空间中对应的序号,将所述路由请求路由到所述序号对应的路由节点;
业务处理节点查询单元,用于根据所述路由请求在所述路由节点存储的路由表中查找所述键值对应的节点位置信息;和
业务路由单元,用于根据所述节点位置信息将所述路由请求路由到所述节点位置信息指定的业务处理节点。
7.根据权利要求6所述的业务路由系统,其特征在于,还包括数据添加装置,包括:
哈希函数计算单元,用于当所述业务处理节点上新增数据时,对所述新增数据对应的键值进行所述哈希函数运算以获得运算结果;
路由节点查询单元,用于根据所述运算结果在以所述路由节点个数进行划分的整数空间中对应的序号,发送添加路由请求到所述序号对应的路由节点,其中所述添加路由请求的内容包括所述新增数据的键值和所述键值对应的节点位置信息;
添加数据检测单元,用于根据接收到的所述添加路由请求在所述路由节点存储的路由表中查找是否存在所述新增数据的键值和所述键值对应的节点位置信息;和
添加数据单元,用于当所述路由表中没有存储所述新增数据的键值和所述键值对应的节点位置信息时,将所述新增数据的键值和所述键值对应的节点位置信息添加到所述路由表中。
8.根据权利要求7所述的业务路由系统,其特征在于,所述数据添加装置还包括:
业务数据记录单元,用于在对所述新增数据对应的键值进行所述哈希函数运算之前,记录所述新增数据相应的键值的状态为表示未设置路由的状态;
状态修改单元,用于在将所述新增数据的键值和所述键值对应的节点位置信息添加到所述路由表中之后,将所述新增数据相应的键值的状态设置为表示已添加路由的状态;和
扫描单元,用于定期扫描每个键值的状态以查出未设置路由状态的键值,从而添加所述键值代表的新增数据。
9.根据权利要求6所述的业务路由系统,其特征在于,还包括数据删除装置,包括:
扫描单元,用于定期扫描删除记录表以找出所述业务处理节点记录的要删除的数据相应的键值;
哈希函数计算单元,用于对所述要删除的数据相应的键值进行哈希函数运算以获得运算结果;
路由节点查询单元,根据所述运算结果在以所述路由节点个数进行划分的整数空间中对应的序号,发送删除路由请求到所述路由节点,其中所述删除路由请求的内容包括所述删除数据的键值和所述键值对应的节点位置信息;和
删除数据单元,用于根据接收到的所述删除路由请求,在所述路由节点存储的路由表中删除所述删除数据的键值和所述键值对应的节点位置信息,以及将删除路由成功请求返回所述业务处理节点,所述业务处理节点根据所述删除路由成功请求从所述删除记录表中删除所述删除数据相应的键值的记录。
10.根据权利要求9所述的业务路由系统,其特征在于,所述数据删除装置还包括:
锁机制单元,用于在对所述要删除的数据相应的键值进行哈希函数运算之前,锁定所述业务处理节点以禁止为所述业务处理节点添加数据,以及在所述业务处理节点根据所述删除路由成功请求从所述删除记录表中删除所述删除数据相应的键值的记录之后,释放对所述业务处理节点的所述锁定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101603382A CN101635680B (zh) | 2009-08-07 | 2009-08-07 | 一种业务路由方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101603382A CN101635680B (zh) | 2009-08-07 | 2009-08-07 | 一种业务路由方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101635680A CN101635680A (zh) | 2010-01-27 |
CN101635680B true CN101635680B (zh) | 2011-08-31 |
Family
ID=41594743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101603382A Active CN101635680B (zh) | 2009-08-07 | 2009-08-07 | 一种业务路由方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101635680B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103581018B (zh) | 2013-07-26 | 2017-08-11 | 北京华为数字技术有限公司 | 报文发送方法、路由器以及业务交换器 |
CN103595776A (zh) * | 2013-11-05 | 2014-02-19 | 福建网龙计算机网络信息技术有限公司 | 分布式缓存方法及系统 |
CN103647712B (zh) * | 2013-12-17 | 2018-02-16 | 南京联创科技集团股份有限公司 | 分布式路由处理业务的方法及系统 |
CN106294444B (zh) * | 2015-05-27 | 2020-02-18 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和设备 |
CN108881020B (zh) * | 2017-05-11 | 2020-11-06 | 中兴通讯股份有限公司 | 有源可信路由管理的方法、装置及其计算机设备 |
CN109033292A (zh) * | 2018-07-13 | 2018-12-18 | 南京邮电大学 | 一种数据库分布式缓存系统及方法 |
CN109525503B (zh) * | 2018-10-18 | 2021-12-14 | 苏州盛科通信股份有限公司 | 一种压缩方法及装置、计算机可读存储介质 |
CN111327532A (zh) * | 2020-01-21 | 2020-06-23 | 南京贝伦思网络科技股份有限公司 | 一种网络设备超大转发策略表容量的实现方法 |
CN111857979B (zh) * | 2020-06-28 | 2023-08-15 | 厦门极致互动网络技术股份有限公司 | 一种分布式系统的信息管理方法、系统、存储介质及设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101483655A (zh) * | 2009-02-10 | 2009-07-15 | 杭州华三通信技术有限公司 | 一种互联网组管理协议报文传输方法和代理设备 |
-
2009
- 2009-08-07 CN CN2009101603382A patent/CN101635680B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101483655A (zh) * | 2009-02-10 | 2009-07-15 | 杭州华三通信技术有限公司 | 一种互联网组管理协议报文传输方法和代理设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101635680A (zh) | 2010-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101635680B (zh) | 一种业务路由方法和系统 | |
CN107193490B (zh) | 一种基于区块链的分布式数据存储系统及方法 | |
JP3681754B2 (ja) | データ管理システムの構成方法 | |
CN101009516B (zh) | 一种进行数据同步的方法、系统及装置 | |
KR101183050B1 (ko) | 자기조직화 네트워크들을 위한 분산 해싱 메커니즘 | |
CN103067433B (zh) | 一种分布式存储系统的数据迁移方法、设备和系统 | |
US10579595B2 (en) | Method and device for calling a distributed file system | |
JPH08237360A (ja) | データベースの更新装置と更新方法 | |
CN112764968B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN102779185A (zh) | 一种高可用分布式全文索引方法 | |
JPS63201743A (ja) | データ処理システム・ネットワークのためのキャッシング方法 | |
CN105025053A (zh) | 基于云存储技术的分布式文件的上传方法及其系统 | |
CN111901705B (zh) | 一种olt设备的omci功能虚拟化系统 | |
CN101923571B (zh) | 管理终端数据记录的方法及装置 | |
CN104272259A (zh) | 用于在事务中间件机器环境中支持基于版本的路由的系统和方法 | |
CN106326239A (zh) | 分布式文件系统及其文件元信息管理方法 | |
CN105930345A (zh) | 基于分布式实时数据库的层次索引方法 | |
CN102567505A (zh) | 一种分布式数据库及其数据操作方法 | |
CN109359147A (zh) | 业务组件处理方法、组件服务器和系统 | |
CN105959419A (zh) | 基于一致性树的分布式存储结构的构建方法及系统 | |
CN101997726B (zh) | 电信网络用户数据存储管理的方法及装置 | |
CN108446308A (zh) | 可扩展分布式数据库的系统和方法 | |
CN103888424B (zh) | 集群式数据加密系统及其数据处理方法 | |
CN111526047A (zh) | 一种基于区块链的消息队列设计方法及装置 | |
CN101730085B (zh) | 通信录数据同步方法和系统 |
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 |