一种出口映射自动切换的方法及系统的制作方法
【技术领域】
[0001]本发明属于网络通信领域,具体涉及一种跨DC网络通信出口映射自动切换的方法及系统。
【背景技术】
[0002]在网络通信领域中,应用端需要在多个DC间进行通信及数据交互。但是由于DC间网络不稳定,经常会出现应用端之间暂时无法通信、数据交互延时等问题,这种情况有时候会持续几个小时甚至几天时间。为了解决这个问题,通常的方法是为本地应用端配置多个出口映射,各个出口映射到远程应用端的网络路径不同,当某个出口映射网络不通或状态不好时,通过手动切换到另一个网络状态更好的出口映射,从而保障网络通信,减少数据交互的延时。
[0003]通常的解决方法存在以下两个问题:一是如何判断出口映射的当前网络状态,如果判断错误,则可能会切换到网络状态更加不好的出口映射上,导致更加严重的拥堵;二是如何进行出口映射切换,一般情况下是在出口映射网络状态不好而引起相关警报时,管理人员进行手动切换,但是这种方式不仅费时费力,还可能引起一些人为操作错误的情况出现。
[0004]在这些问题上,专利“通信信道自动切换的方法”(如中国申请:CN201410095295.5)做了相关研宄,其提出的方法主要为:每隔固定时间(比如一分钟)对各通信信道收发数据测试包(心跳包),根据收发时间和收发数据量计算每个通信信道的传输速率,根据计算出的传输速率(即评估结果)确定当前最优通信信道,等待通信信道切换。该发明提出的方法在一定程度上解决了数据传输管道状态判优的问题。然而此方法所计算的传输速率会同时受到数据发送管道和接收管道的影响,比如:当数据发送管道状态很好时,可能会由于接收管道状态不好,致使所计算的传输速率下降,从而导致对管道状态判断错误,引起错误的切换。
【发明内容】
[0005]为了解决上述问题,本发明目的是,提出一种出口映射自动切换的方法及系统。旨在实现跨DC通信及数据交互时,应用端可以在当前正在使用的出口映射网络状态不好时,及时自动切换到网络状态最优的出口映射,以显著提高应用端之间在跨DC通信及数据交互时的实时性、可靠性、一致性等。
[0006]本发明的技术方案是:一种出口映射自动切换的方法,本地应用端通过不同的出口映射以相同频率向远程应用端发送网络状态探测消息,经过远程应用端响应后,本地应用端接收远程应用端的统计结果,进而判断状态最优的出口映射,并自动使用此出口映射进行消息传送,具体包括以下步骤:
[0007]步骤一、为需要跨数据中心DC访问的本地应用端创建从本地DC到远程DC的多个出口映射,各个出口映射到远程应用端的网络路径不同;
[0008]步骤二、本地应用端请求从本地DC到远程DC的所有出口映射,在取得所有出口映射后,为各个出口映射创建出口映射网络状态探测器(status detector);
[0009]步骤三、本地应用端的出口映射网络状态探测器启动出口映射网络状态探测线程,生成网络状态探测消息,并通知本地应用端的消息传送器(message connect1n)向远程应用端发送网络状态探测消息;
[0010]步骤四、消息传送器(message sender)接收网络状态探测消息,同时还接收正常通信交互消息,再分别使用消息交互管道(message connect1n)和出口映射网络状态探测管道(status detect connect1n)传送消息,具体来说:使用消息交互管道连接到当前正在使用的出口映射传送正常通信交互消息,保证正常通信,使用出口映射网络状态探测管道连接到各个出口映射以相同频率传送网络状态探测消息,既保证网络状态探测消息的传送又防止对正常通信的干扰;
[0011]步骤五、远程应用端统计通过各个出口映射接收到的网络状态探测消息量,每隔一个统计周期将统计结果通过所有出口映射返回给本地应用端,以保证本地应用端能接收到统计结果,防止因部分出口映射状态欠佳而无法接收到或者不能及时接收到统计结果;
[0012]步骤六、本地应用端收集到各个出口映射的统计结果,判断哪个出口映射状态最优,具体步骤为:
[0013]步骤1:本地应用端比较接收到的统计结果,如果一个统计周期内远程应用端通过某个出口映射接收到的网络状态探测消息量最大,则其为状态优的出口映射;
[0014]步骤2:本地应用端比较一个统计周期内远程应用端通过当前正在使用的出口映射与通过步骤I中状态优的出口映射接收到的网络状态探测消息量,并设置比较量之间的灵敏度阀值,如果一个统计周期内远程应用端通过当前正在使用的出口映射接收到的网络状态探测消息量与通过步骤I中状态优的出口映射接收到的网络状态探测消息量差值的绝对值小于或等于灵敏度阀值,则状态最优的出口映射仍为当前正在使用的出口映射,反之,状态最优的出口映射则为步骤I中状态优的出口映射;
[0015]步骤七、本地应用端自动使用状态最优的出口映射,具体为:如果判断状态最优的出口映射为步骤六的步骤I中状态优的出口映射,则通知消息传送器切换消息交互管道连接到此出口映射,如果判断状态最优的出口映射仍为当前正在使用的出口映射,则不发出切换出口映射通知,消息交互管道继续连接到当前正在使用的出口映射,如此不需要切换出口映射,从而减少频繁切换出口映射带来的时间、资源损耗。
[0016]一种出口映射自动切换的系统,包括本地应用端和远程应用端。
[0017]所述本地应用端用于通过不同的出口映射以相同频率向远程应用端发送网络状态探测消息,经过远程应用端响应后,所述本地应用端接收远程应用端的统计结果,进而判断状态最优的出口映射,并自动使用此出口映射进行消息传送。
[0018]所述本地应用端包括出口映射管理器(host mapping manager)、出口映射网络状态收集器(status collector)、出口映射网络状态探测器(status detector)、消息传送器(message sender)、出口映射网络状态探测管道(status detect connect1n)、消息交互管道(message connect1n)、出口映射网络状态探测消息响应接收器(status detectresponse receive handler);
[0019]所述出口映射管理器(host mapping manager),用于管理需要跨数据中心DC访问的本地应用端从本地DC到远程DC的多个出口映射,负责新增、更新、获取及序列化需要跨数据中心DC访问的本地应用端从本地DC到远程DC的多个出口映射;
[0020]所述出口映射网络状态收集器(status collector),用于向出口映射管理器(host mapping manager)请求从本地DC到远程DC的所有出口映射,在取得所有出口映射后,为各个出口映射创建出口映射网络状态探测器(status detector),还用于更新各个出口映射网络状态,并根据一种出口映射自动切换的方法中步骤六判断哪个出口映射网络状态最优,如果判断状态最优的出口映射为上述步骤六的步骤I中状态优的出口映射,则通知消息传送器(message sender)切换消息交互管道(message connect1n)连接到此出口映射,如果判断状态最优的出口映射仍为当前正在使用的出口映射,则不发出切换出口映射通知,消息交互管道(message connect1n)继续连接到当前正在使用的出口映射;
[0021]所述出口映射网络状态探测器(status detector),用于启动各个出口映射的探测线程,且生成网络状态探测消息,并通知消息传送器(message sender)发送网络状态探测消息;
[0022]所述消息传送器(message sender),用于同时接收正常通信交互消息和网络状态探测消息,再分别使用消息交互管道(message connect1n)传送正常通信交互消息,使用出口映射网络状态探测管道(status detect connect1n)传送网络状态探测消息。
[0023]所述出口映射网络状态探测管道(status detect connect1n),用于出口映射状态探测时,连接到多个出口映射,以相同频率向远程应用端发送网络状态探测消息。
[0024]所述消息交互管道(message connect1n),用于正常通信或者出口映射状态探测时,连接到当前正在使用的出口映射,发送并接收与远程应用端的正常通信交互消息;
[0025]所述出口映射网络状态探测消息响应接收器(status detect response receivehandler),用于接收远程应用端返回的网络状态探测统计结果,并通知出口映射网络状态收集器(status collector)更新出口映射网络状态。
[0026]所述远程应用端包括出口映射网络状态探测消息响应器(status detectresponse handler)。
[0027]所述出口映射网络状态探测消息响应器(status detect response handler),用于接收本地应用端发送来的网络状态探测消息,统计通过各个出口映射接收到的网络状态探测消息量,每隔一个统计周期将统计结果通过所有出口映射返