一种访问方法、装置、计算机设备及计算机存储介质与流程

文档序号:17072928发布日期:2019-03-08 23:28阅读:142来源:国知局
一种访问方法、装置、计算机设备及计算机存储介质与流程

本发明涉及互联网技术领域,尤其涉及一种访问方法、装置、计算机设备及计算机存储介质。



背景技术:

负载均衡中内网用户访问外网时需要根据负载均衡的选路结果来访问真实的服务,而dns(域名系统,domainnamesystem)代理可以根据域名查询dns记录并将记录返回给用户,让用户可以根据dns记录访问真实服务。

现有技术中,负载均衡设备只负责为用户解析出ip地址,不去判断用户从哪里来,也不关心解析的ip地址所属的运营商,这样便会造成所有用户都只能解析到固定的ip地址(internetprotocoladdress,互联网协议地址)上。如图1、图2和图3和,比如用户需要访问百度www.baidu.com,而该域名对应有3个运营商服务器isp1(互联网服务提供商,internetserviceprovider)、isp2、isp3。其中isp1属于电信运营商;isp2属于联通运营商;isp3属于移动运营商;当用户首次访问百度www.baidu.com时,dns会依据该域名解析获得isp1、isp2和isp3这三个运营商服务器对应的ip地址,并将这三个ip地址发送给负载均衡设备,负载均衡设备会随机将其中一个ip地址反馈给用户,并不会区分运营商,用户则依据该ip地址访问运营商isp2对应的服务器s2。当用户再次访问百度www.baidu.com时,由于负载均衡设备中已经缓存有之前的访问记录,因此负载均衡设备会从s1、s2和s3这三个服务器的ip地址中随机发送一个ip地址给用户,此时。用户可能依据ip地址访问运营商isp1对应的服务器s1,这样就会造成每次用户访问的服务器不固定,用户所属运营商和服务器所属的运营商不一致,即用户所属的运营商为移动,但是访问的却是s1或s2对应的非移动运营商的服务器,因此会造成用户上网速率缓慢的问题。



技术实现要素:

本发明实施例提供一种访问方法、装置、计算机设备及计算机存储介质,用以解决现有技术中存在的由于用户所属运营商与访问的业务服务器的运营商不一致,造成用户上网速率缓慢的问题。

第一方面,本发明实施例提供一种访问方法,包括如下步骤:

获取与域名对应的被访问服务器的ip地址及被访问服务器所属的运营商类别;

按照被访问服务器所属的运营商类别将所述被访问服务器的ip地址分区存储在与所述域名对应的域名链表中,生成新的访问缓存记录表;

接收用户发送的待访问域名;

依据所述待访问域名以及用户所属的运营商,从所述新的访问缓存记录表中查找与所述待访问域名相同且与用户所属运营商一致的被访问服务器的ip地址,获得待访问服务器ip地址;

将所述待访问服务器ip地址发送给用户,以使用户根据所述待访问服务器ip地址访问服务器。

可选的,所述获取与域名对应的被访问服务器的ip地址及被访问服务器所属的运营商类别,具体包括:

接收dns域名系统反馈的域名解析结果;

依据所述解析结果获取与域名对应的若干被访问服务器的ip地址以及各被访问服务器所属的运营商类别。

可选的,所述按照被访问服务器运营商的类别将所述被访问服务器的ip地址分区存储在与所述域名对应的域名链表中,形成新的访问缓存记录表,具体包括:

查找原始访问缓存记录表中是否存有与所述域名对应的域名链表,若没有,则创建与所述域名对应的域名链表,按照被访问服务器所属的运营商类别,将所述被访问服务器的ip地址存放在域名链表的运营商链表中,以形成新的访问缓存记录表;若有,则依据被访问服务器所属的运营商类别,将所述被访问服务器的ip地址增添至相对应的运营商链表中,或者利用所述被访问服务器的ip地址替换掉相对应的运营商链表中原有的ip地址。

可选的,依据所述待访问域名以及用户所属的运营商,从所述新的访问缓存记录表中查找与所述待访问域名相同且与用户所属运营商一致的被访问服务器的ip地址,获得待访问服务器ip地址,具体包括:

