CN114039919A - 流量调度方法、介质、装置和计算设备 - Google Patents
流量调度方法、介质、装置和计算设备 Download PDFInfo
- Publication number
- CN114039919A CN114039919A CN202111311487.1A CN202111311487A CN114039919A CN 114039919 A CN114039919 A CN 114039919A CN 202111311487 A CN202111311487 A CN 202111311487A CN 114039919 A CN114039919 A CN 114039919A
- Authority
- CN
- China
- Prior art keywords
- user request
- user
- target server
- traffic
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000005192 partition Methods 0.000 claims description 46
- 238000006243 chemical reaction Methods 0.000 claims description 25
- 238000004806 packaging method and process Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 8
- 238000012423 maintenance Methods 0.000 abstract description 10
- 238000011144 upstream manufacturing Methods 0.000 abstract description 7
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000006854 communication Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开的实施方式提供了一种流量调度方法、介质、装置和计算设备。该方法包括:接收来自客户端的用户请求,用户请求携带有用户流量标识;基于设定的分发策略,将用户请求转发到与用户流量标识相匹配的目标服务器;响应于接收到来自目标服务器的推荐结果,向客户端发送推荐结果,推荐结果是根据用户流量标识获得的。通过将客户端的用户请求和服务器的推荐结果通过中间层设备进行转发,本公开使得上游的客户端与下游的服务器间解耦合,从而显著地降低了***维护难度,提升了维护效率。
Description
技术领域
本公开的实施方式涉及计算机技术领域,更具体地,本公开的实施方式涉及一种流量调度方法、介质、装置和计算设备。
背景技术
本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
随着互联网技术的发展,音乐播放类应用中越来越多涉及内容推荐功能,以根据用户流量的特点,推送相应的内容,提高用户的使用体验。
目前,内容推荐功能都是通过上游的业务***向下游的算法***发送推荐请求,并接收算法***推送的内容。这一过程中上游的业务***和下游的算法***通常相互直连,导致任一***出现调整时或流量出现变化时,都需要同步调整对应***的配置,进而导致***整体维护难度大,效率低下。
发明内容
本公开提供一种流量调度方法、介质、装置和计算设备,以解决现有技术中内容推荐功能依赖客户端与服务器直连,导致***整体维护难度大的问题。
在本公开实施方式的第一方面中,提供了一种流量调度方法,包括:
接收来自客户端的用户请求,用户请求携带有用户流量标识;
基于设定的分发策略,将用户请求转发到与用户流量标识相匹配的目标服务器;
响应于接收到来自目标服务器的推荐结果,向客户端发送推荐结果,推荐结果是根据用户流量标识获得的。
在本公开的一个实施例中,该流量调度方法包括:设基于设定的分发策略,将用户请求转发到与用户流量标识相匹配的目标服务器,包括:基于用户流量标识和调度分区信息,确定用户请求对应的调度分区;将用户请求转发到调度分区的目标服务器。
在本公开的一种示例性实施例中,基于用户流量标识和调度分区信息,确定用户请求对应的调度分区,包括:对用户流量标识进行取模;确定取模后的值对应的流量存储区间,将流量存储区间所对应的调度分区确定为用户请求对应的调度分区。
在本公开的另一实施例中,该流量调度方法包括:将用户请求转发到调度分区的目标服务器,包括:
确定第三方服务器记录的目标服务器的当前地址;
将用户请求转发到当前地址。
在本公开的一种示例性实施例中,确定第三方服务器记录的目标服务器的当前地址,包括:当第三方服务器记录的目标服务器的地址发生变更时,获取第三方服务器推送的变更后的地址,作为目标服务器的当前地址。
在本公开的一种示例性实施例中,基于设定的分发策略,将用户请求转发到与用户流量标识相匹配的目标服务器之前,还包括:对用户请求进行解析;对解析后的用户请求进行参数转换;对参数转换后的用户请求进行重新编码;将重新编码后的用户请求作为用于转发到目标服务器的用户请求。
在本公开的一种示例性实施例中,响应于接收到来自目标服务器的推荐结果,向客户端发送推荐结果,包括:响应于接收到来自目标服务器的推荐结果,对推荐结果进行解码;对解码后的推荐结果进行结果转换;对结果转换后的推荐结果进行编码封装;将编码封装后的推荐结果发送到客户端。
在本公开实施方式的第二方面中,提供了一种计算机可读存储介质,包括:
计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如本公开第一方面中的流量调度方法。
在本公开实施方式的第三方面中,提供了一种流量调度装置,包括:
接收模块,用于接收来自客户端的用户请求,用户请求携带有用户流量标识;
转发模块,用于基于设定的分发策略,将用户请求转发到与用户流量标识相匹配的目标服务器;
发送模块,用于响应于接收到来自目标服务器的推荐结果,向客户端发送推荐结果,推荐结果是根据用户流量标识获得的。
在本公开的一种示例性实施例中,转发模块具体用于:基于用户流量标识和调度分区信息,确定用户请求对应的调度分区;将用户请求转发到调度分区的目标服务器。
在本公开的一种示例性实施例中,转发模块具体用于:对用户流量标识进行取模;确定取模后的值对应的流量存储区间,将流量存储区间所对应的调度分区确定为用户请求对应的调度分区。
在本公开的一种示例性实施例中,转发模块具体用于:确定第三方服务器记录的目标服务器的当前地址;将用户请求转发到当前地址。
在本公开的一种示例性实施例中,转发模块具体用于:当第三方服务器记录的目标服务器的地址发生变更时,获取第三方服务器推送的变更后的地址,作为目标服务器的当前地址。
在本公开的一种示例性实施例中,转发模块还用于:在将用户请求转发到与用户流量标识相匹配的目标服务器之前,对用户请求进行解析;对解析后的用户请求进行参数转换;对参数转换后的用户请求进行重新编码;将重新编码后的用户请求作为用于转发到目标服务器的用户请求。
在本公开的一种示例性实施例中,发送模块具体用于:响应于接收到来自目标服务器的推荐结果,对推荐结果进行解码;对解码后的推荐结果进行结果转换;对结果转换后的推荐结果进行编码封装;将编码封装后的推荐结果发送到客户端。
在本公开实施方式的第四方面中,提供了一种计算设备,包括:至少一个处理器;
以及与至少一个处理器通信连接的存储器;
其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使计算设备执行如本公开第一方面中的流量调度方法。
根据本公开实施方式的流量调度方法、介质、装置和计算设备,通过中间层设备接收来自客户端的携带有用户流量标识的用户请求,并基于设定的分发策略,将用户请求转发到与用户流量标识相匹配的目标服务器;然后响应于接收到来自目标服务器的推荐结果,向客户端发送根据用户流量标识获得的推荐结果。由此可以方便通过中间层设备将用户的流量发送到不同的设定服务器,实现业务分流,且无需客户端确定需要发送的目标服务器,由此能够方便对客户端和服务器的分别维护;同时,通过用户流量标识确定并分发到对应的目标服务器,还能实现对流量的自动化分流,避免流量集中到少数服务器,造成访问拥堵的情况,从而显著地提高了访问效率,为用户带来了更好的体验。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
图1示意性地示出了根据本公开实施方式的应用场景图;
图2示意性地示出了根据本公开另一实施例的流量调度方法的流程图;
图3示意性地示出了根据本公开又一实施例的流量调度方法的流程图;
图4示意性地示出了图3实施例对应的流量调度方法的实际应用场景示意图;
图5示意性地示出了根据本公开再一实施例的流量调度方法的流程图;
图6示意性地示出了根据本公开再一实施例的计算机可读存储介质的结构示意图;
图7示意性地示出了根据本公开再一实施例的流量调度装置的结构示意图;
图8示意性地示出了根据本公开再一实施例的计算设备的结构示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本公开的实施方式可以实现为一种***、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本公开的实施方式,提出了一种流量调度方法、介质、装置和计算设备。
在本文中,需要理解的是,所涉及的术语仅用于方便理解,并未表示对含义的限制。此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面是本公开中涉及的术语说明:
流量域:算法推荐场景下一组用户流量的集合,流量域可以根据多个维度进行划分,比如性别、地域、年龄、用户id、设备id、请求id等。
网关:在本方案中,主要在互联网应用后端架构方面的API网关,指运行于外部请求与内部服务之间的一个流量入口,实现对外部请求的协议转换、鉴权、流控、参数校验、监控等通用功能。通过API网关的连接,可以原本一个庞大的单体应用业务***拆分成大量微服务(英文为Microservice)***,以便对各微服务***进行独立的维护和部署。
下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。
发明概述
本发明人发现,现在技术中,音乐播放类应用在将内容推荐给用户的过程中,通常是由客户端在向推荐内容的服务器发送用户请求时,就确定了对应服务器,此时服务器与客户端强耦合,随着客户端和服务器的不断扩张和复杂化,导致客户端和服务器需要不断增加相对应的传输信息,由此导致无论是客户端还是服务器都存在维护升级困难,且存在***风险难以控制的问题。
在本方案中,通过单独设置中间层获取客户端的用户请求,并基于预设的分发策略发送到对应的目标服务器,同时将目标服务器的推荐结果发送到对应的客户端,由此不需要服务器和客户端再分别保存对应的链路地址信息,实现了上游客户端和下游服务器的解耦合,从而方便对各***分别进行维护升级。
在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。
应用场景总览
首先参考图1所示,在内容推荐中,用户通过客户端100向中间层设备110发送获取推荐内容的用户请求,中间层设备110根据设定规则将用户请求转发到设定的目标服务器120,目标服务器120会将推荐结果返回到中间层设备110,中间层设备110将推荐结果发送到对应客户端100,完成流量调度过程。
需说明的是,图1所示场景中客户端100、中间层设备110和目标服务器120仅以一个为例进行示例说明,但本公开不以此为限制,也就是说,客户端、中间层设备和目标服务器的个数可以是任意的。
示例性方法
下面结合图1的应用场景,参考图2至图5来描述根据本公开示例性实施方式的用于流量调度方法。需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
图2为本公开一个实施例提供的流量调度方法的流程图。如图2所示,本实施例提供的流量调度方法包括以下步骤:
步骤S201、接收来自客户端的用户请求。
其中,用户请求携带有用户流量标识。
具体的,本实施例的执行主体为中间层设备,中间层设备与客户端、服务器通讯连接,中间层设备可以是网关设备,也可以是专用的服务器设备。
用户请求可以是获取推荐内容的请求,推荐内容可能不同,可以是歌单,可以是专辑,可以是评论,也可以是其他用户。
同一个客户端发送的用户请求可以为一个,也可以为多个,一般为不同时发出的多个,如同一客户端先后请求不同类别的多个歌单。
用户流量标识为对应用户账户或还包括用户客户端所在智能设备的标识信息,可以是账户识别码,也可以是账户识别码和智能设备识别码的结合,如可以同时由多个智能设备登录使用的高级账户,就需要同时基于账户识别码和智能设备识别码确定对应的用户信息。
进一步地,用户请求不需要包含需要发送的目标服务器地址,该地址由接受这个用户请求的中间层设备确定。但用户请求一般包含了发出用户请求的客户端的地址。
步骤S202、基于设定的分发策略,将用户请求转发到与用户流量标识相匹配的目标服务器。
分发策略用于表示将流量转发到不同服务器的具体策略。如根据时间和流量所包含的识别码随机分配到执行同一功能的不同服务器中,或进行随机分配。
同一用户请求可能转发到不同的目标服务器,不同用户发送的同一种类的用户请求一般会转发到不同的目标服务器,以实现流量调度分流,避免流量集中到特定的服务器设备。
目标服务器为集成有推荐算法的服务器,不同目标服务器集成的推荐算法可能相同,如多个均执行同一种类推荐功能的服务器,不同目标服务器也可以分别集成不同的推荐算法,并执行不同的推荐功能,如对应每日推荐和分类推荐功能的目标服务器。
每个目标服务器都有对应的地址,这一地址对于客户端而言是未知的,只需要中间层设备确定目标服务器地址即可。中间层设备在通过分发策略确定对应用户请求的目标服务器后,即会将用户请求的流量转发到目标服务器的对应地址。
步骤S203、响应于接收到来自目标服务器的推荐结果,向客户端发送推荐结果。
其中,推荐结果是根据用户流量标识获得的。
与将用户请求转发到服务器的过程相反,中间层设备在接收到服务器输出的推荐结果时,会沿相反方向的过程,将推荐结果发送到客户端。
进一步地,目标服务器在输出推荐结果时,同样不需要了解接收推荐结果的客户端的地址,中间层设备会根据处理用户请求中所包含的客户端地址,将推荐结果发送到对应的客户端地址。
根据本公开实施方式的流量调度方法,通过中间层设备接收来自客户端的携带有用户流量标识的用户请求,并基于设定的分发策略,将用户请求转发到与用户流量标识相匹配的目标服务器;然后响应于接收到来自目标服务器的推荐结果,向客户端发送根据用户流量标识获得的推荐结果。由此可以方便中间层设备将用户的流量发送到不同的设定服务器,实现业务分流,且无需客户端确定需要发送的目标服务器,由此能够方便对客户端和服务器的分别维护。
图3为本公开一个实施例提供的流量调度方法的流程图。如图3所示,本实施例提供的流量调度方法包括以下步骤:
步骤S301、接收来自客户端的用户请求。
其中,用户请求携带有用户流量标识。
具体的,用户流量标识包括以数字或数列形式表示的识别码,或可以转化为数字或数列形式的识别码。
步骤S302、对用户流量标识进行取模。
该取模运算基于用户流量标识中的识别码进行。
具体的,取模运算可以基于散列算法实现,如MD5算法、SHA-1算法等各类hash算法。通过散列算法对该识别码进行取模运算。
对同一个***中,其所有中间层设备所采用的取模算法是相同的,以保证对用户流量进行统一的调度和分流,保证调度分流效果。
步骤S303、确定取模后的值对应的流量存储区间,将流量存储区间所对应的调度分区确定为用户请求对应的调度分区。
流量存储区间为基于预先设置的目标服务器所属集群数量或目标服务器数量划分的若干流量分区,如处理某类推荐请求的服务器集群共有10个,则可以设置为每10%一个流量存储区间,或者处理某类推荐请求的服务器共有200个,则可以设置为每0.5%一个流量存储区间。
每个流量存储区间占有0%至100%中固定范围的一个区间,如11%至12%的一个区间。
进一步地,根据取模后的数值确定该用户请求对应的流量存储区间。
示例性的,某用户请求的用户流量标识在取模后的值为67.4,如流量存储区间的宽度为每0.5%一个流量存储区间,则该用户请求会被分配置67%-67.5%的流量存储区间;如流量存储区间的宽度为每2%一个流量存储区间,则该用户请求会被分配至66%-68%的流量存储区间。
调度分区为基于服务器集群配置的流量存储区间的划分,如共有3个集群,则可以根据三个集群的处理能力不同,将0%至10%、10%至70%、70%至100%的流量存储区间分别划分为三个调度分区。显然,各个服务器集群中的服务器数量可能互不相同,但他们所配置的推荐算法均为相同算法。
在本公开的一种示例性实施例中,调度分区与服务器集群数量一一对应。
步骤S304、将用户请求转发到调度分区的目标服务器。
在本公开的一种示例性实施例中,目标服务器可以是调度分区所在的服务器集群中的任意服务器,当确定了用户请求对应的流量存储区间后,中间层设备会将用户请求转发到流量存储区间所在调度分区的任意服务器中。
在本公开的一种示例性实施例中,确定调度分区中的目标服务器也可以根据预先设置的配置方法选择,将用户请求转发到流量存储区间所在调度分区的设定目标服务器中。
在本公开的一种示例性实施例中,中间层设备不会直接确定具体的目标服务器,而是直接转发到调度分区所在服务器集群的地址,然后通过服务器集群内部算法确定具体处理该用户请求的目标服务器。
步骤S305、响应于接收到来自目标服务器的推荐结果,向客户端发送推荐结果。
由于用户请求中携带有客户端的地址,因此,中间层设备在接收到目标服务器的推荐结果后,只需直接发送到对应的客户端地址即可,而不需要考虑转发问题。
图4为本实施例对应的流量调度方法的实际应用场景示意图。下面结合图4对本实施例提供的流量调度方法的实施过程进行说明。
首先,用户通过选择客户端上的歌单选项或打开客户端,生成对应的获取首页歌单的用户请求,对应本实施例中的的步骤S301。
其次,中间层设备(图4中对应的用于流量调度的算法网关)对于客户端发送的全局流量通过murmurhash算法对用户流量标识(图中的userId)进行取模运算,对应本实施例中的步骤S302。
再次,根据取模运算结果确定对应的流量存储区间,并分配到对应的流量桶中,对应本实施例中的步骤S303;其中,流量桶1、2、3即对应调度分区,且各流量桶的区间宽度不同,对应处理的流量比例不同。
然后,算法网关会将用户请求发送到对应流量桶所在的歌单推荐算法集群,对应本实施例中的步骤S304。
最后,歌单推荐算法集群会将推荐结果返回到客户端(这一步骤未在图4中示出),由此,完成流量调度过程。
根据本公开实施方式的流量调度方法,通过接收来自客户端的携带有用户流量标识的用户请求,通过对用户流量标识取模,确定对应的流量存储区间,然后将流量存储区间对应的调度分区确定为用户请求对应的调度分区,然后将用户请求转发到调度分区的目标服务器,并根据目标服务器返回的推送结果,发送给客户端。通过用户流量标识确定对应的流量存储区间,进而确定其调度分区,并分发到对应的目标服务器,能够实现对流量的自动化分流,避免流量集中到少数服务器,造成访问拥堵的情况,从而显著地提高了访问效率,为用户带来了更好的体验。
图5为本公开一个实施例提供的流量调度方法的流程图。如图5所示,本实施例提供的流量调度方法包括以下步骤:
步骤S501、接收来自客户端的用户请求。
其中,用户请求携带有用户流量标识。
步骤S502、对用户请求进行解析。
用户请求基于客户端和中间层设备约定的协议或格式进行封装,因此需要对客户端发送的用户请求进行解析,以获取其中的具体信息,如客户端的地址、用户流量标识、具体请求内容等。
同时,通过对用户请求的封装协议或格式仅涉及客户端和中间层设备,而不涉及服务器,因此,当协议或格式需要修改时,只需要在客户端和中间层设备间进行同步即可,由此能够减小维护成本。
步骤S503、对解析后的用户请求进行参数转换。
具体的,中间层设备需要将客户端发送的用户请求转换为中间层设备发送的请求,以便与服务器通信。通过对用户请求进行转换,能够将客户端与服务器的通信转换为中间层设备与服务器的通信,此时服务器的***在维护调整时,就不需要再考虑与客户端的配合关系,只需要与中间层设备同步即可,从而能够减小维护难度。
步骤S504、对参数转换后的用户请求进行重新编码。
具体的,参数转换后的用户请求需要按照中间层设备与服务器约定的协议或格式进行重新编码封装,以便服务器识别和读取。
步骤S505、将重新编码后的用户请求作为用于转发到目标服务器的用户请求。
具体的,重新编码后的用户请求就可以发送给目标服务器。通过解析、参数转换和重新编码处理,能够将现有客户端与服务器的通信过程分隔为客户端与中间层设备、中间层设备与服务器的两次通信过程,由此能够实现客户端与服务器间的解耦合,方便对上下游***的分别维护。
步骤S506、确定第三方服务器记录的目标服务器的当前地址。
中间层设备不直接储存服务器的地址,而是通过第三方服务器实时保存和记录服务器的全部地址,然后基于第三方服务器配置的目标服务器与地址的配置信息确定目标服务器的地址。
进一步地,中间层设备会根据第三方服务器的配置信息生成调用路由关系表,并根据实时获取的第三方服务器的配置变化进行适时调整。通过调用路由关系表能够直接确定转发到服务器集群或服务器的地址。
进一步地,第三方服务器为相对于客户端和算法服务器集群独立的服务器设备,第三方服务器主要用于算法服务器集群的地址注册和同步。
步骤S507、将用户请求转发到当前地址。
具体的,中间层设备会根据从第三服务器获取的配置信息,得到调用路由关系表,然后根据调用路由关系表发送到对应服务器或服务器集群的地址。
在本公开的一种示例性实施例中,当第三方服务器记录的目标服务器的地址发生变更时,获取第三方服务器推送的变更后的地址,作为目标服务器的当前地址。
进一步地,算法服务器在第三方服务器的注册以算法服务器集群的识别码和地址进行登记,当服务器端有新的算法服务器或算法服务器集群上线时,会在第三方服务器的配置信息中添加对应的识别码和地址。
步骤S508、响应于接收到来自目标服务器的推荐结果,对推荐结果进行解码。
与将用户请求从客户端转发到服务器的过程相反,中间层设备在接收到服务器端返回的推荐结果时,也需要解码、转换和重新编码的过程,以保证服务器到客户端的解耦合。
步骤S509、对解码后的推荐结果进行结果转换。
对推荐结果按照服务器与中间层设备约定的协议或格式解码后,需要转换为中间层设备向客户端发送的推荐结果。
步骤S510、对结果转换后的推荐结果进行编码封装。
结果转换完毕后,同样需要根据客户端与中间层设备约定的协议或格式进行重新编码封装。
步骤S511、将编码封装后的推荐结果发送到客户端。
当中间层设备对推荐结果编码完毕后,就可以根据保存的用户请求中包含的客户端地址,或推荐结果中包含的客户端地址,将推荐结果发送到对应的客户端。
示例性地,当用户通过客户端选择首页的歌单推荐功能时,客户端会对首页歌单服务生成对应的用户请求,并将用户请求发送到算法网关(即本实施例中的中间层设备),算法网关对用户请求进行解转码处理后,会通过取模运算命中对应的流量桶,然后将用户请求重新转发封装,并基于从第三方服务器获取的地址,将用户请求转发到对应歌单推荐算法服务器集群的地址;算法网关在接收到歌单推荐算法服务器集群返回的歌单列表(即推荐结果)后,会进行再次解转码和编码封装,然后返回到客户端,客户端在接收到歌单列表后,会通过首页对应模块显示该歌单列表,从而完成全部流量调度过程。
根据本公开实施方式的流量调度方法,通过接收来自客户端的用户请求,然后对用户请求进行解析、参数转换和重新编码,然后发送到第三方服务器中配置的目标服务器的当前地址,完成从客户端到服务器的推送过程;在接收到服务器的推荐结果后,经过解码、结果转换和编码封装,然后发送到客户端,完成从服务器到客户端的返回过程。
通过用户流量进行协议转换,使得上游客户端***不需要再关心下游服务器***的配置协议,从而达到上下游解耦合。通过获取第三方服务器中的配置的地址,使得中间层设备能够实时确定需要转发到的服务器集群的地址信息,而不需要频繁从服务器端去读取,方便了对下游服务器***的维护,从而显著地提高了***维护效率,为***管理带来了更好的体验。
示例性介质
在介绍了本公开示例性实施方式的方法之后,接下来,参考图6对本公开示例性实施方式的存储介质进行说明。
参考图6所示,描述了根据本公开的实施方式的用于实现上述方法的程序产品60,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备。
示例性装置
在介绍了本公开示例性实施方式的介质之后,接下来,参考图7对本公开示例性实施方式的流量调度装置进行说明,用于实现上述任一方法实施例中的方法,其实现原理和技术效果与前述方法的实施例类似,在此不再赘述。
本公开提供的流量调度装置700,包括:
接收模块710,用于接收来自客户端的用户请求,用户请求携带有用户流量标识;
转发模块720,用于基于设定的分发策略,将用户请求转发到与用户流量标识相匹配的目标服务器;
发送模块730,用于响应于接收到来自目标服务器的推荐结果,向客户端发送推荐结果,推荐结果是根据用户流量标识获得的。
在本公开的一种示例性实施例中,转发模块720可以具体用于:基于用户流量标识和调度分区信息,确定用户请求对应的调度分区;将用户请求转发到调度分区的目标服务器。
在本公开的一种示例性实施例中,转发模块720可以具体用于:对用户流量标识进行取模;确定取模后的值对应的流量存储区间,将流量存储区间所对应的调度分区确定为用户请求对应的调度分区。
在本公开的一种示例性实施例中,转发模块720可以具体用于:确定第三方服务器记录的目标服务器的当前地址;将用户请求转发到当前地址。
在本公开的一种示例性实施例中,转发模块720可以具体用于:当第三方服务器记录的目标服务器的地址发生变更时,获取第三方服务器推送的变更后的地址,作为目标服务器的当前地址。
在本公开的一种示例性实施例中,转发模块720可以还用于:在将用户请求转发到与用户流量标识相匹配的目标服务器之前,对用户请求进行解析;对解析后的用户请求进行参数转换;对参数转换后的用户请求进行重新编码;将重新编码后的用户请求作为用于转发到目标服务器的用户请求。
在本公开的一种示例性实施例中,发送模块730可以具体用于:响应于接收到来自目标服务器的推荐结果,对推荐结果进行解码;对解码后的推荐结果进行结果转换;对结果转换后的推荐结果进行编码封装;将编码封装后的推荐结果发送到客户端。
示例性计算设备
在介绍了本公开示例性实施方式的方法、介质和装置之后,接下来,参考图8对本公开示例性实施方式的计算设备进行说明。
图8显示的计算设备80仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,计算设备80以通用计算设备的形式表现。计算设备80的组件可以包括但不限于:上述至少一个处理单元801、上述至少一个存储单元802,连接不同***组件(包括处理单元801和存储单元802)的总线803。
总线803包括数据总线、控制总线和地址总线。
存储单元802可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)8021和/或高速缓存存储器8022,可以进一步包括非易失性存储器形式的可读介质,例如只读存储器(ROM)8023。
存储单元802还可以包括具有一组(至少一个)程序模块8024的程序,这样的程序模块8024包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算设备80也可以与一个或多个外部设备804(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口805进行。并且,计算设备80还可以通过网络适配器806与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图8所示,网络适配器806通过总线803与计算设备80的其它模块通信。应当理解,尽管图中未示出,可以结合计算设备80使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
应当注意,尽管在上文详细描述中提及了流量调度装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (10)
1.一种流量调度方法,包括如下步骤:
接收来自客户端的用户请求,所述用户请求携带有用户流量标识;
基于设定的分发策略,将所述用户请求转发到与所述用户流量标识相匹配的目标服务器;
响应于接收到来自所述目标服务器的推荐结果,向所述客户端发送所述推荐结果,所述推荐结果是根据所述用户流量标识获得的。
2.根据权利要求1所述的流量调度方法,所述基于设定的分发策略,将所述用户请求转发到与所述用户流量标识相匹配的目标服务器,包括:
基于所述用户流量标识和调度分区信息,确定所述用户请求对应的调度分区,所述调度分区信息包括:各个调度分区的流量存储区间;
将所述用户请求转发到所述调度分区的目标服务器。
3.根据权利要求2所述的流量调度方法,所述基于所述用户流量标识和调度分区信息,确定所述用户请求对应的调度分区,包括:
对所述用户流量标识进行取模;
确定所述取模后的值对应的流量存储区间,将所述流量存储区间所对应的调度分区确定为所述用户请求对应的调度分区。
4.根据权利要求1至3中任一项所述的流量调度方法,将所述用户请求转发到所述调度分区的目标服务器,包括:
确定第三方服务器记录的所述目标服务器的当前地址;
将所述用户请求转发到所述当前地址。
5.根据权利要求4所述的流量调度方法,所述确定第三方服务器记录的目标服务器的当前地址,包括:
当所述第三方服务器记录的所述目标服务器的地址发生变更时,获取所述第三方服务器推送的变更后的地址,作为所述目标服务器的当前地址。
6.根据权利要求1至3中任一项所述的流量调度方法,所述基于设定的分发策略,将所述用户请求转发到与所述用户流量标识相匹配的目标服务器之前,还包括:
对所述用户请求进行解析;
对解析后的用户请求进行参数转换;
对参数转换后的用户请求进行重新编码;
将重新编码后的用户请求作为用于转发到所述目标服务器的用户请求。
7.根据权利要求1至3中任一项所述的流量调度方法,所述响应于接收到来自所述目标服务器的推荐结果,向所述客户端发送所述推荐结果,包括:
响应于接收到来自所述目标服务器的推荐结果,对所述推荐结果进行解码;
对解码后的推荐结果进行结果转换;
对所述结果转换后的推荐结果进行编码封装;
将编码封装后的推荐结果发送到所述客户端。
8.一种计算机可读存储介质,包括:所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至7中任一项所述的流量调度方法。
9.一种流量调度装置,包括:
接收模块,用于接收来自客户端的用户请求,所述用户请求携带有用户流量标识;
转发模块,用于基于设定的分发策略,将所述用户请求转发到与所述用户流量标识相匹配的目标服务器;
发送模块,用于响应于接收到来自所述目标服务器的推荐结果,向所述客户端发送所述推荐结果,所述推荐结果是根据所述用户流量标识获得的。
10.一种计算设备,包括:
至少一个处理器;
以及与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述计算设备执行如权利要求1至7中任一项所述的流量调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111311487.1A CN114039919A (zh) | 2021-11-08 | 2021-11-08 | 流量调度方法、介质、装置和计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111311487.1A CN114039919A (zh) | 2021-11-08 | 2021-11-08 | 流量调度方法、介质、装置和计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114039919A true CN114039919A (zh) | 2022-02-11 |
Family
ID=80143254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111311487.1A Pending CN114039919A (zh) | 2021-11-08 | 2021-11-08 | 流量调度方法、介质、装置和计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114039919A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115499382A (zh) * | 2022-08-12 | 2022-12-20 | 重庆长安汽车股份有限公司 | 基于车联网的流量调度方法、装置、设备及介质 |
WO2023155685A1 (zh) * | 2022-02-15 | 2023-08-24 | 阿里巴巴(中国)有限公司 | 通信方法、***、装置、存储介质以及处理器 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104394439A (zh) * | 2014-11-20 | 2015-03-04 | 合一网络技术(北京)有限公司 | 基于动态配置的视频推荐分流的*** |
CN104852934A (zh) * | 2014-02-13 | 2015-08-19 | 阿里巴巴集团控股有限公司 | 基于前端调度实现流量分配的方法、装置和*** |
CN106230925A (zh) * | 2016-07-28 | 2016-12-14 | 杭州华三通信技术有限公司 | 一种访问控制方法及装置 |
CN107577795A (zh) * | 2017-09-19 | 2018-01-12 | 广州酷狗计算机科技有限公司 | 一种推荐歌曲的方法、装置和*** |
US20180019961A1 (en) * | 2015-12-18 | 2018-01-18 | Tencent Technology (Shenzhen) Company Limited | Message processing method, processing server, terminal, and storage medium |
US20180337922A1 (en) * | 2017-05-22 | 2018-11-22 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method and device for controlling smart device, server and storage medium |
US20190222899A1 (en) * | 2017-04-21 | 2019-07-18 | Tencent Technology (Shenzhen) Company Limited | Media content recommendation method, server, client, and storage medium |
CN110069714A (zh) * | 2019-04-25 | 2019-07-30 | 北京酷我科技有限公司 | 一种视频推荐*** |
CN111914175A (zh) * | 2020-08-07 | 2020-11-10 | 平安科技(深圳)有限公司 | 一种推荐流程优化方法、装置、设备及介质 |
US20210286617A1 (en) * | 2015-08-11 | 2021-09-16 | Arnon Harish | Methods circuits devices systems and functionally associated machine executable code for recommendation & distribution of digital content |
-
2021
- 2021-11-08 CN CN202111311487.1A patent/CN114039919A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104852934A (zh) * | 2014-02-13 | 2015-08-19 | 阿里巴巴集团控股有限公司 | 基于前端调度实现流量分配的方法、装置和*** |
CN104394439A (zh) * | 2014-11-20 | 2015-03-04 | 合一网络技术(北京)有限公司 | 基于动态配置的视频推荐分流的*** |
US20210286617A1 (en) * | 2015-08-11 | 2021-09-16 | Arnon Harish | Methods circuits devices systems and functionally associated machine executable code for recommendation & distribution of digital content |
US20180019961A1 (en) * | 2015-12-18 | 2018-01-18 | Tencent Technology (Shenzhen) Company Limited | Message processing method, processing server, terminal, and storage medium |
CN106230925A (zh) * | 2016-07-28 | 2016-12-14 | 杭州华三通信技术有限公司 | 一种访问控制方法及装置 |
US20190222899A1 (en) * | 2017-04-21 | 2019-07-18 | Tencent Technology (Shenzhen) Company Limited | Media content recommendation method, server, client, and storage medium |
US20180337922A1 (en) * | 2017-05-22 | 2018-11-22 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method and device for controlling smart device, server and storage medium |
CN107577795A (zh) * | 2017-09-19 | 2018-01-12 | 广州酷狗计算机科技有限公司 | 一种推荐歌曲的方法、装置和*** |
CN110069714A (zh) * | 2019-04-25 | 2019-07-30 | 北京酷我科技有限公司 | 一种视频推荐*** |
CN111914175A (zh) * | 2020-08-07 | 2020-11-10 | 平安科技(深圳)有限公司 | 一种推荐流程优化方法、装置、设备及介质 |
Non-Patent Citations (1)
Title |
---|
陈嘉兴等: "现代通信技术导论 第2版", 31 January 2018, 北京邮电大学出版社, pages: 1 - 18 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023155685A1 (zh) * | 2022-02-15 | 2023-08-24 | 阿里巴巴(中国)有限公司 | 通信方法、***、装置、存储介质以及处理器 |
CN115499382A (zh) * | 2022-08-12 | 2022-12-20 | 重庆长安汽车股份有限公司 | 基于车联网的流量调度方法、装置、设备及介质 |
CN115499382B (zh) * | 2022-08-12 | 2023-08-15 | 深蓝汽车科技有限公司 | 基于车联网的流量调度方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110162345B (zh) | 一种应用程序访问方法、装置和存储介质 | |
CN108257590B (zh) | 语音交互方法、装置、电子设备、存储介质 | |
US20210160190A1 (en) | Dynamic allocation of network resources using external inputs | |
WO2021073202A1 (zh) | 智能合约处理方法、计算机设备及存储介质 | |
CN114039919A (zh) | 流量调度方法、介质、装置和计算设备 | |
CN109521956B (zh) | 一种基于区块链的云存储方法、装置、设备及存储介质 | |
US9420070B2 (en) | Streaming zip | |
CN111935227A (zh) | 通过浏览器上传文件的方法、浏览器和电子设备 | |
US20220182219A1 (en) | Creating deterministic ciphertext using wide-block encryption | |
WO2023160327A1 (en) | Container image management | |
CN112162925A (zh) | 一种基于服务虚拟化的测试方法和*** | |
US11303712B1 (en) | Service management in distributed system | |
CN113791735A (zh) | 视频数据存储方法、装置、计算机设备及存储介质 | |
US11106514B2 (en) | Message stream processor microbatching | |
AU2021269911A1 (en) | Optimized deployment of analytic models in an edge topology | |
CN111010453B (zh) | 服务请求处理方法、***、电子设备及计算机可读介质 | |
US11526379B2 (en) | Application building in a distributed computing environment | |
CN112988738A (zh) | 用于区块链的数据分片方法和装置 | |
CN114844788B (zh) | 网络数据分析方法、***、设备及存储介质 | |
WO2012171363A1 (zh) | 分布式缓存***中的数据操作方法和装置 | |
WO2023138923A1 (en) | Failure prediction using informational logs and golden signals | |
US20230177385A1 (en) | Federated machine learning based on partially secured spatio-temporal data | |
CN113689296B (zh) | 一种异步可信计算的合约调度方法、装置和电子设备 | |
US20230061902A1 (en) | Intelligent dataset slicing during microservice handshaking | |
CN111078654B (zh) | 一种分享信息的方法与设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |