1.本技术涉及互联网技术领域,尤其涉及一种业务请求处理方法及系统。
背景技术:2.当用户访问互联网时,经常会出现高并发的热点内容访问场景,如果出现业务服务中断,将给用户和企业带来较大影响。导致业务服务中断的原因包括:不可预知故障、高并发压力超出服务器承受的上限、服务器资源不足等,相关技术中,为了保障业务服务的高可用,可以通过增加cdn(content delivery network,内容分发网络)服务器用以分流,分担业务服务的流量压力。
3.然而,该方法需要及时对cdn服务器中的缓存文件进行刷新,避免热点流量的缓存文件过期,导致大量cdn回源请求到业务服务,从而造成高并发压力的风险。并且,由于互联网业务往往需要千万级的缓存文件,刷新缓存文件的时间比较长,运维成本和难度也较高。
技术实现要素:4.为了解决上述技术问题,本技术提供了一种业务请求处理方法、系统、电子设备及存储介质。
5.根据本技术的第一方面,提供了一种业务请求处理方法,应用于预先建立的包含业务请求数据的数据源服务器,包括:
6.接收网关设备发送的分流业务请求,其中,所述分流业务请求由所述网关设备接收自终端设备;
7.根据预设分流策略,从内容分发网络服务器、业务服务器和所述数据源服务器中选取至少两个服务器以构成多层级的目标服务器;
8.通过所述目标服务器对所述分流业务请求进行处理,得到所述分流业务请求对应的当前请求数据;
9.向所述网关设备发送所述当前请求数据,以使所述网关设备将所述当前请求数据发送至所述分流业务请求对应的终端设备。
10.根据本技术的第二方面,提供了一种业务请求处理方法,应用于网关设备,包括:
11.接收多个终端设备发送的业务请求,从所述业务请求中获取分流业务请求;
12.向预先建立的包含业务请求数据的数据源服务器发送所述分流业务请求,以使所述数据源服务器根据预设分流策略,从内容分发网络服务器、业务服务器和所述数据源服务器中选取至少两个服务器以构成多层级的目标服务器,通过所述目标服务器对所述分流业务请求进行处理,得到并返回所述分流业务请求对应的当前请求数据;
13.向业务服务器发送所述业务请求中除所述分流业务请求之外的其他请求,以使所述业务服务器对所述其他请求进行处理,得到并返回对应的当前请求数据;
14.将接收到的所述当前请求数据发送至对应的终端设备。
15.根据本技术的第三方面,提供了一种业务请求处理系统,包括:网关设备、内容分
发网络服务器、业务服务器和预先建立的包含业务请求数据的数据源服务器;
16.所述网关设备,用于接收多个终端设备发送的业务请求,从所述业务请求中获取分流业务请求,向所述数据源服务器发送所述分流业务请求,以及向所述业务服务器发送所述业务请求中除所述分流业务请求之外的其他请求;
17.所述数据源服务器,用于根据预设分流策略,从所述内容分发网络服务器、所述业务服务器和所述数据源服务器中选取至少两个服务器以构成多层级的目标服务器;通过所述目标服务器对所述分流业务请求进行处理,得到所述分流业务请求对应的当前请求数据,并向所述网关设备发送所述当前请求数据;
18.所述业务服务器,用于对所述其他请求进行处理,得到并返回对应的当前请求数据;
19.所述网关设备,还用于将接收到的所述当前请求数据发送至所述分流业务请求对应的终端设备。
20.根据本技术的第四方面,提供了一种电子设备,包括:处理器,所述处理器用于执行存储于存储器的计算机程序,所述计算机程序被处理器执行时实现第一方面或第二方面所述的方法。
21.根据本技术的第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面或第二方面所述的方法。
22.根据本技术的第六方面,提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行第一方面或第二方面所述的方法。
23.本技术一些实施例提供的技术方案与相关技术相比具有如下优点:
24.通过建立数据源服务器来接收网关设备发送的分流业务请求,根据预设分流策略,从内容分发网络服务器、业务服务器和数据源服务器中选取至少两个服务器以构成多层级的目标服务器,通过目标服务器对分流业务请求进行处理,得到分流业务请求对应的当前请求数据。例如,可以根据预设分流策略,选取内容分发网络服务器、业务服务器和数据源服务器,通过三个层级的服务器来对分流业务请求进行处理,或者,选取内容分发网络服务器、业务服务器和数据源服务器中的任意两个,通过两个层级的服务器来对分流业务请求进行处理。可见,本技术通过整合内容分发网络服务器、业务服务器和数据源服务器的性能优势,能够随时、有效地对分流业务请求进行处理,从而可以在发生高并发请求时提高业务服务的可用性。并且,通过建立数据源服务器来提供分流服务,可以有效分担相关技术中内容分发网络服务器回源请求的压力,保护业务服务,无需触发内容分发网络服务器提前刷新缓存文件,从而降低运维成本和难度。
附图说明
25.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
26.为了更清楚地说明本技术一些实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
27.图1示出了可以应用于本技术实施例的业务请求处理方法的示例性系统架构的示
意图;
28.图2为本技术实施例中业务请求处理方法的一种流程图;
29.图3为本技术实施例中网关设备对流量进行分流的一种示意图;
30.图4为本技术实施例中网关设备对流量进行分流的又一种示意图;
31.图5为本技术实施例中网关设备对流量进行分流的又一种示意图;
32.图6为本技术实施例中获取业务请求数据的一种流程图;
33.图7为本技术实施例中获取业务请求数据的的又一种流程图;
34.图8为本技术实施例中获取业务请求数据的的又一种流程图;
35.图9为本技术实施例中获取业务请求数据的的又一种流程图;
36.图10为本技术实施例中业务请求处理方法的又一种流程图;
37.图11为本技术实施例中业务请求处理方法的一种示意图;
38.图12为本技术实施例中业务请求处理方法的又一种示意图;
39.图13为本技术实施例中业务请求处理方法的又一种流程图;
40.图14为本技术实施例中业务请求处理系统的一种示意图;
41.图15为本技术实施例中电子设备的一种示意图。
具体实施方式
42.为使本技术的目的、实施方式和优点更加清楚,下面将结合本技术示例性实施例中的附图,对本技术示例性实施方式进行清楚、完整地描述,显然,所描述的示例性实施例仅是本技术一部分实施例,而不是全部的实施例。
43.基于本技术描述的示例性实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术所附权利要求保护的范围。此外,虽然本技术中公开内容按照示范性一个或几个实例来介绍,但应理解,可以就这些公开内容的各个方面也可以单独构成一个完整实施方式。需要说明的是,本技术中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本技术的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
44.图1示出了可以应用于本技术实施例的业务请求处理方法的示例性系统架构的示意图。
45.如图1所示,系统架构100包括:终端设备101、网关设备102、业务服务器103、数据源服务器104和内容分发网络服务器105。终端设备101和网关设备102之间、终端设备101和内容分发网络服务器105之间、网关设备102和业务服务器103之间、业务服务器103和数据源服务器104之间、数据源服务器104和内容分发网络服务器105之间可以通过网络进行通信。
46.终端设备101可以包括但不限于台式计算机、便携式计算机、智能手机和平板电脑等等。业务服务器103可以是多种不同类型的业务服务器构成的服务器集群。数据源服务器104是本技术实施例中预先建立的服务器,通过采集业务服务器103返回的业务请求数据,存储了日常用户请求的业务数据,例如首页、详情页等访问量较大的业务系统接口。网关设备将业务请求分流到数据源服务器104,通过灵活配置多层级的分流策略,支持各种实际场景以抵抗高并发。
47.根据预设分流策略,从业务服务器103、数据源服务器104和内容分发网络服务器105中选取至少两个服务器构成多层级的服务器,例如,可以选取任意两个服务器构成两个层级的服务器,或者直接将该三个服务器构成三个层级的服务器,通过整合业务服务器103、数据源服务器104和内容分发网络服务器105的性能优势来处理分流业务请求,以提高业务服务的可用性。
48.参见图2,图2为本技术实施例中业务请求处理方法的一种流程图,应用于预先建立的包含业务请求数据的数据源服务器,可以包括以下步骤:
49.步骤s210,接收网关设备发送的分流业务请求,其中,分流业务请求由网关设备接收自终端设备。
50.网关设备是云端系统的请求接入层,即各个终端设备发送的业务请求可以经过网关设备进行路由,具备按照域名、应用程序接口、应用程序接口入参值(例如,匿名用户/实名用户)等多种维度进行灵活分流的能力。
51.参见图3,图3为本技术实施例中网关设备对流量进行分流的一种示意图,网关设备可以完成超限流量转移。网关设备支持对业务系统接口配置单位时间的最大请求数量,即预设数量m,当前接收到的业务请求的数量超出m则记为超限流量。如果业务请求的数量n大于预设数量m,从业务请求中获取n-m个业务请求作为分流业务请求;其中,n和m为正整数。对于分流业务请求,网关设备可配置自动转移到数据源服务器,即自建的数据源站,给终端设备返回数据源服务器中存储的业务请求数据,起到防止突发流量洪峰,自动保护业务系统不被冲垮的作用。
52.参见图4,图4为本技术实施例中网关设备对流量进行分流的又一种示意图,网关设备还可以完成指定流量转移。可选的,可以按照用户特征进行分流,将未注册的匿名用户请求流量转移到数据源服务器,既优先保证实名用户能够及时获得请求的业务数据,又兼顾分担了业务系统的压力,即使数据源服务器的数据更新相对业务服务器缓慢,但对匿名用户也不会产生影响。
53.参见图5,图5为本技术实施例中网关设备对流量进行分流的又一种示意图,网关设备还可以完成故障期的全部流量转移。如果业务服务器发生故障,直接将接收到的业务请求作为分流业务请求,可以即对全部流量进行转移,避免影响业务服务。
54.步骤s220,根据预设分流策略,从内容分发网络服务器、业务服务器和数据源服务器中选取至少两个服务器以构成多层级的目标服务器。
55.数据源服务器中可以包含分流服务,分流服务支持配置内容分发网络服务器、数据源服务器、业务服务器的多层级数据获取策略,利用热加载配置文件,可以灵活调整、即时生效分流策略。配置文件中的配置项可参见表1。
56.表1
57.配置项选项是否访问内容分发网络服务器0-否、1-是是否访问数据源服务器0-否、1-是是否访问业务服务器0-否、1-是
58.假设预设分流策略为:访问内容分发网络服务器、访问数据源服务器、访问业务服务器,那么,直接将内容分发网络服务器、业务服务器和数据源服务器直接作为目标服务
器,即目标服务器的数量为三个,构成三层级的目标服务器。假设预设分流策略为:访问内容分发网络服务器、访问数据源服务器、不访问业务服务器,那么,直接将内容分发网络服务器和数据源服务器直接作为目标服务器,即目标服务器的数量为两个,构成两层级的目标服务器。
59.如图3~图5所示,在多层级分流策略中,共包含四种分流策略,且每种分流策略中各个服务器具有对应的层级。例如,内容分发网络服务器-》数据源服务器-》业务服务器的分流策略中,内容分发网络服务器位于第一层级、数据源服务器位于第二层级、业务服务器位于第三层级,那么,在处理分流业务请求时,优先从内容分发网络服务器获取业务请求数据,在从内容分发网络服务器获取不到业务请求数据的情况下,再从数据源服务器获取,如果从数据源服务器仍然获取不到业务请求数据,再从业务服务器获取。
60.步骤s230,通过目标服务器对分流业务请求进行处理,得到分流业务请求对应的当前请求数据。
61.步骤s240,向网关设备发送当前请求数据,以使网关设备将当前请求数据发送至分流业务请求对应的终端设备。
62.如前所述,预设分流策略不同,对应的目标服务器也不同。相应地,获取分流业务请求对应的当前请求数据的方式也会不同。在一些实施例中,目标服务器包括:内容分发网络服务器、业务服务器和数据源服务器,且内容分发网络服务器位于第一层级、数据源服务器位于第二层级、业务服务器位于第三层级。相应地,获取业务请求数据的流程可参见图6,可以包括以下步骤:
63.步骤s610,数据源服务器通过网关设备向终端设备发送重定向统一资源定位系统。
64.具体而言,数据源服务器可以先将重定向url(统一资源定位系统)发送至网关设备,网关设备进一步将该重定向统一资源定位系统发送至终端设备。
65.步骤s620,终端设备根据重定向统一资源定位系统生成重定向请求,并向内容分发网络服务器发送重定向请求,以从内容分发网络服务器获取分流业务请求对应的当前请求数据。
66.需要说明的是,重定向统一资源定位系统指向内容分发网络服务器,这样,通过重定向终端设备可以从内容分发网络服务器获取分流业务请求对应的当前请求数据。
67.步骤s630,如果内容分发网络服务器本地存在分流业务请求对应的当前请求数据,将该当前请求数据发送至终端设备。
68.步骤s640,如果内容分发网络服务器本地不存在分流业务请求对应的当前请求数据,通过网关设备向数据源服务器发送回源请求。
69.具体而言,内容分发网络服务器先将回源请求发送至网关设备,再由网关设备转发至数据源服务器。
70.步骤s650,数据源服务器接收到内容分发网络服务器发送的回源请求后,判断本地是否存在当前请求数据,如果本地存在当前请求数据,获取当前请求数据。
71.数据源服务器中存储了大量的业务请求数据,例如,可以是业务服务器中用户经常访问的95%的业务请求数据。在大多场景下,数据源服务器可以直接从本地获取到分流业务请求对应的当前请求数据。
72.步骤s660,如果本地不存在当前请求数据,通过调用业务应用程序接口以从业务服务器获取当前请求数据。
73.步骤s670,如果未从业务服务器获取到当前请求数据,将预设数据作为分流业务请求对应的当前请求数据。其中,预设数据是预先设置的默认数据,例如,可以是默认网页等。
74.可以看出,在三层级的分流策略下,可以充分整合内容分发网络服务器、数据源服务器和业务服务器的优势,共同抵御业务请求的压力,达到较好的分流效果。
75.在一些场景下,例如,业务服务器发生故障等,目标服务器可以包括:内容分发网络服务器和数据源服务器,且内容分发网络服务器位于第一层级、数据源服务器位于第二层级。
76.相应地,获取业务请求数据的流程可参见图7,可以包括以下步骤:
77.步骤s710,通过网关设备向终端设备发送重定向统一资源定位系统。
78.步骤s720,终端设备根据重定向统一资源定位系统生成重定向请求,并向内容分发网络服务器发送重定向请求,以从内容分发网络服务器获取分流业务请求对应的当前请求数据。
79.步骤s730,如果内容分发网络服务器本地存在分流业务请求对应的当前请求数据,将该当前请求数据发送至终端设备。
80.步骤s740,如果内容分发网络服务器本地不存在分流业务请求对应的当前请求数据,通过网关设备向数据源服务器发送回源请求。
81.步骤s750,在接收到内容分发网络服务器发送的回源请求后,判断本地是否存在当前请求数据,如果本地存在当前请求数据,获取当前请求数据。
82.步骤s760,如果本地不存在当前请求数据,将预设数据作为分流业务请求对应的当前请求数据。
83.上述步骤s710~步骤s750与图6实施例步骤s610~步骤s650相同,具体参见图6实施例中的描述即可,在此不再赘述。不同之处在于,当数据源服务器中不存在当前请求数据时,不再继续从业务服务器获取数据,而是直接将预设数据作为当前请求数据。
84.在一些场景下,为了节省数据源服务器或者数据源服务器发生异常,目标服务器可以包括:内容分发网络服务器和业务服务器,且内容分发网络服务器位于第一层级、业务服务器位于第二层级。
85.相应地,获取业务请求数据的流程可参见图8,可以包括以下步骤:
86.步骤s810,通过网关设备向终端设备发送重定向统一资源定位系统。
87.步骤s820,终端设备根据重定向统一资源定位系统生成重定向请求,并向内容分发网络服务器发送重定向请求,以从内容分发网络服务器获取分流业务请求对应的当前请求数据。
88.步骤s830,如果内容分发网络服务器本地存在分流业务请求对应的当前请求数据,将该当前请求数据发送至终端设备。
89.步骤s840,如果内容分发网络服务器本地不存在分流业务请求对应的当前请求数据,通过网关设备向数据源服务器发送回源请求。
90.上述步骤s810~步骤s840与图6实施例步骤s610~步骤s640相同,具体参见图6实
施例中的描述即可,在此不再赘述。
91.步骤s850,在接收到内容分发网络服务器发送的回源请求后,通过调用业务应用程序接口以从业务服务器获取当前请求数据。
92.数据源服务器接收到回源请求后,不再从本地获取当前请求数据,而是直接从业务服务器获取当前请求数据。
93.步骤s860,如果未从业务服务器获取到当前请求数据,将预设数据作为分流业务请求对应的当前请求数据。
94.在一些场景下,为了减少内容分发网络服务器的维护成本,或者内容分发网络服务器发生故障,目标服务器可以包括:数据源服务器和业务服务器,且数据源服务器位于第一层级、业务服务器位于第二层级。
95.相应地,获取业务请求数据的流程可参见图9,可以包括以下步骤:
96.步骤s910,判断本地是否存在当前请求数据,如果本地存在当前请求数据,获取当前请求数据。
97.步骤s920,如果本地不存在当前请求数据,通过调用业务应用程序接口以从业务服务器获取当前请求数据。
98.步骤s930,如果未从业务服务器获取到当前请求数据,将预设数据作为分流业务请求对应的当前请求数据。
99.数据源服务器接收到分流业务请求后,直接优先从本地获取分流业务请求对应的当前请求数据。如果本地不存在当前请求数据,再从业务服务器获取当前请求数据,如果从业务服务器中也不存在当前请求数据,则直接将预设数据作为当前请求数据。
100.本技术实施例的业务请求处理方法,在不同的场景下,根据内容分发网络服务器、业务服务器和数据源服务器构建多层级的目标服务器,能够随时、有效地对分流业务请求进行处理,从而可以在发生高并发请求时提高业务服务的可用性。并且,通过建立数据源服务器来提供分流服务,可以有效分担相关技术中内容分发网络服务器回源请求的压力,保护业务服务,无需触发内容分发网络服务器提前刷新缓存文件,从而降低运维成本和难度。
101.参见图10,图10为本技术实施例中业务请求处理方法的又一种流程图;
102.步骤s1010,接收网关设备发送的分流业务请求,其中,分流业务请求由网关设备接收自终端设备。
103.步骤s1020,根据预设分流策略,从内容分发网络服务器、业务服务器和数据源服务器中选取至少两个服务器以构成多层级的目标服务器。
104.步骤s1030,通过目标服务器对分流业务请求进行处理,得到分流业务请求对应的当前请求数据。
105.上述步骤s1010~步骤s1030与图2实施例中步骤s210~步骤s230相同,具体参见图2实施例中的描述即可,在此不再赘述。
106.步骤s1040,向网关设备发送包含数据采集标识的当前请求数据,以使网关设备将当前请求数据发送至分流业务请求对应的终端设备,并确定从业务服务器获取到当前请求数据的情况下,向数据源服务器发送储存消息。
107.在一些实施例中,数据源服务器在向网关设备返回的当前请求数据中可以携带数据采集标识,数据采集标识例如可以为jhk-d-collect-data。由网关设备对数据采集标识
进行识别后,确定是否采集当前请求数据,即是否将当前请求数据存储至数据源服务器。例如,jhk-d-collect-data=1表示采集,jhk-d-collect-data=0表示不采集。
108.网关设备识别到采集场景后,可以进一步根据当前请求数据的正确性决定是否发送储存消息,具体如下:
109.如果业务服务器返回http status=200的正常数据,则可以发送异步的储存消息给数据源服务器,消息体可以包含分流业务请求的url、业务服务器返回的当前请求数据、业务服务器返回的响应头的字段等。如果业务服务器返回http status!=200的错误数据,则不发送储存消息。
110.步骤s1050,响应于接收到储存消息,判断本地是否存在分流业务请求的历史请求数据。
111.数据源服务器接收到储存消息后,可以判断本地是否存在该分流业务请求的历史请求数据。如果本地不存在分流业务请求的历史请求数据,执行步骤s1060;如果本地存在分流业务请求的历史请求数据,执行步骤s1070。
112.步骤s1060,将当前请求数据存储至数据源服务器。
113.数据源服务器存储当前请求数据时,保存的字段可参见表2。
114.表2
[0115][0116]
可以看出,存储的字段中包括url的md5(信息摘要算法)值,因此根据md5值可以判断本地是否存在分流业务请求的历史请求数据。
[0117]
步骤s1070,如果历史请求数据与当前请求数据不同,根据当前请求数据对历史请求数据进行更新。
[0118]
可以理解的是,如果历史请求数据与当前请求数据相同,表示数据源服务器本地已经存储有当前请求数据,可以不作处理。如果历史请求数据与当前请求数据不同,再根据当前请求数据对历史请求数据进行更新。在一些实施例中,为了缓解数据源服务器更新数据的压力,可以预先设置最小更新间隔,例如,可以为10分钟,获取当前系统时间和历史请求数据的更新时间,如果当前系统时间和历史请求数据的更新时间之间的时间间隔大于预
设时间间隔,根据当前请求数据对历史请求数据进行更新。如果当前系统时间和历史请求数据的更新时间之间的时间间隔小于或等于预设时间间隔,可以不对历史请求数据进行更新。可以看出,在缓解数据源服务器更新数据压力的情况下,数据源服务器的数据更新相比业务服务器较慢。
[0119]
在一些实施例中,数据源服务器向网关设备发送的当前请求数据中还可以包含生存时间值,生存时间值表示将缓存文件(即当前请求数据)存储至内容分发网络服务器中的时间。可以理解的是,如果从数据源服务器或业务服务器获取到当前请求数据,可以返回对应的生存时间值,例如可以是2小时等。如果直接将预设数据作为当前请求数据,可以不生成缓存文件,即返回的生存时间值为0。
[0120]
需要说明的是,生存时间值越长,内容分发网络服务器所能承受的流量越高,越能缓解数据源服务器和业务服务器的压力。当然,内容分发网络服务器中的缓存文件就无法得到及时刷新。生存时间值越小,内容分发网络服务器所能承受的流量越低,越无法缓解数据源服务器和业务服务器的压力,但是,内容分发网络服务器中的缓存文件可以得到及时刷新。本技术可以根据实际情况对生存时间值进行设置,能够在缓解数据源服务器和业务服务器的压力的同时,及时刷新,内容分发网络服务器中的缓存文件。
[0121]
参见图11,图11为本技术实施例中业务请求处理方法的一种示意图。针对分流流量,数据源服务器中的分流服务接收到分流流量后,查询接口返回重定向url,网关设备将重定向url转发至终端设备,终端设备基于该重定向url生成重定向请求,并向内容分发网络服务器发送重定向请求,以获取业务请求数据。如果内容分发网络服务器中包含分流流量对应的业务请求数据,直接返回该业务请求数据;如果内容分发网络服务器中不包含分流流量对应的业务请求数据,通过网关设备向数据源服务器发送回源请求,以从回源接口获取业务请求数据。
[0122]
分流服务查询es数据仓获取业务请求数据,其中,es数据仓中存储有业务服务器返回的业务请求数据,可以基于elasticsearch生成,elasticsearch是分布式集群的分析引擎,适用于数据采集、存储、查询、分析,本发明采用ssd(固态硬盘),支撑es亿级海量数据的磁盘存储和毫秒级查询性能。
[0123]
如果es数据仓不存在业务数据,通过调用业务系统接口从业务服务器获取业务请求数据。网关设备将业务请求数据返回给终端设备前,可以发送异步消息给kafka消息平台,采集服务从kafka接收业务请求数据、相对地址uri(统一资源标识符)等信息,保存到es数据仓。后台清理服务可以定期(例如每7天)删除es数据仓中长时间没有使用的过期数据,从而为有效数据提供空间支持。
[0124]
参见图12,图12为本技术实施例中业务请求处理方法的又一种示意图。针对正常流量,网关设备直接将正常流量发送至业务服务器,以从业务服务器获取业务请求数据,并返回给终端设备。并且,将业务请求数据发送至数据源服务器,以将业务请求数据保存至es数据仓中。
[0125]
本技术实施例的业务请求处理方法,不管是正常流量还是分流流量,均可以通过异步采集的方式存储用户实时流量的业务请求数据,在此过程中无需额外请求,以零消耗方式搭建出一个可分流的数据源站。并且,由于搭建了独立的通用系统,对现有业务服务器中的业务系统无侵入,通过配置即可灵活接入业务系统接口以获取业务请求数据。通过多
层级的分流方式,并发性能达到业务服务器的10倍以上,提升了高并发场景下的系统可靠性,从而减少业务服务器的扩容部署数量。并且,有效规避了cdn服务器回源造成的业务压力风险,无需提前刷新cdn服务器,大幅提升了运维工作效率,节省了人力投入成本。
[0126]
本技术实施例还提供了一种业务请求处理方法,应用于网关设备,参见图13,可以包括以下步骤:
[0127]
步骤s1310,接收多个终端设备发送的业务请求,从业务请求中获取分流业务请求。
[0128]
步骤s1320,向预先建立的包含业务请求数据的数据源服务器发送分流业务请求,以使数据源服务器根据预设分流策略,从内容分发网络服务器、业务服务器和数据源服务器中选取至少两个服务器以构成多层级的目标服务器,通过目标服务器对分流业务请求进行处理,得到并返回分流业务请求对应的当前请求数据。
[0129]
步骤s1330,向业务服务器发送业务请求中除分流业务请求之外的其他请求,以使业务服务器对其他请求进行处理,得到并返回对应的当前请求数据。
[0130]
步骤s1340,将接收到的当前请求数据发送至对应的终端设备。
[0131]
可选的,从业务请求中获取分流业务请求,包括:
[0132]
如果业务请求的数量n大于预设数量m,从业务请求中获取n-m个业务请求作为分流业务请求;其中,n和m为正整数;
[0133]
如果业务服务器发生故障,将业务请求作为分流业务请求。
[0134]
由于图13实施例是与数据源服务器侧的业务请求处理方法相对应的网关设备侧的业务请求处理方法,具体参见上述数据源服务器侧的业务请求处理方法即可,在此不再赘述。
[0135]
本技术实施例还提供了一种业务请求处理系统,参见图14,业务请求处理系统1400包括:网关设备1410、内容分发网络服务器1420、业务服务器1430和预先建立的包含业务请求数据的数据源服务器1440;
[0136]
网关设备1410,用于接收多个终端设备发送的业务请求,从业务请求中获取分流业务请求,向数据源服务器发送分流业务请求,以及向业务服务器发送业务请求中除分流业务请求之外的其他请求;
[0137]
数据源服务器1440,用于根据预设分流策略,从内容分发网络服务器、业务服务器和数据源服务器中选取至少两个服务器以构成多层级的目标服务器;通过目标服务器对分流业务请求进行处理,得到分流业务请求对应的当前请求数据,并向网关设备发送当前请求数据;
[0138]
业务服务器1430,用于对其他请求进行处理,得到并返回对应的当前请求数据;
[0139]
网关设备1410,还用于将接收到的当前请求数据发送至分流业务请求对应的终端设备。
[0140]
可选的,目标服务器包括:内容分发网络服务器、业务服务器和数据源服务器,且内容分发网络服务器位于第一层级、数据源服务器位于第二层级、业务服务器位于第三层级;
[0141]
数据源服务器1440,具体用于通过下述步骤实现通过目标服务器对分流业务请求进行处理,得到分流业务请求对应的当前请求数据:
[0142]
通过网关设备向终端设备发送重定向统一资源定位系统,以使终端设备根据重定向统一资源定位系统生成重定向请求,并向内容分发网络服务器发送重定向请求,以从内容分发网络服务器获取分流业务请求对应的当前请求数据;
[0143]
如果接收到内容分发网络服务器发送的回源请求,判断本地是否存在当前请求数据,如果本地存在当前请求数据,获取当前请求数据;
[0144]
如果本地不存在当前请求数据,通过调用业务应用程序接口以从业务服务器获取当前请求数据;
[0145]
如果未从业务服务器获取到当前请求数据,将预设数据作为分流业务请求对应的当前请求数据。
[0146]
可选地,目标服务器包括:内容分发网络服务器和数据源服务器,且内容分发网络服务器位于第一层级、数据源服务器位于第二层级;
[0147]
数据源服务器1440,具体用于通过下述步骤实现通过目标服务器对分流业务请求进行处理,得到分流业务请求对应的当前请求数据:
[0148]
通过网关设备向终端设备发送重定向统一资源定位系统,以使终端设备根据重定向统一资源定位系统生成重定向请求,并向内容分发网络服务器发送重定向请求,以从内容分发网络服务器获取分流业务请求对应的当前请求数据;
[0149]
如果接收到内容分发网络服务器发送的回源请求,判断本地是否存在当前请求数据,如果本地存在当前请求数据,获取当前请求数据;
[0150]
如果本地不存在当前请求数据,将预设数据作为分流业务请求对应的当前请求数据。
[0151]
可选的,目标服务器包括:内容分发网络服务器和业务服务器,且内容分发网络服务器位于第一层级、业务服务器位于第二层级;
[0152]
数据源服务器1440,具体用于通过下述步骤实现通过目标服务器对分流业务请求进行处理,得到分流业务请求对应的当前请求数据:
[0153]
通过网关设备向终端设备发送重定向统一资源定位系统,以使终端设备根据重定向统一资源定位系统生成重定向请求,并向内容分发网络服务器发送重定向请求,以从内容分发网络服务器获取分流业务请求对应的当前请求数据;
[0154]
如果接收到内容分发网络服务器发送的回源请求,通过调用业务应用程序接口以从业务服务器获取当前请求数据;
[0155]
如果未从业务服务器获取到当前请求数据,将预设数据作为分流业务请求对应的当前请求数据。
[0156]
可选的,目标服务器包括:数据源服务器和业务服务器,且数据源服务器位于第一层级、业务服务器位于第二层级;
[0157]
数据源服务器1440,具体用于通过下述步骤实现通过目标服务器对分流业务请求进行处理,得到分流业务请求对应的当前请求数据:
[0158]
判断本地是否存在当前请求数据,如果本地存在当前请求数据,获取当前请求数据;
[0159]
如果本地不存在当前请求数据,通过调用业务应用程序接口以从业务服务器获取当前请求数据;
[0160]
如果未从业务服务器获取到当前请求数据,将预设数据作为分流业务请求对应的当前请求数据。
[0161]
可选的,数据源服务器1440,具体用于向网关设备发送包含数据采集标识的当前请求数据,以使网关设备确定从业务服务器获取到当前请求数据的情况下,向数据源服务器发送储存消息;
[0162]
数据源服务器1440还用于响应于接收到储存消息,判断本地是否存在分流业务请求的历史请求数据;如果本地不存在分流业务请求的历史请求数据,将当前请求数据存储至数据源服务器;如果本地存在分流业务请求的历史请求数据,且历史请求数据与当前请求数据不同,根据当前请求数据对历史请求数据进行更新。
[0163]
可选的,数据源服务器1440具体用于通过下述步骤实现根据当前请求数据对历史请求数据进行更新:
[0164]
获取当前系统时间和历史请求数据的更新时间;
[0165]
如果当前系统时间和历史请求数据的更新时间之间的时间间隔大于预设时间间隔,根据当前请求数据对历史请求数据进行更新。
[0166]
上述系统中各服务器的具体细节已经在对应的方法中进行了详细的描述,因此此处不再赘述。
[0167]
在本技术的示例性实施例中,还提供一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行本示例实施方式中上述业务请求处理方法。
[0168]
图15为本技术实施例中电子设备的一种结构示意图。需要说明的是,图9示出的电子设备1500仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
[0169]
如图15所示,电子设备1500包括中央处理单元(cpu)1501,其可以根据存储在只读存储器(rom)1502中的程序或者从存储部分1508加载到随机访问存储器(ram)1503中的程序而执行各种适当的动作和处理。在ram 1503中,还存储有系统操作所需的各种程序和数据。中央处理单元1501、rom 1502以及ram 1503通过总线1504彼此相连。输入/输出(i/o)接口1505也连接至总线1504。
[0170]
以下部件连接至i/o接口1505:包括键盘、鼠标等的输入部分1506;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分1507;包括硬盘等的存储部分1508;以及包括诸如局域网(lan)卡、调制解调器等的网络接口卡的通信部分1509。通信部分1509经由诸如因特网的网络执行通信处理。驱动器1510也根据需要连接至i/o接口1505。可拆卸介质1511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1510上,以便于从其上读出的计算机程序根据需要被安装入存储部分1508。
[0171]
特别地,根据本技术的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1509从网络上被下载和安装,和/或从可拆卸介质1511被安装。在该计算机程序被中央处理单元1501执行时,执行本技术的装置中限定的各种功能。
[0172]
本发明实施例还提供一种计算机程序产品,包括:当所述计算机程序产品在计算
机上运行时,使得所述计算机实现上述业务请求处理方法。
[0173]
为了方便解释,已经结合具体的实施方式进行了上述说明。但是,上述在一些实施例中讨论不是意图穷尽或者将实施方式限定到上述公开的具体形式。根据上述的教导,可以得到多种修改和变形。上述实施方式的选择和描述是为了更好的解释原理以及实际的应用,从而使得本领域技术人员更好的使用实施方式以及适于具体使用考虑的各种不同的变形的实施方式。
[0174]
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
技术特征:1.一种业务请求处理方法,其特征在于,包括:接收网关设备发送的分流业务请求,其中,所述分流业务请求由所述网关设备接收自终端设备;根据预设分流策略,从内容分发网络服务器、业务服务器和预先建立的包含业务请求数据的数据源服务器中选取至少两个服务器以构成多层级的目标服务器;通过所述目标服务器对所述分流业务请求进行处理,得到所述分流业务请求对应的当前请求数据;向所述网关设备发送所述当前请求数据,以使所述网关设备将所述当前请求数据发送至所述分流业务请求对应的终端设备。2.根据权利要求1所述的方法,其特征在于,所述目标服务器包括:所述内容分发网络服务器、所述业务服务器和所述数据源服务器,且所述内容分发网络服务器位于第一层级、所述数据源服务器位于第二层级、所述业务服务器位于第三层级;所述通过所述目标服务器对所述分流业务请求进行处理,得到所述分流业务请求对应的当前请求数据,包括:通过所述网关设备向所述终端设备发送重定向统一资源定位系统,以使所述终端设备根据所述重定向统一资源定位系统生成重定向请求,并向所述内容分发网络服务器发送重定向请求,以从所述内容分发网络服务器获取所述分流业务请求对应的当前请求数据;如果接收到所述内容分发网络服务器发送的回源请求,判断本地是否存在所述当前请求数据,如果本地存在所述当前请求数据,获取所述当前请求数据;如果本地不存在所述当前请求数据,通过调用业务应用程序接口以从所述业务服务器获取所述当前请求数据;如果未从所述业务服务器获取到所述当前请求数据,将预设数据作为所述分流业务请求对应的当前请求数据。3.根据权利要求1所述的方法,其特征在于,所述目标服务器包括:所述内容分发网络服务器和所述数据源服务器,且所述内容分发网络服务器位于第一层级、所述数据源服务器位于第二层级;所述通过所述目标服务器对所述分流业务请求进行处理,得到所述分流业务请求对应的当前请求数据,包括:通过所述网关设备向所述终端设备发送重定向统一资源定位系统,以使所述终端设备根据所述重定向统一资源定位系统生成重定向请求,并向所述内容分发网络服务器发送重定向请求,以从所述内容分发网络服务器获取所述分流业务请求对应的当前请求数据;如果接收到所述内容分发网络服务器发送的回源请求,判断本地是否存在所述当前请求数据,如果本地存在所述当前请求数据,获取所述当前请求数据;如果本地不存在所述当前请求数据,将预设数据作为所述分流业务请求对应的当前请求数据。4.根据权利要求1所述的方法,其特征在于,所述目标服务器包括:所述内容分发网络服务器和所述业务服务器,且所述内容分发网络服务器位于第一层级、所述业务服务器位于第二层级;所述通过所述目标服务器对所述分流业务请求进行处理,得到所述分流业务请求对应
的当前请求数据,包括:通过所述网关设备向所述终端设备发送重定向统一资源定位系统,以使所述终端设备根据所述重定向统一资源定位系统生成重定向请求,并向所述内容分发网络服务器发送重定向请求,以从所述内容分发网络服务器获取所述分流业务请求对应的当前请求数据;如果接收到所述内容分发网络服务器发送的回源请求,通过调用业务应用程序接口以从所述业务服务器获取所述当前请求数据;如果未从所述业务服务器获取到所述当前请求数据,将预设数据作为所述分流业务请求对应的当前请求数据。5.根据权利要求1所述的方法,其特征在于,所述目标服务器包括:所述数据源服务器和所述业务服务器,且所述数据源服务器位于第一层级、所述业务服务器位于第二层级;所述通过所述目标服务器对所述分流业务请求进行处理,得到所述分流业务请求对应的当前请求数据,包括:判断本地是否存在所述当前请求数据,如果本地存在所述当前请求数据,获取所述当前请求数据;如果本地不存在所述当前请求数据,通过调用业务应用程序接口以从所述业务服务器获取所述当前请求数据;如果未从所述业务服务器获取到所述当前请求数据,将预设数据作为所述分流业务请求对应的当前请求数据。6.根据权利要求2或4或5所述的方法,其特征在于,所述向所述网关设备发送所述当前请求数据,包括:向所述网关设备发送包含数据采集标识的所述当前请求数据,以使所述网关设备确定从所述业务服务器获取到所述当前请求数据的情况下,向所述数据源服务器发送储存消息;所述方法还包括:响应于接收到所述储存消息,判断本地是否存在所述分流业务请求的历史请求数据;如果本地不存在所述分流业务请求的历史请求数据,将所述当前请求数据存储至所述数据源服务器;如果本地存在所述分流业务请求的历史请求数据,且所述历史请求数据与所述当前请求数据不同,根据所述当前请求数据对所述历史请求数据进行更新。7.根据权利要求6所述的方法,其特征在于,所述根据所述当前请求数据对所述历史请求数据进行更新,包括:获取当前系统时间和所述历史请求数据的更新时间;如果所述当前系统时间和所述历史请求数据的更新时间之间的时间间隔大于预设时间间隔,根据所述当前请求数据对所述历史请求数据进行更新。8.一种业务请求处理方法,其特征在于,包括:接收多个终端设备发送的业务请求,从所述业务请求中获取分流业务请求;向预先建立的包含业务请求数据的数据源服务器发送所述分流业务请求,以使所述数据源服务器根据预设分流策略,从内容分发网络服务器、业务服务器和所述数据源服务器中选取至少两个服务器以构成多层级的目标服务器,通过所述目标服务器对所述分流业务
请求进行处理,得到并返回所述分流业务请求对应的当前请求数据;向业务服务器发送所述业务请求中除所述分流业务请求之外的其他请求,以使所述业务服务器对所述其他请求进行处理,得到并返回对应的当前请求数据;将接收到的所述当前请求数据发送至对应的终端设备。9.根据权利要求8所述的方法,其特征在于,从所述业务请求中获取分流业务请求,包括:如果所述业务请求的数量n大于预设数量m,从所述业务请求中获取n-m个业务请求作为分流业务请求;其中,n和m为正整数;如果所述业务服务器发生故障,将所述业务请求作为分流业务请求。10.一种业务请求处理系统,其特征在于,包括:网关设备、内容分发网络服务器、业务服务器和预先建立的包含业务请求数据的数据源服务器;所述网关设备,用于接收多个终端设备发送的业务请求,从所述业务请求中获取分流业务请求,向所述数据源服务器发送所述分流业务请求,以及向所述业务服务器发送所述业务请求中除所述分流业务请求之外的其他请求;所述数据源服务器,用于根据预设分流策略,从所述内容分发网络服务器、所述业务服务器和所述数据源服务器中选取至少两个服务器以构成多层级的目标服务器;通过所述目标服务器对所述分流业务请求进行处理,得到所述分流业务请求对应的当前请求数据,并向所述网关设备发送所述当前请求数据;所述业务服务器,用于对所述其他请求进行处理,得到并返回对应的当前请求数据;所述网关设备,还用于将接收到的所述当前请求数据发送至所述分流业务请求对应的终端设备。
技术总结本申请涉及一种业务请求处理方法及系统,应用于互联网技术领域,所述方法包括:接收网关设备发送的分流业务请求,其中,分流业务请求由网关设备接收自终端设备;根据预设分流策略,从内容分发网络服务器、业务服务器和数据源服务器中选取至少两个服务器以构成多层级的目标服务器;通过目标服务器对分流业务请求进行处理,得到分流业务请求对应的当前请求数据;向网关设备发送当前请求数据,以使网关设备将当前请求数据发送至分流业务请求对应的终端设备。本申请采用多层级分流方法,可以提高业务服务的可用性。高业务服务的可用性。高业务服务的可用性。
技术研发人员:杜萌 靳伟康 王世文
受保护的技术使用者:聚好看科技股份有限公司
技术研发日:2022.06.22
技术公布日:2022/11/1