依据所述待访问的域名查找所述访问记录缓存表中是否存在与待访问域名对应的域名链表,若不存在域名链表,则将待访问域名转发给域名解析系统;若存在域名链表,则获得与该域名对应的运营商链表,并查找所述运营商链表中是否存在与用户所属运营商一致的被访问服务器的ip地址,若不存被访问服务器的ip地址,则将待访问域名转发给域名解析系统,若存在被访问服务器的ip地址,则依据被访问服务器的ip地址获得待访问服务器的ip地址。

第二方面,本发明实施例提供一种访问装置,包括:

第一获取模块,用于获取与域名对应的被访问服务器的ip地址及被访问服务器所属的运营商类别;

生成模块,用于按照被访问服务器所属的运营商类别将所述被访问服务器的ip地址分区存储在与所述域名对应的域名链表中,生成新的访问缓存记录表;

接收模块,用于接收用户发送的待访问域名;

第二获取模块,用于依据所述待访问域名以及用户所属的运营商,从所述新的访问缓存记录表中查找与所述待访问域名相同且与用户所属运营商一致的被访问服务器的ip地址,获得待访问服务器ip地址;

发送模块,用于将所述待访问服务器ip地址发送给用户,以使用户根据所述待访问服务器ip地址访问服务器。

可选的,所述第一获取模块具体用于:接收dns域名系统反馈的域名解析结果;

依据所述解析结果获取与域名对应的若干被访问服务器的ip地址以及各被访问服务器所属的运营商类别。

可选的,所述生成模块具体用于:

查找原始访问缓存记录表中是否存有与所述域名对应的域名链表,若没有,则创建与所述域名对应的域名链表,按照被访问服务器所属的运营商类别,将所述被访问服务器的ip地址存放在域名链表的运营商链表中,以形成新的访问缓存记录表;若有,则依据被访问服务器所属的运营商类别,将所述被访问服务器的ip地址增添至相对应的运营商链表中,或者利用所述被访问服务器的ip地址替换掉相对应的运营商链表中原有的ip地址。

可选的,所述第二获取模块具体用于:

依据所述待访问的域名查找所述访问记录缓存表中是否存在与待访问域名对应的域名链表,若不存在域名链表,则将待访问域名转发给域名解析系统;若存在域名链表,则获得与该域名对应的运营商链表,并查找所述运营商链表中是否存在与用户所属运营商一致的被访问服务器的ip地址,若不存被访问服务器的ip地址,则将待访问域名转发给域名解析系统,若存在被访问服务器的ip地址,则依据被访问服务器的ip地址获得待访问服务器的ip地址。

第三方面,本发明实施例提供一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如下方法步骤:

获取与域名对应的被访问服务器的ip地址及被访问服务器所属的运营商类别;

按照被访问服务器所属的运营商类别将所述被访问服务器的ip地址分区存储在与所述域名对应的域名链表中,生成新的访问缓存记录表;

接收用户发送的待访问域名;

依据所述待访问域名以及用户所属的运营商,从所述新的访问缓存记录表中查找与所述待访问域名相同且与用户所属运营商一致的被访问服务器的ip地址,获得待访问服务器ip地址;

将所述待访问服务器ip地址发送给用户,以使用户根据所述待访问服务器ip地址访问服务器。

第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如下方法步骤:获取与域名对应的被访问服务器的ip地址及被访问服务器所属的运营商类别;

按照被访问服务器所属的运营商类别将所述被访问服务器的ip地址分区存储在与所述域名对应的域名链表中,生成新的访问缓存记录表;

接收用户发送的待访问域名;

依据所述待访问域名以及用户所属的运营商,从所述新的访问缓存记录表中查找与所述待访问域名相同且与用户所属运营商一致的被访问服务器的ip地址,获得待访问服务器ip地址;

将所述待访问服务器ip地址发送给用户,以使用户根据所述待访问服务器ip地址访问服务器。

