流量迁移方法、服务器、客户端、电子设备及存储介质与流程
未命名
08-15
阅读:131
评论:0
1.本公开涉及人工智能领域,具体涉及云计算、内容分发网络(contentdeliverynetwork;cdn)等技术,可应用在智能云场景下。尤其涉及一种流量迁移方法、服务器、客户端、电子设备及存储介质。背景技术:
::2.基于cdn的业务访问,是当前互联网中一种非常常见的技术。3.在基于cdn的业务请求中,客户端获取服务端的代理服务器的地址,与代理服务器建立超文本传输协议(hypertexttransferprotocol,http)连接,发起携带请求的业务对应的域名的业务请求。代理服务器基于请求的业务对应的域名定位相应的cdn真实服务器(realserver;rs),由cdnrs获取相应的业务数据,并返回给代理服务器,再由代理服务器响应客户端。技术实现要素:4.本公开提供了一种流量迁移方法、服务器、客户端、电子设备及存储介质。5.根据本公开的一方面,提供了一种流量迁移方法,包括:6.基于接收到的客户端的携带域名的业务访问请求,向对应的源内容分发网络真实服务器进行业务请求;7.若所述源内容分发网络真实服务器确定要迁移所述域名对应的业务流量时,接收所述源内容分发网络真实服务器返回的目标代理服务器的地址;所述目标代理服务器为所述源内容分发网络真实服务器确定的要迁移到的目标内容分发网络真实服务器对应的代理服务器;8.基于所述目标代理服务器的地址,将所述客户端的所述业务访问请求对应的流量,迁移至所述目标代理服务器,以由所述目标内容分发网络真实服务器继续为所述客户端提供所述业务访问请求的业务数据。9.根据本公开的另一方面,提供了一种流量迁移方法,包括:10.向源代理服务器发送携带域名的业务访问请求;11.接收所述源代理服务器返回的目标代理服务器的地址,所述目标代理服务器为源内容分发网络真实服务器确定要迁移所述域名对应的业务流量时,确定的要迁移到的目标内容分发网络真实服务器对应的代理服务器;12.基于所述目标代理服务器的地址,与所述目标代理服务器建立业务连接,以由所述目标内容分发网络真实服务器继续提供所述业务访问请求的业务数据。13.根据本公开的再一方面,提供了一种源代理服务器,包括:14.业务请求模块,用于基于接收到的客户端的携带域名的业务访问请求,向对应的源内容分发网络真实服务器进行业务请求;15.接收模块,用于若所述源内容分发网络真实服务器确定要迁移所述域名对应的业务流量时,接收所述源内容分发网络真实服务器返回的目标代理服务器的地址;所述目标代理服务器为所述源内容分发网络真实服务器确定的要迁移到的目标内容分发网络真实服务器对应的代理服务器;16.迁移模块,用于基于所述目标代理服务器的地址,将所述客户端的所述业务访问请求对应的流量,迁移至所述目标代理服务器,以由所述目标内容分发网络真实服务器继续为所述客户端提供所述业务访问请求的业务数据。17.根据本公开的又一方面,提供了一种客户端,包括:18.发送模块,用于向源代理服务器发送携带域名的业务访问请求;19.接收模块,用于接收所述源代理服务器返回的目标代理服务器的地址,所述目标代理服务器为源内容分发网络真实服务器确定要迁移所述域名对应的业务流量时,确定的要迁移到的目标内容分发网络真实服务器对应的代理服务器;20.连接建立模块,用于基于所述目标代理服务器的地址,与所述目标代理服务器建立业务连接,以由所述目标内容分发网络真实服务器继续提供所述业务访问请求的业务数据。21.根据本公开的再另一方面,提供了一种电子设备,包括:22.至少一个处理器;以及23.与所述至少一个处理器通信连接的存储器;其中,24.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方面和任一可能的实现方式的方法。25.根据本公开的再又一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如上所述的方面和任一可能的实现方式的方法。26.根据本公开的又另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如上所述的方面和任一可能的实现方式的方法。27.根据本公开的技术,能够有效地支持服务器变化的场景下,流量的平滑迁移。28.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。附图说明29.附图用于更好地理解本方案,不构成对本公开的限定。其中:30.图1是根据本公开第一实施例的示意图;31.图2是本公开提供的一种流量迁移的架构图;32.图3是根据本公开第二实施例的示意图;33.图4是根据本公开第三实施例的示意图;34.图5是根据本公开第四实施例的示意图;35.图6是根据本公开第五实施例的示意图;36.图7是根据本公开第六实施例的示意图;37.图8是用来实现本公开实施例的方法的电子设备的框图。具体实施方式38.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。39.显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。40.需要说明的是,本公开实施例中所涉及的终端设备可以包括但不限于手机、个人数字助理(personaldigitalassistant,pda)、无线手持设备、平板电脑(tabletcomputer)等智能设备;显示设备可以包括但不限于个人电脑、电视等具有显示功能的设备。41.另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。42.随着互联网工程任务组(theinternetengineeringtaskforce;ietf)颁布了超文本传输协议(hypertexttransferprotocol;http)/3的征求意见稿(requestforcomments;rfc)文档,作为超文本传输协议的第三个大版本,逐步引导了各类快速用户数据报协议(userdatagramprotocol;udp)网络连接(quickudpinternetconnections;quic)版本走向统一。43.目前,成本降低、服务质量不下降、端侧无改造,是各类cdn降本方案的目标,也是衡量方案价值的重要指标。例如,现有的降本方案中,可以支持客户端的互联网协议(internetprotocol;ip)地址(address)发生变化,服务端地址不变场景下的连接迁移,但是,现有技术中,还不存在能支持服务器侧的ip发生变化引发的连接迁移。44.图1是根据本公开第一实施例的示意图;如图1所示,本实施例提供一种流量迁移方法,应用在源cdnrs对应的源代理服务器上。具体可以包括如下步骤:45.s101、基于接收到的客户端的携带域名的业务访问请求,向对应的源cdnrs进行业务请求;46.s102、若源cdnrs确定要迁移域名对应的业务流量时,接收源cdnrs返回的目标代理服务器的地址;目标代理服务器为源cdnrs确定的要迁移到的目标cdnrs对应的代理服务器;47.s103、基于目标代理服务器的地址,将客户端的业务访问请求对应的流量,迁移至目标代理服务器,以由目标cdnrs继续为客户端提供业务访问请求的业务数据。48.例如,图2是本公开提供的一种流量迁移的架构图。如图2所示,包括客户端,源代理服务器、源cdnrs、目标代理服务器以及目标cdnrs。实际应用场景中,源代理服务器可以与多个cdnrs连接,作为多个cdnrs的反向代理服务器,为多个cdnrs提供服务。图2中仅示出当前的客户端所发起的业务访问请求对应的源cdnrs。同理,目标代理服务器侧也可以作为多个cdnrs的反向代理服务器,为多个cdnrs提供服务,图2中也仅示出本公开实施例中相关的一个,即目标cdnrs。49.本公开实施例的场景中,代理服务器提供的是反向代理的功能,所以源代理服务器也可以称为源反向代理服务器、目标代理服务器也可以称为目标反向代理服务器。例如,源代理服务器和目标代理服务器,可以采用nginx来实现。50.本实施例的流量迁移方法,可以应用在第三版超文本传输协议(hypertexttransferprotocol;http)即http/3的网络传输中,所以客户端也可以称为http/3客户端。51.参考图2所示的架构,客户端可以先发起携带域名的业务访问请求,到源代理服务器,源代理服务器可以基于该域名的业务访问请求,通过解析域名,获取相应的源cdnrs的地址,并向对应的源cdnrs进行业务请求,由源cdnrs提供业务数据。52.但是,若源cdnrs确定要迁移域名对应的业务流量时,源cdnrs可以基于预设的迁移规则,查询并确定可以迁移到的目标cdnrs,进一步确定要迁移到的目标cdnrs对应的目标代理服务器的地址,并返回给源代理服务器。53.进一步地,源代理服务器可以基于目标代理服务器的地址,将客户端的业务访问请求对应的流量,迁移至目标代理服务器,以由目标cdnrs继续为客户端提供该业务访问请求的业务数据,可以实现由源cdnrs为客户端提供业务服务,迁移到由目标cdnrs为客户端人提供服务。且全程不需要客户端对应的用户参与,可以在用户无感知的情况下,实现流量的平滑迁移,且能够有效地确保流量迁移过程中业务服务的稳定性。54.整个过程中,对用户而言,仅在发起业务访问请求时是感知的,其他操作对用户都是不感知的,用户体验非常好。55.本实施例的技术方案中,每个cdnrs都可以获取到所有cdnrs上的信息,可以适用于任意的cdnrs服务器迁移的场景,配置相应的迁移规则即可。迁移规则可以由cdnrs的内容提供商基于实际需求来设置的。例如,迁移规则可以限定将业务的流量由成本较高的位于中心的源cdnrs迁移到成本较低的位于边缘的目标cdnrs上,以有效地降本;也可以限定将业务的流量由负载更高的源cdnrs迁移到负载更低的目标cdnrs上,以确保服务的稳定性和可靠性。还可以限定将业务的流量由距离客户端位置较远的源cdnrs迁移到距离客户端位置较近的目标cdnrs上,以进一步加快服务的响应,提高服务质量。实际应用中,还存在其他需要切换cdnrs的其他场景,在此不再一一举例赘述。56.本实施例的流量迁移的方法,通过采用上述技术方案,可以弥补现有技术的不足,提供一种能够实现服务器发生改变时,流量平滑迁移的技术方案。且能够有效地保证迁移过程中,业务服务的稳定性与可靠性;同时整个流量迁移过程,对用户是不感知的,不仅能够有效地确保服务质量,同时还能够有效地提高用户的使用体验,实用性非常强。57.图3是根据本公开第二实施例的示意图;本实施例提供一种流量迁移的方法,在上述图1所示实施例的技术方案的基础上,进一步更加详细地描述本公开的技术方案。如图3所示,本实施例的流量迁移的方法,具体可以包括如下步骤:58.s301、源代理服务器接收客户端发送的携带域名的业务访问请求;59.具体地,在客户端一侧,获取业务访问请求对应的域名,并进行域名解析,获取到对应的源代理服务器的地址,并向该源代理服务发送携带域名的业务访问请求。60.s302、源代理服务器基于业务访问请求的域名,定位相应的源cdnrs,并向该源cdnrs发送该业务访问请求;61.也可以说是该源代理服务器向该源cdnrs发起反向代理请求,从该源代理服务器中获取该业务访问请求的业务数据,以响应客户端的业务访问请求。62.具体地,在源cdnrs侧,源cdnrs接收到业务访问请求时,可以先检测是否需要迁移该业务访问请求的流量。63.例如,在cdnrs侧,可以预先配置cdnrs调度信息库,该cdnrs调度信息库中可以包括所有cdnrs中各个cdnrs的能够支持的服务、各个cdnrs的性能参数、各个cdnrs的实时负载、以及各cdnrs的部署位置信息、各cdnrs提供服务的成本信息、以及各cdnrs对应的代理服务器的地址等。其中性能参数可以包括服务质量等指标。其中各cdnrs的成本可以与部署位置相关,例如中心位置的cdnrs的服务成本要高于边缘位置的cdnrs的服务成本。64.应用时,源cdnrs可以检测当前客户端是否同意迁移所请求的业务的流量;若同意,源cdnrs可以基于预先配置的迁移规则,查询cdnrs调度信息库,从cdnrs调度信息库中查询并获取符合要求的、可以调度到的目标cdnrs,进一步获取目标cdnrs的目标代理服务器地址。65.例如,本实施例的迁移规则,可以基于业务的性能参数要求、迁移时的负载要求、成本要求等中的至少一个来配置,在此不做限定。66.若源cdnrs检测并确定当前客户端不同意迁移所请求的业务的流量,此时,源cdnrs直接向源代理服务器返回业务访问请求对应的业务数据即可。67.s303、若源cdnrs确定要迁移域名对应的业务流量时,源代理服务器接收源cdnrs返回的目标代理服务器的地址;68.s304、源代理服务器接收源cdnrs返回的第一业务数据;69.本实施例的技术方案,可以支持直播、点播以及文件下载等应用场景。用户进行一次业务请求,可以获取到流式的业务数据响应。例如,用户在请求直播或者下载时,可以先获取到初次播放或者下载的业务数据,即本实施例的第一业务数据。70.步骤s303和s304可以没有先后顺序关系,可以同时执行。71.s305、源代理服务器基于目标代理服务器的地址,向目标代理服务器发送协议栈迁移请求,该协议栈迁移请求中携带当前的源代理服务器与客户端之间的连接信息以及待迁移的数据信息,以指示目标代理服务器恢复与客户端之间的连接的协议栈,并基于待迁移的数据信息,向目标cdnrs进行业务请求;72.本实施例的源代理服务器与客户端之间的连接信息可以包括:源代理服务器与客户端之间的quic连接信息;该quic连接信息可以包括连接id、pn、加密、流信息等。73.待迁移的数据信息可以包括业务访问请求对应的统一资源定位符(uniformresourcelocator;url)、和源cdnrs已提供的业务数据的截止位置信息。该截止位置信息可以为时间、大小等任意的形式,能够标识源cdnrs已提供的的业务数据的截止位置即可。74.其中源代理服务器与客户端之间的quic连接信息和待迁移的数据信息,可以一起统称为连接迁移的数据结构。基于上述连接迁移的数据结构,可以实现在目标代理服务器侧准确地恢复业务请求的quic连接信息,以及恢复客户端对目标cdnrs的业务请求。75.由于本实施例的目的是要实现服务器的迁移,为了保证业务流量的平滑迁移,所以需要预先在要迁移到的目标代理服务器侧恢复出与该客户端的协议栈,以便于后续与该客户端建立连接后,可以快速响应业务数据。同时,该目标代理服务器也需要预先基于待迁移的数据信息,向目标cdnrs进行业务请求,能够告知该目标cdnrs源cdnrs已经提供的业务数据的数据位置,该目标cdnrs仅提供该数据位置之后的业务数据即可。当然,目标代理服务器基于待迁移的数据信息,向目标cdnrs进行业务请求也是一个准备操作,此时客户端还未与目标代理器建立连接。76.s306、源代理服务器向客户端返回目标代理服务器的地址,以供客户端基于目标代理服务器的地址,与目标代理服务器建立业务连接,以由目标cdnrs继续为客户端提供业务访问请求的业务数据;77.本实施例中,步骤s305和步骤s306为上述图1所示实施例的步骤s103的两个方面。78.也就是说,源代理服务器在进行流量迁移时,一方面要让目标cdnrs侧的目标代理服务器能够提前建立与客户端的quic连接信息,同时要基于待迁移的数据信息,能够完成目标代理服务器对目标cdnrs的反向代理,以为客服端提供准确地业务服务做好准备工作。另一方面,源代理服务器还要返回给客户端目标代理服务器的地址,以供客户端基于目标代理服务器的地址,与目标代理服务器建立业务连接。通过采用上述两方面的步骤,可以有效地确保流量迁移的准确执行。79.例如,本实施例中,源代理服务器可以向客户端返回安全传输层协议(transportlayersecurity;tls)响应,在tls响应中将目标代理服务器的地址作为preferred_address参数,返回给客户端;以供客户端基于该目标代理服务器地址,与目标代理服务器建立业务连接,以由目标cdnrs继续提供业务访问请求的业务数据。80.本实施例中,可以采用http/3连接迁移rfc协议约定preferred_address参数,详细可以参阅rfc9000,第9节。采用该步骤,可以准确、高效地将目标代理服务器的地址传输给客户端。81.s307、源代理服务器向客户端返回第一业务数据;82.客户端接收到源代理服务器的tls响应时,才表示tls握手完成,连接建立,此时才能够通过建立的连接接收源代理服务器返回的第一业务数据。83.本实施例中的上述方案中,即使在源cdnrs确定要迁移域名对应的业务流量时,也向源代理服务器返回第一业务数据,并由源代理服务器向客户端返回第一业务数据,以响应业务访问请求。这是因为源代理服务器向目标代理服务器发送协议栈迁移请求,目标代理服务器恢复协议栈以及向目标cdnrs进行业务请求都需要时间;而且源代理服务器向客户端返回目标代理服务器的地址,由客户端基于目标代理服务器的地址,与目标代理服务器建立业务连接,也都需要时间。所以,可以先基于源cdnrs的响应第一业务数据,向用户提供业务服务。然后等目标代理服务器恢复协议栈,以及目标代理服务器基于待迁移的数据信息,向目标cdnrs进行了反向代理请求之后,且客户端与目标代理服务器建立连接,此时可以认为迁移连接建立完成,再由目标cdnrs通过目标代理服务器向客户端提供业务服务。这样,可以实现流量的平滑迁移,避免直接利用迁移后的目标cdnrs提供业务服务,延时过大,用户体验不好的情况。84.当然实际应用中,源代理服务器也可以不向客户端返回第一业务数据,此时对应的待迁移的数据信息中的数据位置为业务数据的起始位置。即业务数据全部迁移到由目标cdnrs来提供,但是该种处理方式,会存在较长的时延。85.本实施例的流量迁移的方法,通过采用上述技术方案,可以弥补现有技术的不足,提供一种能够支持服务器地址发生改变的流量平滑迁移。且能够有效地保证迁移过程中,服务的稳定性与可靠性;同时整个流量迁移过程,对用户是不感知的,不仅能够有效地确保服务质量,同时还能够有效地提高用户的使用体验,实用性非常强。86.图4是根据本公开第三实施例的示意图;本实施例提供一种流量迁移的方法,应用在客户端侧,具体可以包括如下步骤:87.s401、向源代理服务器发送携带域名的业务访问请求;88.在http/3场景中,该步骤相当于一个http/3的握手连接。89.s402、接收源代理服务器返回的目标代理服务器的地址,该目标代理服务器为源cdnrs确定要迁移域名对应的业务流量时,确定的要迁移到的目标cdnrs对应的代理服务器;90.s403、基于目标代理服务器的地址,与目标代理服务器建立业务连接,以由目标cdnrs继续提供业务访问请求的业务数据。91.实际应用中,客户端可以基于域名解析的结果,向源代理服务器发送携带域名的业务访问请求。而源代理服务器可以对域名解析,定位到相应的源cdnrs,以向源cdnrs进行反向代理,获取业务访问请求对应的业务数据。而源cdnrs此时可以检测是否需要迁移该域名对应的业务流量;若需要,查询并获取要迁移到的目标cdnrs,并进一步获取目标cdnrs对应的目标代理服务器的地址;并返回给目标代理服务器。上述过程可以参考上述相关实施例的记载,在此不再赘述。92.通过该步骤s403,客户端可以与目标代理服务器建立业务连接,实现为客户端提供业务服务的流量从源cdnrs平滑地迁移到目标cdnrs。93.本实施例与上述图1所示实施例的区别仅在于:上述图1在源cdnrs侧描述本公开的技术方案。而本实施例在客户端侧描述本公开的技术方案,具体实现原理相同,详细亦可以参考上述图1所示实施例的记载,在此不再赘述。94.本实施例的流量迁移的方法,通过采用上述技术方案,可以弥补现有技术的不足,提供一种能够实现服务器发生改变时,流量平滑迁移的技术方案。且能够有效地保证迁移过程中,业务服务的稳定性与可靠性;同时整个流量迁移过程,对用户是不感知的,不仅能够有效地确保服务质量,同时还能够有效地提高用户的使用体验,实用性非常强。95.图5是根据本公开第四实施例的示意图;本实施例提供一种流量迁移的方法,在上述图1所示实施例的技术方案的基础上,进一步更加详细地描述本公开的技术方案。如图3所示,本实施例的流量迁移的方法,具体可以包括如下步骤:96.s501、客户端向源代理服务器发送携带域名的业务访问请求;97.源代理服务器接收到该域名的业务访问请求所进行的处理可以参考上述图3所示实施例的记载,在此不再赘述。98.s502、客户端接收源代理服务器返回的tls响应,tls响应中将目标代理服务器的地址作为preferred_address参数;99.具体地是由客户端侧的协议栈接收tls响应,对客户端侧的用户无感知。采用该方式,能够准确、高效地将目标代理服务器的地址传输至客户端侧。100.s503、客户端接收源代理服务器返回的第一业务数据;第一业务数据为源cdnrs基于业务访问请求响应的;101.s504、客户端基于目标代理服务器的地址,向目标代理服务器发送路径验证消息;102.例如,客户端具体可以基于目标代理服务器的地址,向目标代理服务器发送path_challenge消息。具体地,该path_challenge消息为客户端中的协议栈根据接收到的preferred_address参数,自动尝试发送的。而客户端的用户并无感知。103.s505、客户端接收目标代理服务器返回的路径验证的响应消息;路径验证的响应消息为目标代理服务器基于预先恢复的、与当前的客户端之间的连接的协议栈信息返回的;104.例如,客户端具体可以接收目标代理服务器返回的path_response消息。具体地,可以基于http/3的rfc协议实现path_challenge消息和path_response消息的传输,实现迁移连接的准确、高效地建立。105.其中,目标代理服务器基于预先恢复的、与当前的客户端之间的连接的协议栈信息,可以包括源代理服务器与客户端之间的连接信息;如可以包括:源代理服务器与客户端之间的quic连接信息;该quic连接信息可以包括连接id、pn、加密、流信息等。本实施例中,预先恢复协议栈,相当于在目标代理服务器侧预先创建与该客户端建立业务访问的协议栈。这样,由于该目标代理服务器已经预先恢复了与当前的客户端之间的连接的协议栈信息,所以可以快速响应,确保业务流量切换的稳定性。106.s506、客户端断开与源代理服务器之间的连接;107.基于上述步骤s505,客户端可以确定与目标代理服务器之间的迁移连接建立完成,此时客户端可以断开与源代理服务器的连接,后续通过与目标代理服务器的连接,获取目标cdnrs提供的业务数据,实现流量的迁移。通过该方式,可以有效地确保流量的准确迁移,同时也能够有效地确保业务服务的准确性。108.s507、客户端接收目标代理服务器返回的第二业务数据,第二业务数据为目标cdnrs基于目标代理服务器预先发送的客户端的待迁移的数据信息提供的。109.由于该目标代理服务器已经预先向目标cdnrs请求业务数据,而且也告知待迁移的数据信息,所以,目标代理服务器在于客户端的连接建立时,可以快速响应业务数据,确保业务流量切换的稳定性。110.待迁移的数据信息可以包括业务访问请求对应的url、和源cdnrs已提供的业务数据的截止位置信息。也就是说,第一业务数据为基于该url由源cdnrs提供的截止位置信息之前的业务数据,而第二业务数据为基于该url由目标cdnrs提供的截止位置信息之后的业务数据。两者一起构成完整的业务访问请求的业务数据。111.本实施例与上述图3所示实施例的区别仅在于:上述图3在源cdnrs侧描述本公开的技术方案。而本实施例在客户端侧描述本公开的技术方案,具体实现原理相同,详细可以参考上述图3所示实施例的记载,在此不再赘述。112.本公开的上述实施例的技术方案,可以应用在直播、点播、文件下载等应用场景。可以灵活实现基于服务器变化的流量迁移,能够在有效地保证服务质量的前提下,高效地实现流量的平滑迁移,实用性非常强。113.例如,本公开的上述方案,属于一种http/3通用的服务端连接无缝迁移技术,可应用在流量业务场景的降本应用中,从中心cdnrs把流量迁移到边缘cdnrs上,可以支持直播、点播、下载、短视频等业务;当然也可以应用其它场景的连接热迁移、升级、负载调度、连接容错场景,使用范围非常广,通用性和实用性都非常强。114.本公开的技术方案,可以应用在http/3的场景中,利用http/3的quic连接,可抗20~30%丢包特性,与http/2相比,能够克服边缘cdnrs丢包、抖动大的问题,提升服务质量。115.而且,本公开的技术方案,具体实现时,可以连接源cdnrs的知名端口,如443、80,然后再热迁移到目标cdnrs上,在目标cdnrs不需要使用知名端口,能有效地降低对目标cdnrs的端口开放要求。116.图6是根据本公开第五实施例的示意图;如图6所示,本实施例提供一种源代理服务器600,包括:117.业务请求模块601,用于基于接收到的客户端的携带域名的业务访问请求,向对应的源内容分发网络真实服务器进行业务请求;118.接收模块602,用于若所述源内容分发网络真实服务器确定要迁移所述域名对应的业务流量时,接收所述源内容分发网络真实服务器返回的目标代理服务器的地址;所述目标代理服务器为源内容分发网络真实服务器确定的要迁移到的目标内容分发网络真实服务器对应的代理服务器;119.迁移模块603,用于基于所述目标代理服务器的地址,将所述客户端的所述业务访问请求对应的流量,迁移至所述目标代理服务器,以由所述目标内容分发网络真实服务器继续为所述客户端提供所述业务访问请求的业务数据。120.本实施例的源代理服务器600,通过采用上述模块实现流量迁移的实现原理以及技术效果,与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。121.进一步可选地,在本公开的一个实施例中,迁移模块603,用于:122.基于所述目标代理服务器的地址,向所述目标代理服务器发送协议栈迁移请求,所述协议栈迁移请求中携带当前的源代理服务器与所述客户端之间的连接信息以及待迁移的数据信息,以指示所述目标代理服务器恢复与所述客户端之间的连接的协议栈,并基于所述待迁移的数据信息,向所述目标内容分发网络真实服务器进行业务请求;123.向所述客户端返回所述目标代理服务器的地址,以供所述客户端基于所述目标代理服务器的地址,与所述目标代理服务器建立业务连接,以由所述目标内容分发网络真实服务器继续为所述客户端提供所述业务访问请求的业务数据124.进一步可选地,在本公开的一个实施例中,迁移模块603,用于向所述客户端返回安全传输层协议响应,在所述安全传输层协议响应中将所述目标代理服务器的地址作为preferred_address参数,返回给所述客户端。125.进一步可选地,在本公开的一个实施例中,所述源代理服务器与所述客户端之间的连接信息包括:所述源代理服务器与所述客户端之间的快速用户数据报协议网络连接的连接信息;和/或126.所述待迁移的数据信息包括所述业务访问请求对应的统一资源定位符、和所述源内容分发网络真实服务器已提供的业务数据的位置信息。127.进一步可选地,在本公开的一个实施例中,源代理服务器600还可以包括发送模块;128.接收模块602,还用于接收所述源内容分发网络真实服务器返回的第一业务数据;129.发送模块,用于向所述客户端返回所述第一业务数据。130.上述实施例的源代理服务器600,通过采用上述模块实现流量迁移的实现原理以及技术效果,与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。131.图7是根据本公开第六实施例的示意图;如图7所示,本实施例提供一种客户端700,包括:132.发送模块701,用于向源代理服务器发送携带域名的业务访问请求;133.接收模块702,用于接收所述源代理服务器返回的目标代理服务器的地址,所述目标代理服务器源内容分发网络真实服务器确定要迁移所述域名对应的业务流量时,确定的为要迁移到的目标内容分发网络真实服务器对应的代理服务器;134.连接建立模块703,用于基于所述目标代理服务器的地址,与所述目标代理服务器建立业务连接,以由所述目标内容分发网络真实服务器继续提供所述业务访问请求的业务数据。135.本实施例的客户端700,通过采用上述模块实现流量迁移的实现原理以及技术效果,与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。136.进一步可选地,在本公开的一个实施例中,接收模块702,用于:137.接收所述源代理服务器返回的安全传输层协议响应,所述安全传输层协议响应中将所述目标代理服务器的地址作为preferred_address参数。138.进一步可选地,在本公开的一个实施例中,接收模块702,还用于接收所述源代理服务器返回的第一业务数据;所述第一业务数据为所述源内容分发网络真实服务器基于所述业务访问请求响应的。139.进一步可选地,在本公开的一个实施例中,连接建立模块703,用于:140.基于所述目标代理服务器的地址,向所述目标代理服务器发送路径验证消息;141.接收所述目标代理服务器返回的路径验证的响应消息;所述路径验证的响应消息为所述目标代理服务器基于预先恢复的、与当前的客户端之间的连接的协议栈信息返回的;142.进一步可选地,在本公开的一个实施例中,客户端700还包括:143.断开处理模块,用于断开与所述源代理服务器之间的连接;144.接收模块702,还用于接收所述目标代理服务器返回的第二业务数据,所述第二业务数据为所述目标内容分发网络真实服务器基于所述目标代理服务器预先发送的所述客户端的待迁移的数据信息提供的。145.进一步可选地,在本公开的一个实施例中,连接建立模块703,用于基于所述目标代理服务器的地址,向所述目标代理服务器发送path_challenge消息;146.连接建立模块703,用于接收所述目标代理服务器返回的path_response消息。147.进一步可选地,在本公开的一个实施例中,源代理服务器与客户端之间的连接信息包括:所述源代理服务器与所述客户端之间的快速用户数据报协议网络连接的连接信息;和/或148.所述待迁移的数据信息包括所述业务访问请求对应的统一资源定位符、和所述源内容分发网络真实服务器已提供的业务数据的位置信息。149.上述实施例的客户端700,通过采用上述模块实现流量迁移的实现原理以及技术效果,与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。150.本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。151.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。152.图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。153.如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(rom)802中的计算机程序或者从存储单元808加载到随机访问存储器(ram)803中的计算机程序,来执行各种适当的动作和处理。在ram803中,还可存储设备800操作所需的各种程序和数据。计算单元801、rom802以及ram803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。154.设备800中的多个部件连接至i/o接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。155.计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如本公开的上述方法。例如,在一些实施例中,本公开的上述方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由rom802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到ram803并由计算单元801执行时,可以执行上文描述的本公开的上述方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行本公开的上述方法。156.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、复杂可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。157.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。158.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。159.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。160.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。161.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。162.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。163.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。当前第1页12当前第1页12
技术特征:
1.一种流量迁移方法,包括:基于接收到的客户端的携带域名的业务访问请求,向对应的源内容分发网络真实服务器进行业务请求;若所述源内容分发网络真实服务器确定要迁移所述域名对应的业务流量时,接收所述源内容分发网络真实服务器返回的目标代理服务器的地址;所述目标代理服务器为所述源内容分发网络真实服务器确定的要迁移到的目标内容分发网络真实服务器对应的代理服务器;基于所述目标代理服务器的地址,将所述客户端的所述业务访问请求对应的流量,迁移至所述目标代理服务器,以由所述目标内容分发网络真实服务器继续为所述客户端提供所述业务访问请求的业务数据。2.根据权利要求1所述的方法,其中,基于所述目标代理服务器的地址,将所述客户端的所述业务访问请求对应的流量,迁移至所述目标代理服务器,以由所述目标内容分发网络真实服务器继续为所述客户端提供所述业务访问请求的业务数据,包括:基于所述目标代理服务器的地址,向所述目标代理服务器发送协议栈迁移请求,所述协议栈迁移请求中携带当前的源代理服务器与所述客户端之间的连接信息以及待迁移的数据信息,以指示所述目标代理服务器恢复与所述客户端之间的连接的协议栈,并基于所述待迁移的数据信息,向所述目标内容分发网络真实服务器进行业务请求;向所述客户端返回所述目标代理服务器的地址,以供所述客户端基于所述目标代理服务器的地址,与所述目标代理服务器建立业务连接,以由所述目标内容分发网络真实服务器继续为所述客户端提供所述业务访问请求的业务数据。3.根据权利要求2所述的方法,其中,向所述客户端返回所述目标代理服务器的地址,包括:向所述客户端返回安全传输层协议响应,在所述安全传输层协议响应中将所述目标代理服务器的地址作为preferred_address参数,返回给所述客户端。4.根据权利要求2所述的方法,其中,所述源代理服务器与所述客户端之间的连接信息包括:所述源代理服务器与所述客户端之间的快速用户数据报协议网络连接的连接信息;和/或所述待迁移的数据信息包括所述业务访问请求对应的统一资源定位符、和所述源内容分发网络真实服务器已提供的业务数据的位置信息。5.根据权利要求1-4任一所述的方法,其中,基于接收到的客户端的携带域名的业务访问请求,向对应的源内容分发网络真实服务器进行业务请求之后,所述方法还包括:接收所述源内容分发网络真实服务器返回的第一业务数据;向所述客户端返回所述第一业务数据。6.一种流量迁移方法,包括:向源代理服务器发送携带域名的业务访问请求;接收所述源代理服务器返回的目标代理服务器的地址,所述目标代理服务器为源内容分发网络真实服务器确定要迁移所述域名对应的业务流量时,确定的要迁移到的目标内容分发网络真实服务器对应的代理服务器;基于所述目标代理服务器的地址,与所述目标代理服务器建立业务连接,以由所述目
标内容分发网络真实服务器继续提供所述业务访问请求的业务数据。7.根据权利要求6所述的方法,其中,接收所述源代理服务器返回的目标代理服务器的地址,包括:接收所述源代理服务器返回的安全传输层协议响应,所述安全传输层协议响应中将所述目标代理服务器的地址作为preferred_address参数。8.根据权利要求6所述的方法,其中,向源代理服务器发送携带域名的业务访问请求之后,所述方法还包括:接收所述源代理服务器返回的第一业务数据;所述第一业务数据为所述源内容分发网络真实服务器基于所述业务访问请求响应的。9.根据权利要求6-8任一所述的方法,其中,基于所述目标代理服务器的地址,与所述目标代理服务器建立业务连接,以由所述目标内容分发网络真实服务器继续提供所述业务访问请求的业务数据,包括:基于所述目标代理服务器的地址,向所述目标代理服务器发送路径验证消息;接收所述目标代理服务器返回的路径验证的响应消息;所述路径验证的响应消息为所述目标代理服务器基于预先恢复的、与当前的客户端之间的连接的协议栈信息返回的;所述方法还包括:断开与所述源代理服务器之间的连接;接收所述目标代理服务器返回的第二业务数据,所述第二业务数据为所述目标内容分发网络真实服务器基于所述目标代理服务器预先发送的所述客户端的待迁移的数据信息提供的。10.根据权利要求9所述的方法,其中,基于所述目标代理服务器的地址,向所述目标代理服务器发送路径验证消息,包括:基于所述目标代理服务器的地址,向所述目标代理服务器发送path_challenge消息;接收所述目标代理服务器返回的路径验证的响应消息,包括:接收所述目标代理服务器返回的path_response消息。11.根据权利要求9所述的方法,其中,所述源代理服务器与所述客户端之间的连接信息包括:所述源代理服务器与所述客户端之间的快速用户数据报协议网络连接的连接信息;和/或所述待迁移的数据信息包括所述业务访问请求对应的统一资源定位符、和所述源内容分发网络真实服务器已提供的业务数据的位置信息。12.一种源代理服务器,包括:业务请求模块,用于基于接收到的客户端的携带域名的业务访问请求,向对应的源内容分发网络真实服务器进行业务请求;接收模块,用于若所述源内容分发网络真实服务器确定要迁移所述域名对应的业务流量时,接收所述源内容分发网络真实服务器返回的目标代理服务器的地址;所述目标代理服务器为所述源内容分发网络真实服务器确定的要迁移到的目标内容分发网络真实服务器对应的代理服务器;迁移模块,用于基于所述目标代理服务器的地址,将所述客户端的所述业务访问请求对应的流量,迁移至所述目标代理服务器,以由所述目标内容分发网络真实服务器继续为
所述客户端提供所述业务访问请求的业务数据。13.根据权利要求12所述的源代理服务器,其中,所述迁移模块,用于:基于所述目标代理服务器的地址,向所述目标代理服务器发送协议栈迁移请求,所述协议栈迁移请求中携带当前的源代理服务器与所述客户端之间的连接信息以及待迁移的数据信息,以指示所述目标代理服务器恢复与所述客户端之间的连接的协议栈,并基于所述待迁移的数据信息,向所述目标内容分发网络真实服务器进行业务请求;向所述客户端返回所述目标代理服务器的地址,以供所述客户端基于所述目标代理服务器的地址,与所述目标代理服务器建立业务连接,以由所述目标内容分发网络真实服务器继续为所述客户端提供所述业务访问请求的业务数据。14.根据权利要求13所述的源代理服务器,其中,所述迁移模块,用于:向所述客户端返回安全传输层协议响应,在所述安全传输层协议响应中将所述目标代理服务器的地址作为preferred_address参数,返回给所述客户端。15.根据权利要求13所述的源代理服务器,其中,所述源代理服务器与所述客户端之间的连接信息包括:所述源代理服务器与所述客户端之间的快速用户数据报协议网络连接的连接信息;和/或所述待迁移的数据信息包括所述业务访问请求对应的统一资源定位符、和所述源内容分发网络真实服务器已提供的业务数据的位置信息。16.根据权利要求12-15任一所述的源代理服务器,其中,所述装置还包括发送模块;所述接收模块,还用于接收所述源内容分发网络真实服务器返回的第一业务数据;所述发送模块,用于向所述客户端返回所述第一业务数据。17.一种客户端,包括:发送模块,用于向源代理服务器发送携带域名的业务访问请求;接收模块,用于接收所述源代理服务器返回的目标代理服务器的地址,所述目标代理服务器为源内容分发网络真实服务器确定要迁移所述域名对应的业务流量时,确定的要迁移到的目标内容分发网络真实服务器对应的代理服务器;连接建立模块,用于基于所述目标代理服务器的地址,与所述目标代理服务器建立业务连接,以由所述目标内容分发网络真实服务器继续提供所述业务访问请求的业务数据。18.根据权利要求17所述的客户端,其中,所述接收模块,用于:接收所述源代理服务器返回的安全传输层协议响应,所述安全传输层协议响应中将所述目标代理服务器的地址作为preferred_address参数。19.根据权利要求17所述的客户端,其中:所述接收模块,还用于接收所述源代理服务器返回的第一业务数据;所述第一业务数据为所述源内容分发网络真实服务器基于所述业务访问请求响应的。20.根据权利要求17-19任一所述的客户端,其中,所述连接建立模块,用于:基于所述目标代理服务器的地址,向所述目标代理服务器发送路径验证消息;接收所述目标代理服务器返回的路径验证的响应消息;所述路径验证的响应消息为所述目标代理服务器基于预先恢复的、与当前的客户端之间的连接的协议栈信息返回的;所述客户端还包括:断开处理模块,用于断开与所述源代理服务器之间的连接;
所述接收模块,还用于接收所述目标代理服务器返回的第二业务数据,所述第二业务数据为所述目标内容分发网络真实服务器基于所述目标代理服务器预先发送的所述客户端的待迁移的数据信息提供的。21.根据权利要求20所述的客户端,其中,所述连接建立模块,用于基于所述目标代理服务器的地址,向所述目标代理服务器发送path_challenge消息;所述连接建立模块,用于接收所述目标代理服务器返回的path_response消息。22.根据权利要求20所述的客户端,其中,所述源代理服务器与所述客户端之间的连接信息包括:所述源代理服务器与所述客户端之间的快速用户数据报协议网络连接的连接信息;和/或所述待迁移的数据信息包括所述业务访问请求对应的统一资源定位符、和所述源内容分发网络真实服务器已提供的业务数据的位置信息。23.一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-4中任一项所述的方法。24.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-5或者6-11中任一项所述的方法。25.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-5或者6-11中任一项所述的方法。
技术总结
本公开提供了一种流量迁移方法、服务器、客户端、电子设备及存储介质,涉及人工智能领域,具体涉及云计算、CDN等技术。具体实现方案包括:基于客户端的携带域名的业务访问请求,向对应的源CDN RS进行业务请求;若源CDN RS确定要迁移域名对应的业务流量时,接收源CDN RS返回的目标代理服务器的地址;目标代理服务器为源CDN RS确定的要迁移到的目标CDN RS对应的代理服务器;基于目标代理服务器的地址,将客户端的业务访问请求对应的流量,迁移至目标代理服务器,以由目标CDN RS继续为客户端提供业务访问请求的业务数据。本公开的技术,能够有效地实现服务器变化的场景下,流量的平滑迁移。移。移。
技术研发人员:柯于刚 谷崇明 吴永强 斯文
受保护的技术使用者:北京百度网讯科技有限公司
技术研发日:2023.04.28
技术公布日:2023/8/14
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
