1.本发明属于计算机领域,特别是涉及一种路由方法、装置、设备和可读存储介质。
背景技术:2.随着互联网技术的发展,区域化服务部署已成为常态。在区域化服务部署中,针对同一个业务,可以在不同服务区域分别部署一个或多个业务服务器,以方便不同服务区域内的用户选择就近的业务服务器接入,可以为用户提供高质量的服务。
3.目前,隐私合规要求越来越严格,数据的跨区域迁移受到较大限制。因此,当一个服务区域内的用户移动到另一个服务区域时,在接入业务服务器的过程中,由于当前所在服务区域未存储该用户的相关数据,因此无法为该用户提供有效的服务。
技术实现要素:4.本发明实施例的目的在于提供一种路由方法、装置、设备和可读存储介质,以解决用户跨服务区域移动时,无法提供有效服务的问题。
5.在本发明实施例的第一方面,首先提供了一种路由方法,包括:
6.接收客户端发送的业务请求;
7.获取登录所述客户端的用户所属的服务区域的区域标识;
8.响应于所述业务请求,获取对应于所述业务请求的多个业务服务器中各业务服务器的网络地址;
9.从所述多个业务服务器的网络地址中确定与所述区域标识对应的目标业务服务器的网络地址;所述目标业务服务器用于为所述区域标识所属服务区域内的用户处理所述业务请求;
10.向所述目标业务服务器的网络地址转发所述业务请求,以使所述目标业务服务器处理所述业务请求。
11.在本发明实施例的第二方面,还提供了一种路由装置,包括:
12.接收模块,用于接收客户端发送的业务请求;
13.第一获取模块,用于获取登录所述客户端的用户所属的服务区域的区域标识;
14.第二获取模块,用于响应于所述业务请求,获取对应于所述业务请求的多个业务服务器中各业务服务器的网络地址;
15.确定模块,用于从所述多个业务服务器的网络地址中确定与所述区域标识对应的目标业务服务器的网络地址;所述目标业务服务器用于为所述区域标识所属服务区域内的用户处理所述业务请求;
16.转发模块,用于向所述目标业务服务器的网络地址转发所述业务请求,以使所述目标业务服务器处理所述业务请求。
17.在本发明实施例的又一方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相
互间的通信;
18.所述存储器,用于存放计算机程序;
19.所述处理器,用于执行所述存储器上所存放的所述计算机程序时,实现本发明实施例第一方面所述的方法。
20.在本发明实施例的又一方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明实施例第一方面所述的方法。
21.本发明实施例提供的路由方法,发现服务器接收客户端发送的业务请求,获取登录客户端的用户所属的服务区域的区域标识,响应于业务请求,获取对应于业务请求的多个业务服务器中各业务服务器的网络地址,从多个业务服务器的网络地址中确定与区域标识对应的目标业务服务器的网络地址,向目标业务服务器的网络地址转发业务请求,以使目标业务服务器处理业务请求。通过用户的区域标识,将用户的业务请求转发给用户所属服务区域内的业务服务器,由用户所属服务区域内的业务服务器为用户提供服务,可以解决用户跨区域移动时,无法为用户提供有效服务的问题。
附图说明
22.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
23.图1为本发明实施例中的一种路由方法的步骤流程图;
24.图2为本发明实施例中的一种网络结构示意图;
25.图3为本发明实施例中的一种路由方法的流程示意图;
26.图4为本发明实施例中的一种路由装置的结构框图;
27.图5为本发明实施例中的一种电子设备的结构示意图。
具体实施方式
28.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
29.参照图1,图1为本发明实施例中的一种路由方法的步骤流程图,本实施例提供的路由方法适用于业务请求的处理,以避用户在异地登录之后无法为用户提供有效服务的情况。本实施例提供的路由方法可以由路由装置执行,路由装置可以设置于发现服务器。路由装置通常以软件和/或硬件的方式实现,该方法可以包括:
30.步骤101、接收客户端发送的业务请求。
31.其中,客户端可以是设置在手机、个人计算机和平板电脑等电子设备中的客户端。用户可以使用账号和密码登录客户端,并操作客户端获取业务服务器提供的服务。业务请求用于请求获取某项具体的服务,例如业务服务器可以为用户提供视频资源,用户在登录客户端之后,可以操作客户端向业务服务器发送业务请求,业务服务器在接收到业务请求之后,可以响应于业务请求,返回视频页面,用户可以通过视频页面观看视频资源。
32.本实施例中,路由方法可以由发现服务器实施,发现服务器可以是网关设备或服务器,发现服务器可以将客户端发送的业务请求转发至对应的业务服务器,由对应的业务服务器响应业务请求,为用户提供服务。举例说明,如图2所示,图2为本发明实施例中的一种网络结构示意图,发现服务器中运行有多个用于处理任务的线程或进程(worker),包括
worker1、worker2和worker3,用户在登录客户端之后,可以操作客户端向发现服务器发送业务请求,业务请求被分配给发现服务器中的某个worker处理。worker可以确定该业务请求对应的业务服务器的网路地址,并将业务请求向确定的网络地址转发。例如,业务请求可以采用统一资源定位符(uniform resoure locator,url)实现,url中包括域名和定位(location),客户端可以向发现服务器发送包括url的业务请求,以从url指向的网络地址获取资源。业务请求的具体形式可以根据需求设置,本实施例对此不做限制。
33.步骤102、获取登录客户端的用户所属的服务区域的区域标识。
34.其中,区域标识用于标识不同的服务区域,每个服务区域可以部署一个或多个业务服务器,通过业务服务器为本服务区域的用户提供某项具体的服务。举例说明,结合图2所示,可以以国家为单位划分服务区域,a国家为服务区域a,服务区域a的区域标识为a,b国家为服务区域b,服务区域b的区域标识为b,c国家为服务区域c,服务区域c的区域标识为c。可以在每个国家,也即在每个服务区域分别部署一个或多个业务服务器,每个服务区域只对本服务区域内的用户提供服务。例如,用户x在a国家注册,属于服务区域a,当用户x在服务区域a登录时,由服务区域a内的业务服务器为用户x提供视频服务,当用户x在服务区域b登录时,也由服务区域a内的业务服务器为用户x提供视频服务。需要说明的是,服务区域也可以采用其它划分原理划分,例如以地区进行划分,或者以语言进行划分,本实施例对服务区域的划分方法不做具体限制。
35.实际应用中,可以为用户设置区域标识,以标识用户所属的服务区域。例如,用户x在a国家使用客户端注册时,可以注册得到用户x的用户标识x和对应的密码,用户标识也可以称之为用户账号。同时,可以为用户标识x设置区域标识a,区域标识a表示用户x为服务区域a内的一个用户。或者,用户x在注册得到用户标识x之后,可以在使用过程中为用户标识x添加区域标识a。区域标识的设置方法可以包括但不限于上述举例,本实施例对此不做限制。
36.本实施例中,发现服务器在接收到业务请求之后,可以获取登录客户端的用户所属的服务区域的区域标识,以根据用户的区域标识确定用户所属的服务区域。
37.可选地,步骤102可以通过如下方式实现:
38.从业务请求中获取区域标识;业务请求中的区域标识由客户端在发送业务请求时添加;和/或,
39.根据用户的用户标识,确定预先存储的对应用户标识的区域标识。
40.在一种实施例中,客户端可以在发送业务请求时,在业务请求中添加用户的区域标识。结合上述举例,用户x在注册得到用户标识x、密码和区域标识a之后,管理服务器可以存储用户x的用户标识x、密码和区域标识a。用户x在使用用户标识x登录的过程中,客户端首先可以向存储有用户x的相关信息的管理服务器发送登录请求,管理服务器可以根据用户标识x确定预先存储的用户x的区域标识a,并向客户端返回区域标识a。客户端在以超文本传输协议(hyper text transfer protocol,http)向发现服务器发送业务请求时,可以在业务请求的请求头或请求行中添加区域标识a。发现服务器在接收到业务请求之后,可以从业务请求中提取区域标识a,得到用户x的区域标识a。
41.在另一种实施例中,发现服务器可以预先存储用户标识,以及用户标识对应的区域标识。例如,发现服务器可以定期向管理服务器发送标识获取请求,获取管理服务器中存
储的用户标识和对应的区域标识,并存储获取的用户标识和对应的区域标识。发现服务器在建立与客户端之间的连接之后,可以获取登录客户端的用户的用户标识。在接收到客户端发送的业务请求之后,可以根据用户标识,从存储的数据中确定用户标识对应的区域标识。
42.在本发明实施例中,客户端在发送业务请求时,可以在业务请求中添加用户的区域标识,可以便于发现服务器根据业务请求中的区域标识确定用户所属的服务区域。发现服务器也可以存储用户标识和对应的区域标识,以在接收到业务请求之后,快速根据用户标识确定对应的区域标识,进一步的可以根据区域标识快速确定用户所属的服务区域。
43.步骤103、响应于业务请求,获取对应于业务请求的多个业务服务器中各业务服务器的网络地址。
44.本实施例中,业务服务器在上线运行之后,可以向中介服务器注册,使中介服务器存储业务服务器的网络地址,中介服务器也可以称之为服务注册中心,可以使用consul软件实现,发现服务器可以从中介服务器获取业务服务器的网络地址并存储。
45.结合上述举例,服务区域a、服务区域b和服务区域c内提供视频服务的业务服务器在上线运行之后,分别可以向中介服务器发送服务注册请求,服务注册请求中包括业务服务器的网络地址,以及业务服务器对应的服务名,服务名与视频服务对应。中介服务器可以针对该服务名,建立一个服务列表,服务列表中包括服务区域a、服务区域b和服务区域c内处于在线状态的、可以提供视频服务的业务服务器的网络地址,即图2中业务服务器1、业务服务器2、业务服务器3、业务服务器4和业务服务器5的网络地址。同时,注册请求中可以包括每个业务服务器对应的区域标识,区域标识与业务服务器所在服务区域的区域标识相同或对应,中介服务器可以在服务列表中存储每个网络地址对应的区域标识,即每个业务服务器所属的服务区域的区域标识。可以理解,位于同一个服务区域内的业务服务器和用户具有相同或对应的区域标识。其中,网络地址可以是互联网协议地址(internet protocol address,ip),或者,网络地址也可以是ip地址和端口的组合。
46.可选地,发现服务器可以动态获取位于不同服务区域中、处于在线状态的业务服务器的网络地址,并对应存储业务服务器所处的服务区域的区域标识。
47.在一种实施方式中,发现服务器可以从中介服务动态获取业务服务器的网络地址和所在服务区域的区域标识,并对应存储。例如,发现服务器中的worker1可以建立与中介服务器的长链接,通过观察(watch)接口或者远程过程调用(remote procedure call,rpc)接口动态监听中介服务器,当监听到中介服务器中存储的服务列表更新之后,可以向中介服务器发送服务发现请求,从中介服务器及时获取最新的服务列表,实现对服务列表的动态更新。其中,worker1在获取到最新的服务列表之后,可以通过广播的方式与worker2和worker3同步服务列表,使发现服务器中的每个worker均具有最新的服务列表。
48.其中,发现服务器也可以从与之相连接的其它发现服务器中获取服务列表。例如,某个发现服务器在获取到新的服务列表之后,可以通过广播的形式向其它发现服务器发送新的服务列表。发现服务器获取服务列表的方法可以包括但不限于上述举例,本实施例对此不做限制。
49.本实施例中,发现服务器在接收到业务请求之后,首先可以响应于业务请求,获取对应业务请求的多个业务服务器的网络地址。可选地,针对某项服务,发现服务器中可以设
置一个对应的应用程序编程接口(application programming interface,api),通过对应的api响应业务请求,获取对应的多个业务服务器的网络地址。结合上述举例,针对视频服务,可以设置一个对应的api,客户端发送的业务请求中的url指向视频服务对应的api。发现服务器在接收到针对视频服务的业务请求之后,首先确定对应的api,然后由api响应业务请求,确定对应的服务列表,从服务列表中获取视频服务对应的多个业务服务器的网络地址。
50.在另一种实施方式中,发现服务器可以同时响应多个服务的业务请求。发现服务器中可以维护一个api列表,api列表中包括多个api,每个api分别用于响应一个服务的业务请求。结合上述举例,每个api上配置有对应服务的服务名,url中包括的定位(location)与服务名相同或关联。例如,客户端在发送针对视频服务的业务请求时,url中的定位与视频服务对应的api中配置的服务名相同,发现服务器可以根据url中的定位,从api列表中确定目标api,目标api中配置的服务名为视频服务的服务名。此时,发现服务器中的目标api可以根据目标api中配置的服务名,获取预先存储的与视频服务对应的服务列表,服务列表中包括多个业务服务器的网络地址,即服务区域a、服务区域b和服务区域c中在线的,可以提供视频服务的业务服务器的网络地址。同理,针对其他服务的业务请求,可以由对应的api响应业务请求,获取对应业务请求的多个业务服务器的网络地址。实际应用中,发现服务器中可以集成etcd(ahighly-available key value store for shared configuration and service discovery,用于配置共享和服务发现的键值存储系统)组件,可以通过etcd组件实时更新api列表,api列表的更新过程可以根据需求设置,本实施例对此不做限制。
51.步骤104、从多个业务服务器的网络地址中确定与区域标识对应的目标业务服务器的网络地址。
52.步骤105、向目标业务服务器的网络地址转发业务请求,以使目标业务服务器处理业务请求。
53.其中,目标业务服务器用于为区域标识所属服务区域内的用户处理业务请求。
54.本实施例中,发现服务器在确定多个业务服务器的网络地址之后,可以根据用户的区域标识,从多个业务服务器的网络地址中确定服务该用户的服务区域内的业务服务器的网络地址,即目标业务服务器的网络地址。结合上述举例,在获取到与视频服务对应的多个业务服务器的网络地址之后,可以根据用户x的区域标识a,从服务列表中的多个网络地址中确定与区域标识为a对应的网络地址为目标业务服务器的网络地址。在确定目标业务服务器的网络地址之后,可以向目标业务服务器的网络地址转发业务请求。需要说明的是,当目标业务服务器的网络地址包括多个时,可以选择向其中一个目标业务服务器的网络地址转发业务请求。目标业务服务器在接收到业务请求之后,可以向客户端返回视频页面,用户可以通过视频页面观看视频资源。
55.目前,伴随着区域化服务部署的展开,隐私合规要求越来越严格,数据的跨区域迁移受到较大限制。例如,为了保护服务区域a内用户的用户信息,服务区域a内用户的用户信息禁止共享给服务区域b内的服务器。当用户x处于服务区域a内时,可以由服务区域a内部署的服务器提供服务,而当用户x移动到服务区域b内时,由于服务区域b内的服务器未保存用户x的用户信息,无法为用户x提供有效的服务。
56.本实施例中,针对用户处于所属服务区域内的情况,以及从所属服务区域移动到
另一个服务区域的情况,均可以根据用户的区域标识确定所属服务区域内的服务器,由所属服务区域内的服务器为用户提供服务。例如,当用户x从所属的服务区域a移动到服务区域c时,发现服务器可以基于用户x的区域标识a,将业务请求转发给服务区域a内的业务服务器1或业务服务器2,由服务区域a内的业务服务器继续为用户c提供视频资源。同样的,当用户x处于所属的服务区域a时,发现服务器可以基于用户x的区域标识a,将业务请求转发给服务区域a内的业务服务器1或业务服务器2,由业务服务器1或业务服务器2为用户c提供视频资源。
57.在本发明实施例中,发现服务器接收客户端发送的业务请求,获取登录客户端的用户所属的服务区域的区域标识,获取对应于业务请求的多个业务服务器的网络地址,从多个业务服务器的网络地址中确定与区域标识对应的目标业务服务器的网络地址,向目标业务服务器的网络地址转发业务请求,以使目标业务服务器处理业务请求。通过用户的区域标识,将用户的业务请求转发给用户所属服务区域内的业务服务器,由用户所属服务区域内的业务服务器为用户提供服务,可以解决用户跨区域移动时,无法为用户提供有效服务的问题。
58.同时,在本发明实施例中,每个业务服务器只对本服务区域内的用户提供服务,可以避免数据的跨区域迁移,使业务满足合规要求。并且,由于发现服务器和业务服务器属于一个内部网络,当用户跨区域登录时,由发现服务器直接将用户的业务请求转发给目标业务服务器的网络地址,可以实现业务请求在内部网络的转发,可以提高服务效率。
59.在先技术中,为了解决用户跨区域登录时无法提供有效服务的问题,通常的做法是对网络结构进行改进,改进网络结构的成本比较高,改进后再提供有效服务导致效率也比较低,本发明实施例中由发现服务器根据用户的区域标识转发业务请求,可以避免更改网络结构,降低了实现跨区提供服务的成本,也提升了效率。
60.可选地,步骤105可以通过如下方式实现:
61.在目标业务服务器包括多个的情况下,向多个目标业务服务器中负载能力最高的目标业务服务器的网络地址转发业务请求;或者,
62.在目标业务服务器包括多个的情况下,向多个目标业务服务器中与客户端所处服务区域距离最近的目标业务服务器的网络地址转发业务请求。
63.在一种实施例中,当目标业务服务器包括多个时,可以选择负载能力最高的目标业务服务器的网络地址作为转发地址。如图2所示,发现服务器在接收到客户端发送的业务请求之后,可以根据用户x的区域标识a,确定服务区域a中的业务服务器1和业务服务器2为目标业务服务器,此时可以从业务服务器1和业务服务器2中选择负载能力最高的一个业务服务器,并向选择的业务服务器的网路地址转发业务请求。例如,业务服务器在向中介服务器发送服务注册请求时,可以向中介服务器发送表征服务器性能的性能参数。对应的,中介服务器在可以在服务列表中添加每个业务服务器的性能参数,业务服务器的性能参数与业务服务器的网络地址对应。相应的,发现服务器获取的服务列表中包括业务服务器的性能参数。发现服务器在确定业务服务器1和业务服务器2为目标业务服务器之后,可以根据服务列表中的业务服务器1的性能参数和业务服务器2的性能参数,选择负载能力最高的业务服务器的网络地址作为转发地址,向转发地址转发业务请求,从而可以选择负载能力最高的业务服务器处理用户的业务请求,为用户提供更好的服务。获取业务服务器负载能力的
方法可以包括,但不限于上述举例。
64.在另一种实施例中,在目标业务服务器包括多个的情况下,可以选择与客户端所处服务区域距离最近的目标业务服务器的网络地址转作为转发地址。如图2所示,发现服务器在建立与客户端的连接之后,若确定用户x当前位于服务区域b内,在确定目标业务服务器包括业务服务器1和业务服务器2之后,可以选择距离服务区域b最近的业务服务器1的网络地址作为转发地址,向业务服务器1的网络地址转发业务请求。由于业务服务器1与客户端当前所处的服务区域b距离较近,可以为用户提供更稳定和快速的服务。其中,发现服务器可以根据目标业务服务器的网络地址和客户端的网络地址确定与客户端与目标业务服务器之间的距离,即目标业务服务器与客户端所处服务区域之间的距离。确定客户端与业务服务器之间距离的方法可以包括但不限于上述举例,本实施例对此不做限制。
65.在另一种实施例中,当目标业务服务器包括多个时,发现服务器也可以采用负载均衡算法从多个目标业务服务器中选择一个目标业务服务器,向选择的目标业务服务器转发业务请求。负载均衡算法例如加权轮询算法(weighted round robin,wrr),也可以采用其它负载均衡算法从多个目标业务服务器中选择一个目标业务服务器,本实施例对此不做限制。
66.在本发明实施例中,当目标业务服务器包括多个时,可以选择负载能力最高的业务服务器或者距离用户最近的业务服务器转发用户的业务请求,可以为用户提供更快、更稳定的服务。
67.可选地,在步骤105之前,该方法还可以包括:
68.在多个业务服务器的网络地址中未包括目标业务服务器的网络地址,或者在未获取到区域标识的情况下,从多个业务服务器的网络地址中确定与默认区域标识对应的业务服务器的网络地址;默认区域标识所属的默认服务区域包括所有服务区域中的部分服务区域,与默认区域标识对应的业务服务器位于默认服务区域中,用于为所有服务区域内的用户处理业务请求;
69.将与默认区域标识对应的业务服务器的网络地址作为目标业务服务器的网络地址。
70.在一些情况下,发现服务器无法从业务请求中获取区域标识,或者无法从管理服务器获取区域标识。例如,客户端在发送业务请求时,可能由于网络故障或者客户端故障,导致发现服务器接收到的业务请求中未包括区域标识。再例如,用户在注册和使用过程中,并未为用户标识设置对应的区域标识,此时客户端和发现服务器均无法获取用户的区域标识。在业务请求中未包括区域标识时,发现服务器可以选择默认区域标识对应的服务区域内的业务服务器作为目标业务服务器。如图3所示,图3为本发明实施例中的一种路由方法的流程示意图,当区域标识由客户端在发送业务请求的过程中添加时,发现服务器在接收到业务请求之后,若业务请求中未包括区域标识,可以基于默认区域标识从多个业务服务器的网络地址中确定目标业务服务器的网络地址,并从确定的目标业务服务器的网络地址中选择一个作为转发地址。
71.其中,默认区域标识所属的默认服务区域是可以为所有服务区域内的用户提供服务的服务区域。如图2所示,可以将服务区域c设置为默认服务区域,服务区域c内可以存储服务区域a、服务区域b和服务区域c内的用户数据,因此服务区域c内的业务服务器5可以为
服务区域a、服务区域b和服务区域c内的用户提供视频服务。默认服务区域可以是多个服务区域中的一个服务区域或者部分服务区域,每个默认服务区域中部署的业务服务器可以为所有服务区域内的用户处理业务请求。发现服务器在确定接收到的业务请求中未包括区域标识时,可以确定预先设置的默认区域标识c,从多个业务服务器的网络地址中选择默认区域标识c对应的服务区域c内的业务服务器5作为目标业务服务器,向业务服务器5的网络地址转发业务请求,由业务服务器5为用户提供视频服务。实际应用中,部分服务区域允许存储所有服务区域内的用户数据,因此可以将此类服务区域的区域标识作为默认区域标识,在业务请求中未包括区域标识时,可以基于默认区域标识确定目标业务服务器,由目标业务服务器为用户提供服务。
72.进一步地,当默认区域标识对应的业务服务器掉线或故障之后,发现服务器从中介服务器获取的服务列表中未包括对应的网络地址,此时无法基于默认的区域标识确定目标业务服务器的网络地址,可以向客户端返回通知信息,通知用户无法获取服务。
73.在一些情况下,服务列表中未存储区域标识对应的业务服务器的网络地址时,可能是区域标识对应的服务区域内的业务服务器故障或掉线,发现服务器从中介服务器获取的服务列表中未包括对应的业务服务器的网络地址。例如,服务区域a内的业务服务器1和业务服务器2故障时,中介服务器在更新服务列表时,会删除业务服务器1和业务服务器2的网络地址。此时,发现服务器存储的服务列表中并不会包括业务服务器1和业务服务器2的网络地址。此时,发现服务器在接收到用户x通过客户端发送的业务请求时,业务请求中包括区域标识a,但是服务列表中并不包括区域标识a对应的业务服务器的网络地址。此时,发现服务器可以确定预先设置的默认区域标识,然后从已经确定的多个业务服务器的网络地址中选择默认区域标识对应的网络地址作为转发地址,向转发地址转发业务请求。
74.在一些情况下,业务请求中包括的区域标识为错误的区域标识,与实际的区域标识并不相符,此时发现服务器无法基于错误的区域标识确定目标业务服务器的网络地址。例如,当某个用户在注册时填写的区域标识与实际的区域标识不符时,管理服务器中存储的该用户的区域标识为错误的区域标识。用户在使用用户标识登录客户端之后,客户端从管理服务器获取的为错误的区域标识,与实际区域标识不对应。当发现服务器接收到业务请求之后,由于服务列表中未包括业务请求中携带的错误的区域标识,导致发现服务器无法确定与区域标识对应的业务服务器的网络地址,此时,发现服务器可以基于默认区域标识从多个业务服务器的网络地址中确定目标业务服务器的网络地址,并从确定的目标业务服务器的网络地址中选择一个作为转发地址。
75.本发明实施例中,当发现服务器未获取到区域标识,或者无法从多个业务服务器的网络地址中确定目标服务器的网络地址时,可以从选择默认区域标识对应的网络地址作为目标业务服务器的网络地址,可以由默认区域标识所属服务区域的服务器为用户提供服务,可以避免服务中断的问题出现。
76.可选的,在步骤105之前,该方法还可以包括:
77.在多个业务服务器的网络地址中未包括目标业务服务器的网络地址的情况下,从其它发现服务器获取与业务请求对应的多个同类业务服务器的网络地址;
78.从多个同类业务服务器的网络地址中确定与区域标识对应的目标业务服务器的网络地址。
79.在一些情况下,发现服务器中存储的服务列表中未包括区域标识对应的业务服务器的网络地址时,可能是发现服务器未及时从中介服务器获取最新的服务列表,发现服务器可以从其他发现服务器获取服务列表。结合图3所示,当第一发现服务器从业务请求中获取到区域标识,但是第一发现服务器中存储的服务列表中未存储与区域标识对应的业务服务器的网络地址时,可以向第二发现服务器(第二发现服务器即其它发现服务器)发送列表获取请求,列表获取请求中包括业务请求中的url。相应的,第二发现服务器在接收到列表获取请求之后,可以基于url确定本地存储的服务列表,服务列表中存储有对应于视频服务的业务服务器的网络地址,即同类业务服务器的网络地址,然后第二业务服务器可以向第一发现服务器返回服务列表。第一业务服务器在接收到服务列表之后,可以基于区域标识,从服务列表中存储的同类业务服务器的网络地址中确定与区域标识对应的业务服务器的网络地址,然后将确定的业务服务器的网络地址作为转发地址,向转发地址转发业务请求。
80.可选地,该方法还可以包括:
81.在多个同类业务服务器的网络地址中未包括目标业务服务器的网络地址的情况下,从多个同类业务服务器的网络地址中确定与默认区域标识对应的业务服务器的网络地址;
82.将与默认区域标识对应的业务服务器的网络地址作为目标业务服务器的网络地址。
83.如图3所示,当从第二业务服务器获取的服务列表中未存储对应的业务服务器的网络地址时,首先可以确定默认区域标识,然后从第二业务服务器返回的服务列表中确定默认区域标识对应的业务服务器的网络地址。其中,第一业务服务器可以向一个或多个第二业务服务器发送列表获取请求。
84.在本发明实施例中,发现服务器在确定本地未存储目标业务服务器的网络地址之后,可以从其它发现服务器获取服务列表,从其他服务器存储的服务列表中确定目标业务服务器的网路地址,从而可以避免无法为用户提供服务的情况出现。
85.参照图4,图4为本发明实施例中的一种路由装置的结构框图,该装置400可以包括:接收模块401、第一获取模块402、第二获取模块403、确定模块404和转发模块405。
86.接收模块401,用于接收客户端发送的业务请求。
87.第一获取模块402,用于获取登录客户端的用户所属的服务区域的区域标识。
88.第二获取模块403,用于响应于所述业务请求,获取对应于业务请求的多个业务服务器中各业务服务器的网络地址。
89.确定模块404,用于从多个业务服务器的网络地址中确定与区域标识对应的目标业务服务器的网络地址;目标业务服务器用于为区域标识所属服务区域内的用户处理业务请求。
90.转发模块405,用于向目标业务服务器的网络地址转发业务请求,以使目标业务服务器处理业务请求。
91.可选地,确定模块404,还用于在多个业务服务器的网络地址中未包括目标业务服务器的网络地址,或者在未获取到区域标识的情况下,从多个业务服务器的网络地址中确定与默认区域标识对应的业务服务器的网络地址;默认区域标识所属的默认服务区域包括所有服务区域中的部分服务区域,与默认区域标识对应的业务服务器位于默认服务区域
中,用于为所有服务区域内的用户处理所述业务请求;将与默认区域标识对应的业务服务器的网络地址作为目标业务服务器的网络地址。
92.可选地,装置400设置于发现服务器,确定模块404,还用于在多个业务服务器的网络地址中未包括目标业务服务器的网络地址的情况下,从其它发现服务器获取与业务请求对应的多个同类业务服务器的网络地址;从多个同类业务服务器的网络地址中确定与区域标识对应的目标业务服务器的网络地址。
93.可选地,确定模块404还用于在多个同类业务服务器的网络地址中未包括目标业务服务器的网络地址的情况下,从多个同类业务服务器的网络地址中确定与默认区域标识对应的业务服务器的网络地址;将与默认区域标识对应的业务服务器的网络地址作为目标业务服务器的网络地址。
94.可选地,第一获取模块402,具体用于从业务请求中获取区域标识;业务请求中的区域标识由客户端在发送业务请求时添加;和/或,根据用户的用户标识,确定预先存储的对应用户标识的区域标识。
95.可选地,该装置还可以包括第三获取模块,用于动态获取位于不同服务区域中、处于在线状态的业务服务器的网络地址,并对应存储业务服务器所处的服务区域的区域标识。
96.可选地,转发模块405,具体用于在目标业务服务器包括多个的情况下,向多个目标业务服务器中负载能力最高的目标业务服务器的网络地址转发业务请求;或者,在目标业务服务器包括多个的情况下,向多个目标业务服务器中与客户端所处服务区域距离最近的目标业务服务器的网络地址转发业务请求。
97.在本发明实施例中,发现服务器接收客户端发送的业务请求,获取登录客户端的用户所属的服务区域的区域标识,获取对应于业务请求的多个业务服务器的网络地址,从多个业务服务器的网络地址中确定与区域标识对应的目标业务服务器的网络地址,向目标业务服务器的网络地址转发业务请求,以使目标业务服务器处理业务请求。通过用户的区域标识,将用户的业务请求转发给用户所属服务区域内的业务服务器,由用户所属服务区域内的业务服务器为用户提供服务,可以解决用户跨区域移动时,无法为用户提供有效服务的问题。
98.参照图5,图5为本发明实施例中的一种电子设备的结构示意图,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信;
99.存储器503,用于存放计算机程序;
100.处理器501,用于执行存储器503上所存放的程序时,实现如下步骤:
101.接收客户端发送的业务请求;
102.获取登录客户端的用户所属的服务区域的区域标识;
103.响应于所述业务请求,获取对应于业务请求的多个业务服务器中各业务服务器的网络地址;
104.从多个业务服务器的网络地址中确定与区域标识对应的目标业务服务器的网络地址;目标业务服务器用于为区域标识所属服务区域内的用户处理业务请求;
105.向目标业务服务器的网络地址转发业务请求,以使目标业务服务器处理业务请
求。
106.上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
107.通信接口用于上述电子设备与其他设备之间的通信。
108.存储器可以包括随机存取存储器(random access memory,简称ram),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
109.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
110.在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一实施例所述的方法。
111.在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一实施例所述的方法。
112.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、第一服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、第一服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的第一服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
113.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
114.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部
分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
115.以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。