一种消息传递方法及相关装置的制造方法_5

文档序号:9891391阅读:来源:国知局
响应所述准备请求返回的确认回复消息,并根据收集的确认回复消息生成包含允许所述客户端进行读写操作的服务器的数量和/或标识的响应消息。进一步的,发送模块23可根据该准备请求中包含的第一服务器的标识,向所述第一服务器发送该响应消息。
[0205]需要说明的是,该第二服务器生成的响应消息是根据收集到的确认回复消息的数量变化进行更新的,即该第二服务器在每收到一条该数据中心的服务器响应准备请求返回的确认回复消息时,则对响应消息进行更新,比如将该返回确认回复消息的服务器的标识加入该响应消息中,并将该响应消息中记录的允许所述客户端进行读写操作的服务器的数量加一。
[0206]可选的,在本发明实施例中,所述发送模块23可包括:
[0207]第一检测单元231,用于检测所述数据中心中允许所述客户端进行读写操作的服务器的数量是否超过所述数据中心的服务器的总数的二分之一;
[0208]第一发送单元232,用于在所述第一检测单元231的检测结果为超过所述数据中心服务器的总数的二分之一时,向所述第一服务器发送所述响应消息。
[0209]具体的,发送模块23向第一服务器发送包含允许所述客户端进行读写操作的服务器的数量的响应消息时,可通过第一检测单元231检测数据中心中允许所述客户端进行读写操作的服务器的数量是否超过该数据中心服务器总数的二分之一,并在检测到超过该数据中心的服务器总数的二分之一时,通过第一发送单元232向所述第一服务器发送该响应消息。
[0210]可选的,在本发明实施例中,所述发送模块23还可包括:
[0211]第二检测单元233,用于检测所述数据中心中允许所述客户端进行读写操作的服务器的数量是否达到所述数据中心服务器的总数;
[0212]第二发送单元234,用于在所述第二检测单元233检测结果为达到所述数据中心服务器的总数时,向所述第一服务器发送所述响应消息。
[0213]具体的,发送模块23向第一服务器发送包含允许所述客户端进行读写操作的服务器的数量的响应消息时,还可通过第二检测单元233检测数据中心中允许所述客户端进行读写操作的服务器的数量是否达到该数据中心服务器的总数,即该数据中心的所有服务器均返回了确认回复消息,并在检测到超过该数据中心的服务器总数的二分之一时,通过第二发送单元234向所述第一服务器发送响应消息。
[0214]可选的,在本发明实施例中,所述发送模块23还可包括:
[0215]第三检测单元235,用于检测当前时间是否超过预设的响应时间;
[0216]第三发送单元236,用于当所述第三检测单元235的检测结果为超过所述预设的响应时间时,向所述第一服务器发送所述响应消息。
[0217]具体的,发送模块23向第一服务器发送包含允许所述客户端进行读写操作的服务器的数量的响应消息时,还可通过第三检测单元235检测当前时间,即接收到第一服务器发送的准备请求之后经过的时间是否超过预设的响应时间,如5分钟,并在检测到当前时间超过该5分钟时,通过第三发送单元236向所述第一服务器发送响应消息。
[0218]进一步的,在本发明实施例中,所述装置还可包括:
[0219]指令处理模块24,用于接收所述第一服务器确定批准所述读写请求发送的读写指令,并向所述数据中心中允许所述客户端进行读写操作的服务器发送所述读写指令,所述读写指令包括所述实例号以及所述读写请求对应的实例内容,以使所述允许所述客户端进行读写操作的服务器根据所述实例内容进行读写操作;
[0220]消息处理模块25,用于接收所述允许所述客户端进行读写操作的服务器根据所述实例内容进行读写操作返回的操作确认消息,并将所述操作确认消息返回至所述第一服务器。
[0221]具体实施例中,第一服务器根据允许所述客户端进行读写操作的服务器的数量确定批准该读写请求之后,可向第二服务器发送包括该读写请求对应的实例内容及实例号的读写指令。该第二服务器通过指令处理模块24接收该读写指令,并向该第二服务器所在数据中心的允许所述客户端进行读写操作的服务器(即返回了确认回复消息的服务器)转发该读写指令,以指示所述允许所述客户端进行读写操作的服务器根据该实例内容进行读写操作。消息处理模块25接收所述允许所述客户端进行读写操作的服务器返回的操作确认消息,并将所述操作确认消息返回至所述第一服务器,以表明该允许所述客户端进行读写操作的服务器已完成该读写操作,使得第一服务器确认对该读写请求对应的“选举”结束。
[0222]实施本发明实施例第二服务器可在接收到第一服务器根据接收的客户端请求而发送的准备请求时,向该第二服务器所在数据中心的服务器转发该准备请求,并根据该数据中心的服务器响应该准备请求返回的确认回复消息而生成响应消息,将包含允许该客户端进行读写操作的服务器的数量的响应消息发送至第一服务器,以使该第一服务器根据该允许该客户端进行读写操作的服务器的数量确定是否批准该客户端请求,并在接收到第一服务器确定批准该读写请求发送的读写指令时,将该读写指令转发至所在数据中心的返回了确认回复消息的服务器,向第一服务器反馈收集的反馈该确认回复消息的服务器的读写操作情况,实现了将在广域网中传递的部分消息转移到局域网中进行传递,从而减少了广域网中消息传递的数量,并减轻了接收到请求的服务器负载。
[0223]进一步的,请参见图10,是本发明实施例提供的一种服务器的结构组成示意图,本发明实施例的服务器包括:接收器300、发射器400、存储器200和处理器100,所述存储器200可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。作为一种计算机存储介质的存储器200中存储相应的应用程序等。所述接收器300、发射器400、存储器200以及处理器100之间可以通过总线进行数据连接,也可以通过其他方式数据连接。本实施例中以总线连接进行说明。具体的,本发明实施例的所述服务器具体为第一服务器,并可参照图6至图7对应实施例中的消息传递装置的相关描述。
[0224]其中,所述处理器100执行如下步骤:
[0225]通过接收器300接收客户端发送的读写请求,并为所述读写请求分配用于标识所述读写请求的实例号;
[0226]通过发射器400向所在广域网中的第二服务器发送携带所述实例号的准备请求;
[0227]通过接收器300接收所述第二服务器返回的响应消息,所述响应消息为所述第二服务器根据所述第二服务器所在数据中心的服务器响应所述准备请求返回的确认回复消息而生成的,所述响应消息包括所述数据中心中允许所述客户端进行读写操作的服务器的数量;
[0228]根据所述响应消息中允许所述客户端进行读写操作的服务器的数量,确定是否批准所述读写请求;
[0229]若批准,则根据所述读写请求,通过发射器400向所述允许所述客户端进行读写操作的服务器发送读写指令。
[0230]需要说明的是,该第一服务器可以为第一服务器所在广域网中的任意一台接收到客户端请求的服务器,该服务器在接收到客户端请求时,即可作为该广域网中的“领导者”,并发起对该客户端请求的选举过程,从而确定是否批准该客户端请求。
[0231]具体实施例中,在接收到客户端请求时,第一服务器即可通过处理器100为该客户端请求分配一个实例号,该实例号在该第一服务器所在的广域网中唯一确定,用于标识该接收到的客户请求。具体的,该客户端请求可具体为客户端发送读请求或写请求,本发明实施例不做限定。
[0232]可选的,该准备请求还可包括该第一服务器的标识、该客户端请求对应的实例内
^^寸寸ο
[0233]在可选的实施例中,所述处理器100在执行所述根据所述响应消息中允许所述客户端进行读写操作的服务器的数量,确定是否批准所述读写请求,具体执行以下步骤:
[0234]根据所述响应消息,检测所述广域网中允许所述客户端进行读写操作的服务器的数量是否超过所述广域网中服务器数量的二分之一;
[0235]若超过所述广域网中服务器数量的二分之一,确定批准所述读写请求。
[0236]具体实施例中,接收器300接收到第二服务器响应该准备请求返回的响应消息和本地数据中心的服务器返回的确认回复消息时,处理器100即可根据该响应消息中包含的允许所述客户端进行读写操作的服务器的数量以及该本地数据中心返回确认回复消息的服务器数量,确定出是否批准该客户端发送的读写请求,即确定该“选举”是否通过。
[0237]具体的,该处理器100可在统计得到允许所述客户端进行读写操作的服务器的数量(包括接收到第二服务器返回的响应消息中包含的允许所述客户端进行读写操作的服务器的数量以及该本地数据中心返回确认回复消息的服务器数量)超过所在广域网中服务器数量的二分之一,即响应该准备请求并返回确认回复消息的服务器达到多数时,则可表明“选举”通过,并确定批准该读写请求。
[0238]在可选的实施例中,所述处理器100在执行所述根据所述读写请求,通过发射器400向所述允许所述客户端进行读写操作的服务器发送读写指令,具体执行以下步骤:
[0239]通过发射器400向所述第二服务器发送携带所述读写请求对应的实例内容及所述实例号的读写指令,以使所述第二服务器收集所述数据中心中允许所述客户端进行读写操作的服务器根据所述实例内容进行读写操作返回的操作确认消息;
[0240]通过接收器300接收所述第二服务器响应所述读写指令返回的所述操作确认消肩、O
[0241]当接收器300接收到所在广域网中允许所述客户端进行读写操作的服务器响应所述读写指令返回的操作确认消息时,即可表明该允许所述客户端进行读写操作的服务器根据该读写请求对应的实例内容完成了读写操作。进一步的,该处理器100可在检测到返回操作确认消息的服务器的数量超过当前广域网中服务器数量的二分之一时,确认对该读写请求对应的“选举”结束。
[0242]进一步的,所述处理器100在执行所述根据所述读写请求,通过发射器400向所述允许所述客户端进行读写操作的服务器发送读写指令之后,还执行以下步骤:
[0243]当接收到所述广域网中允许所述客户端进行读写操作的服务器响应所述读写指令返回的操作确认消息时,将所述读写请求的操作成功消息通知给所述广域网中的服务器,所述操作确认消息为所述允许所述客户端进行读写操作的服务器根据所述读写请求对应的实例内容进行读写操作返回的;
[0244]将针对所述读写请求的请求成功消息通知给所述客户端。
[0245]实施本发明实施例可在第一服务器接收到客户端请求时,向当前广域网中的第二服务器发送与该客户端请求对应的准备请求,根据该第二服务器响应该准备请求返回的响应消息中包含的允许该客户端进行读写操作的服务器的数量,确定是否批准该客户端请求,从而实现将在广域网中传递的部分消息转移到局域网中进行传递,减少了广域网中消息传递的数量,并减轻了接收到请求的服务器的负载。
[0246]进一步的,请参见图11,是本发明实施例提供的另一种服务器的结构组成示意图,本发明实施例的服务器包括:接收器700、发射器800、存储器600和处理器500,所述存储器600可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。作为一种计算机存储介质的存储器600中存储相应的应用程序等。所述接收器700、发射器800、存储器600以及处理器500之间可以通过总线进行数据连接,也可以通过其他方式数据连接。本实施例中以总线连接进行说明。具体的,本发明实施例的所述服务器具体为第二服务器,并可参照图8至图9对应实施例中的消息传递装置的相关描述。
[0247]其中,所述处理器500执行如下步骤:
[0248]通过接收器700接收第一服务器发送的携带实例号的准备请求,并通过发射器800向所在数据中心的服务器发送所述准备请求,所述实例号为所述第一服务器在接收到客户端发送的读写请求时为所述读写请求分配的;
[0249]收集所述数据中心的服务器响应所述准备请求返回的确认回复消息,并根据收集的所述确认回复消息生成响应消息,所述响应消息包括所述数据中心中允许所述客户端进行读写操作的服务器的数量;
[0250]通过发射器800向所述第一服务器发送所述响应消息,以使所述第一服务器根据所述响应消息中允许所述客户端进行读写操作的服务器的数量确定是否批准所述读写请求。
[0251]需要说明的是,该第二服务器可从广域网的每个数据中心内部挑选得出,每个数据中心的第二服务器可以为一个或多个,本发明实施例不做限定。具体的,可选取网卡好,可以和数据中心内部所有服务器连通并且可以连接广域网中其它所有数据中心的服务器作为该第二服务器。
[0252]其中,所述实例号为所述接收器700接收到客户端请求如客户端发送的读写请求时处理器500为所述读写请求分配的。该实例号在该第一服务器所在的广域网中唯一确定。可选的,该准备请求还可包括该第一服务器的标识、该客户端请求对应的实例内容等坐寸ο
[0253]具体实施例中,接收器700在接收到第一服务器发送的准备请求之后,可通过发射器800将该准备请求转发给该第二服务器所在数据中心的其他服务器,该数据中心的服务器根据该准备消息确定是否接受该请求并回复给第二服务器。若接收器700接收到该数据中心服务器返回的确认回复消息时,即可表明该返回确认回复消息的服务器为允许所述客户端进行读写操作的服务器,第二服务器通过处理器500收集该数据中的服务器响应所述准备请求返回的确认回复消息,并根据收集的确认回复消息生成包含允许所述客户端进行读写操作的服务器的数量和/或标识的响应消息。第二服务器通过发射器800向第一服务器发送该响应消息。
[0254]在可选的实施例中,所述处理器500在执行所述通过发射器800向所述第一服务器发送所述响应消息,具体执行以下步骤:
[0255]检测所述数据中心中允许所述客户端进行读写操作的服务器的数量是否超过所述数据中心服务器的总数的二分之一;
[0256]若超过所述数据中心服务器的总数的二分之一,则通过发射器800向所述第一服务器发送所述响应消息。
[0257]具体的,发射器800向第一服务器发送包含允许所述客户端进行读写操作的服务器的数量的响应消息,可以是通过处理器500检测数据中心中允许所述客户端进行读写操作的服务器的数量是否超过该数据中心服务器总数的二分之一,并在检测到超过该数据中心的服务器总数的二分之一时,通过发射器800向第一服务器发送该响应消息。
[0258]在可选的实施例中,所述处理器500在执行所述通过发射器800向所
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1