本发明实施例通过将服务器的ip地址按照所属的运营商的类别来分区存放,当用户再次访问相同的域名时,根据之前的保存记录,则可直接查找到与用户所属运营商一致的服务器的ip地址,保证了用户所属的运营商与被访问服务器的运营商一致,提高了用户的访问速率。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为现有技术中用户、负载均设备和服务器之间的拓扑图;

图2为现有技术中用户访问服务器时的负载均衡设备的处理流程图;

图3为现有技术中用户访问服务器时的时序图;

图4为本发明第一实施访问方法流程图;

图5为本发明第三实施例访问装置结构框图;

图6为本发明第六实施例中用户访问服务器时负载均设备的处理流程图;

图7为本发明第六实施例中负载均衡设备存储dns记录的流程图;

图8为本发明第六实施例中用户访问服务器时的时序图;

图9为本发明第六实施例访问缓存记录表的数据存储结构示意图;

图10为本发明第六实施例更新后的访问缓存记录表的数据存储结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本发明第一实施例提供一种访问方法,如图4所示,包括以下具体步骤:

步骤s101,获取与域名对应的被访问服务器的ip地址及被访问服务器所属的运营商类别;本步骤中,在获取被访问服务器的ip地址和被访问服务器所属的运营商类别时,具体是通过接收dns域名系统反馈的域名解析结果,依据所述解析结果获取与域名对应的若干被访问服务器的ip地址以及各被访问服务器所属的运营商类别。具体的一个域名可以对应有多个被访问服务器,各被访问服务器所属的运营商可以相同,也可以不同,例如百度的域名为:www.baidu.com,则通过dns解析后获得与该域名对应有四个服务器,服务器1、服务器2、服务器3和服务器4,获得这四个服务器所属的运营商类别和ip地址,例如,服务器1所属的运营商为移动,其ip地址为1.1.1.1;服务器2所属的运营商为移动,其ip地址为2.2.2.2;服务器3所属的运营商为联通,其ip地址为3.3.3.3;服务器4所属的运营商为电信,其ip地址为4.4.4.4。

步骤s102,按照被访问服务器所属的运营商类别将所述被访问服务器的ip地址分区存储在与所述域名对应的域名链表中,生成新的访问缓存记录表;具体结合步骤s101,在存储服务器的ip地址时,具体是将服务器1和服务器2的ip地址依次存放在移动对应的运营商链表中,将服务器3的ip地址存放在联通对应的运营商链表中,将服务器4存放在电信对应的运营商链表中。

步骤s103,接收用户发送的待访问域名;

步骤s104,依据所述待访问域名以及用户所属的运营商,从所述新的访问缓存记录表中查找与所述待访问域名相同且与用户所属运营商一致的被访问服务器的ip地址,获得待访问服务器ip地址;具体的,结合步骤s102,在查找待访问的服务器的ip地址时,先找到与待访问域名对应的域名链表,再依据用户所属的运营商类别从域名链表中找到与用户运营商对应的运营商链表,确定运营商链表中的任意一个被访问服务器ip地址的为待访问服务器ip地址;例如用户所属的运营商为移动,当用户访问www.baidu.com时,则首先从访问缓存记录表查找到该域名的链表,然后从该域名的链表中找到移动对应的运营商链表,其中移动运营商对应的链表中存有服务器1的ip地址和服务器2的ip地址,任意选择服务器1的ip地址或服务器2的ip地址为待访问服务器ip地址。

步骤s105,将所述待访问服务器ip地址发送给用户,以使用户根据所述待访问服务器ip地址访问服务器。

本发明实施例中,通过将业务服务器的ip地址按照服务器的运营商类别来分区存放,当用户在后续请求访问业务服务器时,便于将与用户所属运营商一致的业务服务器的ip地址发送给用户,保证用户访问的业务服务器的运营商与用户所属的运营商相同,提高用户的访问速率。

本发明第二实施例提供一种访问方法,包括以下具体步骤:

步骤1、获取与域名对应的被访问服务器的ip地址及被访问服务器所属的运营商类别;

