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

文档序号:9891391阅读:来源:国知局
务器分布在不同地区的数据中心,每个数据中心内部有一定数量的服务器,负责接收处理相连接的客户端发送的请求。各个数据中心通过广域网进行连接,各个数据中心的部分或者全部服务器可以作为一组来共同执行命令的选举,即确定是否批准该客户端发送的请求。
[0083]请参见图2,是本发明实施例提供的一种消息传递方法的流程示意图,本发明实施例的所述方法可具体应用于第一服务器中,具体的,本发明实施例的所述方法包括:
[0084]SlOl:第一服务器接收客户端发送的读写请求,并为所述读写请求分配用于标识所述读写请求的实例号。
[0085]需要说明的是,该第一服务器可以为第一服务器所在广域网中的任意一台接收到客户端请求的服务器,该服务器在接收到客户端请求时,即可作为该广域网中的“领导者”,并发起对该客户端请求的选举过程,从而确定是否批准该客户端请求。
[0086]具体实施例中,该第一服务器在接收到客户端请求时,即可为该客户端请求分配一个实例号,该实例号在该第一服务器所在的广域网中唯一确定,用于标识该接收到的客户请求。具体的,该客户端请求可具体为客户端发送读请求或写请求,本发明实施例不做限定。
[0087]S102:所述第一服务器向所在广域网中的第二服务器发送携带所述实例号的准备请求。
[0088]S103:所述第一服务器接收所述第二服务器返回的响应消息,所述响应消息包括所述数据中心中允许所述客户端进行读写操作的服务器的数量。
[0089]需要说明的是,该第二服务器可从广域网的每个数据中心内部挑选得出,每个数据中心的第二服务器可以为一个或多个,本发明实施例不做限定。具体的,可选取网卡好,可以和数据中心内部所有服务器连通并且可以连接广域网中其它所有数据中心的服务器作为该第二服务器。
[0090]具体实施例中,该第一服务器在为客户端发送的读写请求分配实例号之后,即可向该第一服务器所在的本地数据中心的各服务器发送该携带配置的实例号的准备请求,并向该第一服务器所在广域网中设置的第二服务器发送该准备请求,以使该第二服务器向该第二服务器所在数据中心的服务器转发该准备请求,并收集该第二服务器所在数据中的服务器响应所述准备请求返回的确认回复消息,以对客户端请求进行选举。
[0091]可选的,该准备请求还可包括该第一服务器的标识、该客户端请求对应的实例内容等信息。
[0092]该第一服务器发送准备请求之后,可接收该第二服务器响应该准备请求返回的响应消息。其中,所述响应消息为所述第二服务器根据所述第二服务器所在数据中心的服务器响应所述准备请求返回的确认回复消息而生成的,该响应消息包括该第二服务器所在数据中心中允许所述客户端进行读写操作的服务器(即返回确认回复消息的服务器)的数量,即“选举”通过的服务器数量。
[0093]S104:所述第一服务器根据所述响应消息中允许所述客户端进行读写操作的服务器的数量,确定是否批准所述读写请求。
[0094]第一服务器在接收到第二服务器响应该准备请求返回的响应消息时,即可根据该响应消息中包含的允许所述客户端进行读写操作的服务器的数量,确定出是否批准该客户端发送的读写请求,即确定该“选举”是否通过。
[0095]具体的,该第一服务器可在统计得到允许所述客户端进行读写操作的服务器的数量超过所在广域网中服务器数量的二分之一,即响应该准备请求的服务器达到多数时,则可表明“选举”通过,并确定批准该读写请求。
[0096]S105:若批准,所述第一服务器根据所述读写请求,向所述允许所述客户端进行读写操作的服务器发送读写指令。
[0097]具体实施例中,该第一服务器在确认批准客户端发送的读写请求之后,即可向所述允许所述客户端进行读写操作的服务器发送读写指令,以使该广域网中允许所述客户端进行读写操作的服务器根据该读写请求对应的实例内容进行读写操作,完成“选举”,并将“选举”结果通知给该广域网中的各服务器以及回复客户端请求成功消息。具体的,该第一服务器发送读写指令的过程可与上述的第一服务器发送准备请求的过程类似,即第一服务器将该读写指令发送给第二服务器,由第二服务器转发至各数据中心的其他服务器,在此不再赘述。
[0098]实施本发明实施例可在第一服务器接收到客户端请求时,向当前广域网中的第二服务器发送与该客户端请求对应的准备请求,根据该第二服务器响应该准备请求返回的响应消息中包含的允许该客户端进行读写操作的服务器的数量,确定是否批准该客户端请求,从而实现将在广域网中传递的部分消息转移到局域网中进行传递,减少了广域网中消息传递的数量,并减轻了接收到请求的服务器的负载。
[0099]请参见图3,是本发明实施例提供的另一种消息传递方法的流程示意图,具体的,本发明实施例的所述方法包括:
[0100]S201:第一服务器接收客户端发送的读写请求,并为所述读写请求分配用于标识所述读写请求的实例号。
[0101]具体实施例中,该第一服务器在接收到客户端请求时,即可为该客户端请求分配一个实例号,该实例号在该第一服务器所在的广域网中唯一确定。具体的,该客户端请求可具体为客户端发送读请求或写请求,本发明实施例不做限定。
[0102]S202:所述第一服务器向所在广域网中的第二服务器发送携带所述实例号的准备请求。
[0103]S203:所述第一服务器接收所述第二服务器返回的响应消息,所述响应消息包括所述数据中心中允许所述客户端进行读写操作的服务器的数量。
[0104]具体实施例中,该第一服务器在为客户端发送的读写请求分配实例号之后,即可向该第一服务器所在的本地数据中心的各服务器发送该携带配置的实例号的准备请求,并向该第一服务器所在广域网中设置的第二服务器发送准备请求,以使该第二服务器向该第二服务器所在数据中心的服务器转发该准备请求,并收集该第二服务器所在数据中的服务器响应所述准备请求返回的确认回复消息,以对客户端请求进行选举,该返回确认回复消息的服务器即为允许所述客户端进行读写操作的服务器。可选的,该准备请求还可包括该第一服务器的标识、该客户端请求对应的实例内容等等。
[0105]第一服务器接收该第二服务器响应该准备请求返回的响应消息,其中,所述响应消息为所述第二服务器根据所述第二服务器所在数据中心的服务器响应所述准备请求返回的确认回复消息而生成的,该响应消息包括该第二服务器所在数据中心中允许所述客户端进行读写操作的服务器的数量,即返回确认回复消息、“选举”通过的服务器数量。具体的,第一服务器通过第二服务器将该准备请求转发给广域网中的各服务器之后,该广域网中的各服务器根据该准备消息及自身可能接收到的其他请求消息来选择是否接受该请求并回复给第二服务器,该返回的确认回复消息即可表明服务器接受了该请求,第二服务器根据接收到的确认回复消息生成包含允许所述客户端进行读写操作的服务器的数量和/标识的响应消息并回复给第一服务器,该第一服务器接收第二服务器返回的响应消息。该第一服务器还接收本地数据中心的服务器返回的确认回复消息。
[0106]S204:所述第一服务器根据所述响应消息,检测所述广域网中允许所述客户端进行读写操作的服务器的数量是否超过所述广域网中服务器数量的二分之一,若超过,所述第一服务器确定批准所述读写请求。
[0107]第一服务器在接收到第二服务器响应该准备请求返回的响应消息和本地数据中心的服务器返回的确认回复消息时,即可根据该响应消息中包含的允许所述客户端进行读写操作的服务器的数量以及该本地数据中心返回确认回复消息的服务器数量,确定出是否批准该客户端发送的读写请求,即确定该“选举”是否通过。
[0108]具体实施例中,该第一服务器可在统计得到允许所述客户端进行读写操作的服务器的数量(包括接收到第二服务器返回的响应消息中包含的允许所述客户端进行读写操作的服务器的数量以及该本地数据中心返回确认回复消息的服务器数量)超过所在广域网中服务器数量的二分之一,即响应该准备请求并返回确认回复消息的服务器达到多数时,则可表明“选举”通过,并确定批准该读写请求。
[0109]S205:所述第一服务器向所述第二服务器发送携带所述读写请求对应的实例内容及所述实例号的读写指令,以使所述第二服务器收集所述数据中心中允许所述客户端进行读写操作的服务器根据所述实例内容进行读写操作返回的操作确认消息。
[0110]具体实施例中,该第一服务器在确认批准客户端发送的读写请求之后,即可向该允许所述客户端进行读写操作的服务器发送读写指令,以使该广域网中允许所述客户端进行读写操作的服务器根据该读写请求对应的实例内容进行读写操作,并收集该允许所述客户端进行读写操作的服务器进行读写操作后返回的操作确认消息。具体的,该第一服务器可向该广域网中的第二服务器发送该读写指令,以使该第二服务器将该读写指令转发给该第二服务器所在数据中心中允许所述客户端进行读写操作的服务器即返回了确认回复消息的服务器,从而使得该允许所述客户端进行读写操作的服务器根据该实例内容进行读写操作。
[0111]S206:所述第一服务器接收所述第二服务器响应所述读写指令返回的所述操作确认消息。
[0112]S207:当接收到所述广域网中允许所述客户端进行读写操作的服务器响应所述读写指令返回的操作确认消息时,所述第一服务器将所述读写请求的操作成功消息通知给所述广域网中的服务器。
[0113]S208:所述第一服务器将针对所述读写请求的请求成功消息通知给所述客户端。
[0114]当该第一服务器接收到所在广域网中允许所述客户端进行读写操作的服务器响应所述读写指令返回的操作确认消息时,即可表明该允许所述客户端进行读写操作的服务器根据该读写请求对应的实例内容完成了读写操作。具体的,该第一服务器可在检测到返回操作确认消息的服务器的数量超过当前广域网中服务器数量的二分之一时,确认对该读写请求对应的“选举”结束。
[0115]进一步的,该第一服务器还可在接收到该操作确认消息即确认对该读写请求对应的“选举”结束时,通知该广域网中的所有服务器该读写请求操作成功,并向所述客户端发送针对所述读写请求的请求成功消息,以通知客户端该读写请求已成功被接收。具体的,该第一服务器可在确认返回操作确认消息的服务器的数量超过当前广域网中服务器数量的一半时,通知该广域网中的各服务器以及客户端该“选举”通过消息。
[0116]实施本发明实施例第一服务器可在接收到客户端请求时,向当前广域网中的第二服务器发送与该客户端请求对应的准备请求,根据该第二服务器响应该准备请求返回的响应消息中包含的允许该客户端进行读写操作的服务器的数量以及本地数据中心允许该客户端进行读写操作的服务器的数量,确定是否批准该客户端请求。通过在各个数据中心中部署该第二服务器,实现了将在广域网中传递的部分消息转移到局域网中进行传递,使得广域网中消息的数量大大地减少,并且接收到请求的服务器即第一服务器的负载也被分散到多台服务器,减轻了该第一服务器的负载,提高了系统的稳定性和吞吐率。
[0117]请参见图4,是本发明实施例提供的又一种消息传递方法的流程示意图,本发明实施例的所述方法具体应用于第二服务器中,具体的,本发明实施例的所述方法包括:
[0118]S301:第二服务器接收第一服务器发送的携带实例号的准备请求,并向所述第二服务器所在数据中心的服务器发送所述准备请求。
[0119]需要说明的是,该第二服务器可从广域网的每个数据中心内部挑选得出,每个数据中心的第二服务器可以为一个或多个,本发明实施例不做限定。具体的,可选取网卡好,可以和数据中心内部所有服务器连通并且可以连接广域网中其它所有数据中心的服务器作为该第二服务器。
[0120]其中,所述实例号为所述第一服务器在接收到客户端请求如客户端发送的读写请求时为所述读写请求分配的。该实例号在该第一服务器所在的广域网中唯一确定,用于标识该接收到的客户请求。可选的,该准备请求还可包括该第一服务器的标识、该客户端请求对应的实例内容等等。
[0121]S302:所述第二服务器收集所述数据中心的服务器响应所述准备请求返回的确认回复消息,并根据收集的所述确认回复消息生成响应消息,所述响应消息包括所述数据中心中允许所述客户端进行读写操作的服务器的数量。
[0122]S303:所述第二服务器向所述第一服务器发送所述响应消息,以使所述第一服务器根据所述响应消息中允许所述客户端进行读写操作的服务器的数量确定是否批准所述读写请求。
[0123]具体实施例中,第二服务器在接收到第一服务器发送的准备请求之后,可将该准备请求转发给该第二服务器所在数据中心的其他服务器,该数据中心的服务器根据该准备消息确定是否接受该请求并回复给第二服务器。若第二服务器接收到该数据中心服务器返回的确认回复消息如ACK(Acknowledgement)消息时,即可表明该返回确认回复消息的服务器为允许所述客户端进行读写操作的服务器,第二服务器收集该数据中的服务器响应所述准备请求返回的确认回复消息,并根据收集的确认回复消息生成包含允许所述客户端进行读写操作的服务器的数量和/或标识的响应消息。进一步的,该第二服务器可根据该准备请求中包含的第一服务器的标识,向所述第一服务器发送该响应消息。
[0124]需要说明的是,该第二服务器生成的响应消息是根据收集到的确认回复消息的数量变化进行更新的,即该第二服务器在每收到一条该数据中心的服务器响应准备请求返回的确认回复消息时,则对响应消息进行更新,比如将该返回确认回复消息的服务器的标识加入该响应消息中,并将该响应消息中记录的允许所述客户端进行读写操作的服务器的数量加一。
[0125]作为一种可选的实施方式,所述第二服务器向所述第一服务器发送所述响应消息可通过检测所述第二服务器所在数据中心中允许所述客户端进行读写操作的服务器的数量是否超过所述数据中心服务器的总数的二分之一;若超过所述数据中心服务器的总数的二分之一,所述第二服务器向所述第一服务器发送所述响应消息。
[0126]作为一种可选的实施方式,所述第二服务器向所述第一服务器发送所述响应消息还可通过检测所述数据中心中允许所述客户端进行读写操作的服务器的数量是否达到所述数据中心服务器的总数;若达到所述数据中心服务器的总数,所述第二服务器向所述第一服务器发送所述响应消息。
[0127]作为一种可选的实施方式,所述第二服务器向所述第一服务器发送所述响应消息还可通过检测当前时间是否超过预设的响应时间,若超过所述预设的响应时间,所述第二服务器向所述第一服务器发送所述响应消息。
[0128]进一步的,该第二服务器在收集数据中心的服务器响应该准备请求返回的确认回复消息,并根据该确认回复消息生成包括所述数据中心中允许所述客户端进行读写操作的服务器的
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1