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

文档序号:9891391阅读:来源:国知局
应消息中允许所述客户端进行读写操作的服务器的数量,确定是否批准所述读写请求。
[0158]具体实施例中,在第一发送模块12向所在广域网中的第二服务器发送携带所述实例号的准备请求以及向本地数据中心的服务器发送该准备请求之后,确定模块14即可检测当前允许所述客户端进行读写操作的服务器的数量,从而根据该允许所述客户端进行读写操作的服务器的数量确定出是否批准该客户端发送的读写请求。具体的,在第二接收模块13接收到第二服务器响应该准备请求返回的响应消息时,确定模块14即可根据该响应消息中包含的允许所述客户端进行读写操作的服务器的数量以及本地数据中心中确认允许所述客户端进行读写操作的服务器的数量,确定出是否批准该客户端发送的读写请求,即确定该“选举”是否通过。
[0159]所述第二发送模块15,用于在所述确定模块14确定批准所述读写请求时,根据所述读写请求,向所述允许所述客户端进行读写操作的服务器发送读写指令。
[0160]具体实施例中,确定模块14在确认批准客户端发送的读写请求之后,即可通过第二发送模块15向所述允许所述客户端进行读写操作的服务器发送读写指令,以使该广域网中允许所述客户端进行读写操作的服务器根据该读写请求对应的实例内容进行读写操作,完成“选举”。
[0161]实施本发明实施例可在第一服务器接收到客户端请求时,向当前广域网中的第二服务器发送与该客户端请求对应的准备请求,根据该第二服务器响应该准备请求返回的响应消息中包含的允许该客户端进行读写操作的服务器的数量,确定是否批准该客户端请求,从而实现将在广域网中传递的部分消息转移到局域网中进行传递,减少了广域网中消息传递的数量,并减轻了接收到请求的服务器的负载。
[0162]请参见图7,是本发明实施例提供的另一种消息传递装置的结构示意图,具体的,本发明实施例的所述装置包括:第一接收模块11、第一发送模块12、第二接收模块13、确定模块14以及第二发送模块15。其中,
[0163]所述第一接收模块11,用于接收客户端发送的读写请求,并为所述读写请求分配用于标识所述读写请求的实例号。
[0164]需要说明的是,该第一服务器可以为第一服务器所在广域网中的任意一台接收到客户端请求的服务器,该服务器在接收到客户端请求时,即可作为该广域网中的“领导者”,并发起对该客户端请求的选举过程,从而确定是否批准该客户端请求。
[0165]具体实施例中,第一接收模块11在接收到客户端请求时,即可为该客户端请求分配一个实例号,该实例号在该第一服务器所在的广域网中唯一确定,用于标识该接收到的客户请求。具体的,该客户端请求可具体为客户端发送读请求或写请求,本发明实施例不做限定。
[0166]所述第一发送模块12,用于向所在广域网中的第二服务器发送携带所述实例号的准备请求。
[0167]所述第二接收模块13,用于接收所述第二服务器返回的响应消息,所述响应消息为所述第二服务器根据所述第二服务器所在数据中心的服务器响应所述准备请求返回的确认回复消息而生成的,所述响应消息包括所述数据中心中允许所述客户端进行读写操作的服务器的数量。
[0168]需要说明的是,该第二服务器可从广域网的每个数据中心内部挑选得出,每个数据中心的第二服务器可以为一个或多个,本发明实施例不做限定。具体的,可选取网卡好,可以和数据中心内部所有服务器连通并且可以连接广域网中其它所有数据中心的服务器作为该第二服务器。
[0169]具体实施例中,该第一接收模块11在为客户端发送的读写请求分配实例号之后,即通过第一发送模块12可向该第一服务器所在的本地数据中心的各服务器发送该携带配置的实例号的准备请求,并向该第一服务器所在广域网中设置的第二服务器发送该准备请求,以使该第二服务器向该第二服务器所在数据中心的服务器转发该准备请求,并收集该第二服务器所在数据中的服务器响应所述准备请求返回的确认回复消息,以对客户端请求进行选举。
[0170]可选的,该准备请求还可包括该第一服务器的标识、该客户端请求对应的实例内容等信息。
[0171]在第一发送模块12发送准备请求之后,可通过第二接收模块13接收该第二服务器响应该准备请求返回的响应消息。其中,所述响应消息为所述第二服务器根据所述第二服务器所在数据中心的服务器响应所述准备请求返回的确认回复消息而生成的,该响应消息包括该第二服务器所在数据中心中允许所述客户端进行读写操作的服务器(即返回确认回复消息的服务器)的数量,即“选举”通过的服务器数量。
[0172]所述确定模块14,用于根据所述响应消息中允许所述客户端进行读写操作的服务器的数量,确定是否批准所述读写请求。
[0173]具体实施例中,在第一发送模块12向所在广域网中的第二服务器发送携带所述实例号的准备请求以及向本地数据中心的服务器发送该准备请求之后,确定模块14即可检测当前允许所述客户端进行读写操作的服务器的数量,从而根据该允许所述客户端进行读写操作的服务器的数量确定出是否批准该客户端发送的读写请求。具体的,在第二接收模块13接收到第二服务器响应该准备请求返回的响应消息时,确定模块14即可根据该响应消息中包含的允许所述客户端进行读写操作的服务器的数量以及本地数据中心中确认允许所述客户端进行读写操作的服务器的数量,确定出是否批准该客户端发送的读写请求,即确定该“选举”是否通过。
[0174]所述第二发送模块15,用于在所述确定模块14确定批准所述读写请求时,根据所述读写请求,向所述允许所述客户端进行读写操作的服务器发送读写指令。
[0175]具体实施例中,确定模块14在确认批准客户端发送的读写请求之后,即可通过第二发送模块15向所述允许所述客户端进行读写操作的服务器发送读写指令,以使该广域网中允许所述客户端进行读写操作的服务器根据该读写请求对应的实例内容进行读写操作,完成“选举”。
[0176]可选的,在本发明实施例中,所述确定模块14可进一步包括:
[0177]检测单元141,用于根据所述响应消息,检测所述广域网中允许所述客户端进行读写操作的服务器的数量是否超过所述广域网中服务器数量的二分之一;
[0178]请求确定单元142,用于当所述检测单元141检测到所述广域网中允许所述客户端进行读写操作的服务器的数量超过所述广域网中服务器数量的二分之一时,确定批准所述读写请求。
[0179]具体的,该请求确定单元142可在检测单元141统计得到当前允许所述客户端进行读写操作的服务器的数量超过所在广域网中服务器数量的二分之一,即响应该准备请求并返回确认回复消息的服务器达到多数时,确定批准该读写请求。
[0180]可选的,在本发明实施例中,所述第二发送模块15可进一步包括:
[0181]指令发送单元151,用于向所述第二服务器发送携带所述读写请求对应的实例内容及所述实例号的读写指令,以使所述第二服务器收集所述数据中心中允许所述客户端进行读写操作的服务器根据所述实例内容进行读写操作返回的操作确认消息;
[0182]消息接收单元152,用于接收所述第二服务器响应所述读写指令返回的所述操作确认消息。
[0183]具体实施例中,在确定模块14确认批准客户端发送的读写请求之后,第二发送模块15即可向该允许所述客户端进行读写操作的服务器发送读写指令,以使该广域网中允许所述客户端进行读写操作的服务器根据该读写请求对应的实例内容进行读写操作,并收集该允许所述客户端进行读写操作的服务器进行读写操作后返回的操作确认消息。具体的,可通过指令发送单元151向该广域网中的第二服务器发送该读写指令,以使该第二服务器将该读写指令转发给该第二服务器所在数据中心中允许所述客户端进行读写操作的服务器即返回了确认回复消息的服务器,从而使得该允许所述客户端进行读写操作的服务器根据该实例内容进行读写操作。消息接收单元152接收所述第二服务器响应所述读写指令返回的所述操作确认消息。
[0184]当消息接收单元152接收到所在广域网中允许所述客户端进行读写操作的服务器响应所述读写指令返回的操作确认消息时,即可表明该允许所述客户端进行读写操作的服务器根据该读写请求对应的实例内容完成了读写操作。具体的,可在消息接收单元152检测到返回操作确认消息的服务器的数量超过当前广域网中服务器数量的二分之一时,确认对该读写请求对应的“选举”结束。
[0185]进一步的,在本发明实施例中,所述装置还可包括:
[0186]第一通知模块16,用于当接收到所述广域网中允许所述客户端进行读写操作的服务器响应所述读写指令返回的操作确认消息时,将所述读写请求的操作成功消息通知给所述广域网中的服务器,所述操作确认消息为所述允许所述客户端进行读写操作的服务器根据所述读写请求对应的实例内容进行读写操作返回的;
[0187]第二通知模块17,用于将针对所述读写请求的请求成功消息通知给所述客户端。
[0188]进一步的,在消息接收单元152接收到该操作确认消息即确认对该读写请求对应的“选举”结束时,还可通过第一通知模块16通知该广域网中的服务器该读写请求操作成功,并通过第二通知模块17向所述客户端发送针对所述读写请求的请求成功消息,以通知客户端该读写请求已成功被接收。具体的,该第一通知模块16和第二通知模块17可在消息接收单元152确认返回操作确认消息的服务器的数量超过当前广域网中服务器数量的一半时,分别通知该广域网中的各服务器以及客户端该“选举”通过消息。
[0189]实施本发明实施例第一服务器可在接收到客户端请求时,向当前广域网中的第二服务器发送与该客户端请求对应的准备请求,根据该第二服务器响应该准备请求返回的响应消息中包含的允许该客户端进行读写操作的服务器的数量以及本地数据中心允许该客户端进行读写操作的服务器的数量,确定是否批准该客户端请求。通过在各个数据中心中部署该第二服务器,实现了将在广域网中传递的部分消息转移到局域网中进行传递,使得广域网中消息的数量大大地减少,并且接收到请求的服务器即第一服务器的负载也被分散到多台服务器,减轻了该第一服务器的负载,提高了系统的稳定性和吞吐率。
[0190]请参见图8,是本发明实施例提供的又一种消息传递装置的结构示意图,本发明实施例的所述装置可具体设置于第二服务器中,具体的,本发明实施例的所述装置包括:请求处理模块21、生成模块22以及发送模块23。其中,
[0191]所述请求处理模块21,用于接收第一服务器发送的携带实例号的准备请求,并向所述第二服务器所在数据中心的服务器发送所述准备请求。
[0192]需要说明的是,该第二服务器可从广域网的每个数据中心内部挑选得出,每个数据中心的第二服务器可以为一个或多个,本发明实施例不做限定。具体的,可选取网卡好,可以和数据中心内部所有服务器连通并且可以连接广域网中其它所有数据中心的服务器作为该第二服务器。
[0193]其中,所述实例号为所述第一服务器在接收到客户端请求如客户端发送的读写请求时为所述读写请求分配的。该实例号在该第一服务器所在的广域网中唯一确定。
[0194]所述生成模块22,用于收集所述数据中心的服务器响应所述准备请求返回的确认回复消息,并根据收集的所述确认回复消息生成响应消息,所述响应消息包括所述数据中心中允许所述客户端进行读写操作的服务器的数量。
[0195]所述发送模块23,用于向所述第一服务器发送所述生成模块22生成的响应消息,以使所述第一服务器根据所述响应消息中允许所述客户端进行读写操作的服务器的数量确定是否批准所述读写请求。
[0196]具体实施例中,请求处理模块21在接收到第一服务器发送的准备请求之后,可将该准备请求转发给该第二服务器所在数据中心的其他服务器,该数据中心的服务器根据该准备消息确定是否接受该请求并回复给第二服务器。若第二服务器接收到该数据中心服务器返回的确认回复消息,即可表明该返回确认回复消息的服务器为允许所述客户端进行读写操作的服务器,生成模块22收集该数据中的服务器响应所述准备请求返回的确认回复消息,并根据收集的确认回复消息生成包含允许所述客户端进行读写操作的服务器的数量和/或标识的响应消息,通过发送模块23向第一服务器发送该响应消息。
[0197]实施本发明实施例第二服务器可在接收到第一服务器根据接收的客户端请求而发送的准备请求时,向该第二服务器所在数据中心的服务器转发该准备请求,并根据该数据中心的服务器响应该准备请求返回的确认回复消息而生成响应消息,将包含允许该客户端进行读写操作的服务器的数量的响应消息发送至第一服务器,以使该第一服务器根据该允许该客户端进行读写操作的服务器的数量确定是否批准该客户端请求,从而实现将在广域网中传递的部分消息转移到局域网中进行传递,减少了广域网中消息传递的数量,并减轻了接收到请求的服务器负载。
[0198]请参见图9,是本发明实施例提供的再一种消息传递装置的结构示意图,具体的,本发明实施例的所述装置包括:请求处理模块21、生成模块22以及发送模块23。其中,
[0199]所述请求处理模块21,用于接收第一服务器发送的携带实例号的准备请求,并向所述第二服务器所在数据中心的服务器发送所述准备请求。
[0200]需要说明的是,该第二服务器可从广域网的每个数据中心内部挑选得出,每个数据中心的第二服务器可以为一个或多个,本发明实施例不做限定。具体的,可选取网卡好,可以和数据中心内部所有服务器连通并且可以连接广域网中其它所有数据中心的服务器作为该第二服务器。
[0201]其中,所述实例号为所述第一服务器在接收到客户端请求如客户端发送的读写请求时为所述读写请求分配的。该实例号在该第一服务器所在的广域网中唯一确定,用于标识该接收到的客户请求。可选的,该准备请求还可包括该第一服务器的标识、该客户端请求对应的实例内容等等。
[0202]所述生成模块22,用于收集所述数据中心的服务器响应所述准备请求返回的确认回复消息,并根据收集的所述确认回复消息生成响应消息,所述响应消息包括所述数据中心中允许所述客户端进行读写操作的服务器的数量。
[0203]所述发送模块23,用于向所述第一服务器发送所述生成模块22生成的响应消息,以使所述第一服务器根据所述响应消息中允许所述客户端进行读写操作的服务器的数量确定是否批准所述读写请求。
[0204]具体实施例中,请求处理模块21在接收到第一服务器发送的准备请求之后,可将该准备请求转发给该第二服务器所在数据中心的其他服务器,该数据中心的服务器根据该准备消息确定是否接受该请求并回复给第二服务器。若第二服务器接收到该数据中心服务器返回的确认回复消息,即可表明该返回确认回复消息的服务器为允许所述客户端进行读写操作的服务器,生成模块22收集该数据中的服务器
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1