步骤2、查找原始访问缓存记录表中是否存有与所述域名对应的域名链表,若没有,则创建与所述域名对应的域名链表,按照被访问服务器所属的运营商类别,将所述被访问服务器的ip地址存放在域名链表的运营商链表中,以形成新的访问缓存记录表;若有,则依据被访问服务器所属的运营商类别,将所述被访问服务器的ip地址增添至相对应的运营商链表中,或者利用所述被访问服务器的ip地址替换掉相对应的运营商链表中原有的ip地址。

步骤3、接收用户发送的待访问域名;

步骤4、依据所述待访问的域名查找所述访问记录缓存表中是否存在与待访问域名对应的域名链表,若不存在域名链表,则将待访问域名转发给域名解析系统;若存在域名链表,则获得与该域名对应的运营商链表,并查找所述运营商链表中是否存在与用户所属运营商一致的被访问服务器的ip地址,若不存被访问服务器的ip地址,则将待访问域名转发给域名解析系统,若存在被访问服务器的ip地址,则依据被访问服务器的ip地址获得待访问服务器的ip地址。

步骤5、将所述待访问服务器ip地址发送给用户,以使用户根据所述待访问服务器ip地址访问服务器。

本发明第三实施例提供一种访问装置,如图5所示,包括:

第一获取模块1,用于获取与域名对应的被访问服务器的ip地址及被访问服务器所属的运营商类别;在具体实施例过程中,所述第一获取模块具体用于:接收dns域名系统反馈的域名解析结果;依据所述解析结果获取与域名对应的若干被访问服务器的ip地址以及各被访问服务器所属的运营商类别。

生成模块2,用于按照被访问服务器所属的运营商类别将所述被访问服务器的ip地址分区存储在与所述域名对应的域名链表中,生成新的访问缓存记录表;在实施例过程中,生成模块具体用于:查找原始访问缓存记录表中是否存有与所述域名对应的域名链表,若没有,则创建与所述域名对应的域名链表,按照被访问服务器所属的运营商类别,将所述被访问服务器的ip地址存放在域名链表的运营商链表中,以形成新的访问缓存记录表;若有,则依据被访问服务器所属的运营商类别,将所述被访问服务器的ip地址增添至相对应的运营商链表中,或者利用所述被访问服务器的ip地址替换掉相对应的运营商链表中原有的ip地址。

接收模块3,用于接收用户发送的待访问域名;

第二获取模块4,用于依据所述待访问域名以及用户所属的运营商,从所述新的访问缓存记录表中查找与所述待访问域名相同且与用户所属运营商一致的被访问服务器的ip地址,获得待访问服务器ip地址;在实施例过程中,所述第二获取模块具体用于:依据所述待访问的域名查找所述访问记录缓存表中是否存在与待访问域名对应的域名链表,若不存在域名链表,则将待访问域名转发给域名解析系统;若存在域名链表,则获得与该域名对应的运营商链表,并查找所述运营商链表中是否存在与用户所属运营商一致的被访问服务器的ip地址,若不存被访问服务器的ip地址,则将待访问域名转发给域名解析系统,若存在被访问服务器的ip地址,则依据被访问服务器的ip地址获得待访问服务器的ip地址。

发送模块5,用于将所述待访问服务器ip地址发送给用户,以使用户根据所述待访问服务器ip地址访问服务器。

本发明实施例中,按照服务器的运营商类别,利用生成模块来分区存放业务服务器的ip地址,以生成访问记录缓存表,当用户在后续请求访问业务服务器时,可直接查找访问记录缓存表,找到与用户所属运营商一致的服务器的ip地址,再利用发送模块将与用户所属运营商一致的业务服务器的ip地址发送给用户,以使用户访问该业务服务器,保证了用户访问的业务服务器的运营商与用户所属的运营商相同,提高用户的访问速率。

本发明第四实施例,提供一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如下方法步骤:步骤一、获取与域名对应的被访问服务器的ip地址及被访问服务器所属的运营商类别;

步骤二、按照被访问服务器所属的运营商类别将所述被访问服务器的ip地址分区存储在与所述域名对应的域名链表中,生成新的访问缓存记录表;

步骤三、接收用户发送的待访问域名;

步骤四、依据所述待访问域名以及用户所属的运营商,从所述新的访问缓存记录表中查找与所述待访问域名相同且与用户所属运营商一致的被访问服务器的ip地址,获得待访问服务器ip地址;

步骤五、将所述待访问服务器ip地址发送给用户,以使用户根据所述待访问服务器ip地址访问服务器。

本发明第五实施例,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如下方法步骤:

步骤一、获取与域名对应的被访问服务器的ip地址及被访问服务器所属的运营商类别;

步骤二、按照被访问服务器所属的运营商类别将所述被访问服务器的ip地址分区存储在与所述域名对应的域名链表中,生成新的访问缓存记录表;

步骤三、接收用户发送的待访问域名;

步骤四、依据所述待访问域名以及用户所属的运营商,从所述新的访问缓存记录表中查找与所述待访问域名相同且与用户所属运营商一致的被访问服务器的ip地址,获得待访问服务器ip地址;

步骤五、将所述待访问服务器ip地址发送给用户,以使用户根据所述待访问服务器ip地址访问服务器。

本发明第六实施例,提供一种访问系统,结合图6和图8,包括负载均衡设备、dns服务器以及业务服务器;具体访问过程如下:

负载均和设备接收信息并判断是否为用户发送的请求报文:

若是,根据负载均衡选路算法选路进行选路,其中具体包括,判断负载均衡设备内是否存储有与用户请求报文中的域名相同的域名,若不存在,则将用户请求报文中的域名转发给dns服务器,若存在,则查找该域名对应的链表中是否存储有与用户所属运营商对应的记录,若没有则将用户请求报文中的域名转发给dns服务器,若有,根据负载均衡设备中存储的dns记录组装响应报文,并将响应报文发送给内网用户。

若不是,则解析服务器响应报文,并缓存dns记录。

本实施中,结合图7,负载均衡设备在解析服务器响应报文,并缓存dns记录时,具体包括如下步骤:

查询域名是否存在,若不存在,则将记录信息保存到运营商对应的链表中;若存在,则判定运营商对应的链表是否为空,若为空,则将记录信息保存到此链表,若不为空,则判定该链表中的记录与解析获得的dns记录是否相同,若不同,则利用解析获得dns记录对链表中的记录进行替换。

具体的,结合图9和图10,在将dns记录信息保存到运营商对应的链表中的时候,具体形式为:域名domain对应hash桶,每个域名对应一指针数组,其中包含多个运营商isp,每个运营商对应一个链表存放多个资源记录,即用于存放ip地址,例如rr1。其中,hash为一种存放数据的数据结构。

在实际保存过程中包括如下方式:

1)域名为空时:

当负载均衡设备收到dns响应报文后,解析到的域名为domain4,dns记录为rr10(ip地址),对应的运营商为isp1。缓存时,如图9所示,domain4对应的hash桶为空,则直接插入domain4中,且dns记录rr10,放到isp1对应的链表中,完成信息存储,如图10所示。

2)域名不为空,对应运营商为空时:

当负载均衡设备收到dns响应报文后,解析到的域名为domain4,dns记录为rr11,对应的运营商为isp3。缓存时,如图10所示,domain4对应的hash桶不为空,isp2对应的链表为空,将rr11放到isp3对应的链表中。

3)域名不为空,对应的运营商也不为空,但dns记录值不同时:

当负载均衡设备收到dns响应报文后,解析到的域名为domain1,dns记录为rr12,对应的运营商为isp1。缓存时,如图9所示,domain4对应的hash桶不为空,isp1对应的链表也不为空,但是isp1将isp1链表摘除且释放内存,将rr12放到isp1对应的链表中,最终结果如图10所示。

本发明实施例,通过依据与运营商的对应关系来保存dns记录,这样在查找缓存时,可以通过就近查询,以查找与用户所属运营商一致的dns记录。这样就保证了用户访问服务器时,优先选择就近的与用户所属运营商一致的服务器进行访问,提高了用户访问速度。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1