发明内容
为克服现有技术中存在的问题,本发明提供一种路由方法及装置,以实现更精细化的用户路由。
根据本发明实施例的第一方面,提供一种路由方法,所述方法包括:
接收用户的访问请求,其中所述访问请求指向特定页面;
基于所述访问请求,获取所述用户的用户属性信息;
至少部分根据所述用户属性信息,参照预设规则,获取与所述用户属性信息对应的服务器集群,所述服务器集群用于向用户提供所述特定页面的服务;
将所述访问请求路由到所述服务器集群。
可选的,所述特定页面包括有待进行路由的页面或有待提供差异化服务的页面。
可选的,所述基于所述访问请求,获取所述用户的用户属性信息,包括:
基于所述访问请求,获取所述用户的用户标识;
根据所述用户标识,获取所述用户的用户属性信息。
可选的,所述获取所述用户标识,包括:
在HTTP的统一接入层中获取所述用户标识。
可选的,所述获取所述用户的用户标识,包括:
从用户登录信息中获取所述用户的用户标识,其中所述用户标识在所述用户登录时被写入所述登录信息。
可选的,所述用户属性信息包括以下至少一项:
用户的等级属性,用户的民族属性,用户的国别属性,用户的性别属性,用户的年龄属性,用户的地理位置属性,用户的历史行为数据。
可选的,所述至少部分根据所述用户属性信息,参照预设规则,获取与所述用户属性信息对应的服务器集群,包括:
根据所述用户属性信息查询预设的用户属性与服务器集群对应表;
根据查询结果获取所述对应的服务器集群;
或者,
根据所述用户属性信息中的属性值进行计算;
根据计算结果获取所述对应的服务器集群。
可选的,所述根据所述用户属性信息中的属性值进行计算,根据计算结果获取所述对应的服务器集群,包括:
获取每个用户属性的权重:
根据所述权重进行加权计算;
根据加权计算的结果确定所述对应的服务器集群。
可选的,所述将所述访问请求路由到所述服务器集群,包括:
使用重定向方式将所述访问请求路由到所述服务器集群。
可选的,所述使用重定向方式将所述访问请求路由到所述服务器集群,包括:
当所述访问请求为无状态请求时,采用Http状态302或301的重定向方式将所述访问请求至所述服务器集群;
当所述访问请问为有状态请求时,采用Http状态308或307的重定向方式将所述访问请求至所述服务器集群。
可选的,所述服务器集群包括一台服务器或至少两台服务器。
可选的,所述服务器集群位于所述用户的所在国家所指定的国家和/或地区内。
可选的,所述服务器集群提供差异化的用户服务。
根据本发明实施例的第二方面,提供一种路由装置,所述装置包括:
访问请求接收单元,用于接收用户的访问请求,其中所述访问请求指向特定页面;
用户属性信息获取单元,用于基于所述访问请求,获取所述用户的用户属性信息;
目标服务器获取单元,用于至少部分根据所述用户属性信息,参照预设规则,获取与所述用户属性信息对应的服务器集群,所述服务器集群用于向用户提供所述特定页面的服务;
访问请求路由单元,用于将所述访问请求路由到所述服务器集群。
可选的,所述特定页面包括有待进行路由的页面或有待提供差异化服务的页面。
可选的,所述用户属性信息获取单元包括:
用户标识获取子单元,用于基于所述访问请求,获取所述用户的用户标识;
用户属性信息获取子单元,用于根据所述用户标识,获取所述用户的用户属性信息。
可选的,所述用户标识获取子单元用于:
在HTTP的统一接入层中获取所述用户标识。
可选的,所述用户标识获取子单元用于:
从用户登录信息中获取所述用户的用户标识,其中所述用户标识在所述用户登录时被写入所述登录信息。
可选的,所述用户属性信息包括以下至少一项:
用户的等级属性,用户的民族属性,用户的国别属性,用户的性别属性,用户的年龄属性,用户的地理位置属性,用户的历史行为数据。
可选的,所述目标服务器获取单元包括:
查询子单元,用于根据所述用户属性信息查询预设的用户属性与服务器对应表,根据查询结果获取所述对应的服务器集群;
或者包括:
计算子单元,用于根据所述用户属性信息中的属性值进行计算,根据计算结果获取所述对应的服务器集群。
可选的,所述计算子单元用于:获取每个用户属性的权重,根据所述权重进行加权计算,根据加权计算的结果确定所述对应的服务器集群。
可选的,所述访问请求路由单元用于:
使用重定向方式将所述访问请求路由到所述服务器集群。
可选的,所述访问请求路由单元包括:
第一跳转子单元,用于当所述访问请求为无状态请求时,采用Http状态302或301的重定向方式将所述访问请求至所述服务器集群;
第二跳转子单元,用于当所述访问请问为有状态请求时,采用Http状态308或307的重定向方式将所述访问请求至所述服务器集群。
可选的,所述服务器集群包括一台服务器或至少两台服务器。
可选的,所述服务器集群位于所述用户的所在国家所指定的国家和/或地区内。
可选的,所述服务器集群提供差异化的用户服务。
本发明的实施例提供的技术方案可以包括以下有益效果:
在本发明实施例中,先获取用户属性信息,然后根据用户属性信息确定要访问的服务器集群,因为在用户属性信息中可以进行复杂的定义以及加入复杂的规则判断,使得用户路由时可以被精细化区分,故利用本发明的方案可以实施各种维度、功能非常丰富的用户路由。此外,DNS技术由于有多级DNS缓存,其收敛时间较长,一般是小时级别,无法做到实时性,而本发明中用户属性信息及判断规则可以随时修改,这样用户路由变更起来也可以实现实时性,例如非付费用户一旦付费,***便可以立即将其访问路由到稳定性级别高的服务器集群中以提供更高质量的服务。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种路由方法的流程图。该方法可以用于网络侧的设备,如服务器。
参见图1所示,该方法可以包括步骤S101~S104。
步骤S101,接收用户的访问请求,其中所述访问请求指向特定页面。
其中作为示例,特定页面可以是有待进行路由的页面或有待提供差异化服务的页面,例如不同用户展示不同内容的页面,或者虽然内容相同但是速度\稳定性不同的页面,等等。当用户在访问这些需要进行用户路由的页面时,网络会将该用户路由到合适的服务器或服务器集群以实现访问。
例如某网站上有来自于全世界的买家,如何保护买家隐私不会泄漏,如何做到将买家信息只保留在其国内,是一个需要解决的问题。本发明通过用户属性信息,将不同类型\级别等的用户路由到展现不同内容的服务器集群来实现差异化,还可以基于用户所在国家,将其路由到其国内的服务器中,从而实现隐私保护。
步骤S102,基于所述访问请求,获取所述用户的用户属性信息。
作为示例,在一些情形下,访问请求中已携带用户的某种属性信息,例如用户通过浏览器发送访问请求时,访问请求中通常会含有浏览器的版本信息(如简体中文、繁体中文、日文、韩文等语言版本),通过该信息就可以推断出用户所处的地域,所以此时便可以直接从访问请求中获取用户的属性信息。
而在另外一些情形下,参见图2所示,在本实施例或本发明其他某些实施例中,所述基于所述访问请求,获取所述用户的用户属性信息,可以包括:
步骤S201,基于所述访问请求,获取所述用户的用户标识。
对于如何获取用户的用户标识本实施例并不进行限制。在本实施例或本发明其他某些实施例中,当需要获取用户标识时,可以从用户Cookie(登录信息)中获取所述用户的用户标识,其中所述用户标识在所述用户登录时被写入所述Cookie。
用户标识也可称为用户ID。例如在用户以用户ID登录后,可以在统一接入层中将用户ID写入Cookie。当需要获取用户ID时,从Cookie中获取即可。
统一接入层即每一个或一组网页程序的入口,对于网页程序,接入层是部署支持HTTP协议的软件及其运行的服务器。例如可使用Nginx、Apache、Jetty、Tomcat等服务器,只需要支持HTTP协议即可。对于一个大型网站,所有对外提供服务的网页请求都从同一个接入层即统一接入层进入。
换句话说,所述获取所述用户标识,可以包括:
在HTTP的统一接入层中获取所述用户标识。
从另一个角度来讲,所述获取所述用户的用户标识,可以包括:
从用户登录信息中获取所述用户的用户标识,其中所述用户标识在所述用户登录时被写入所述登录信息。
步骤S202,根据所述用户标识,获取所述用户的用户属性信息。例如用户属性信息可以是用户的Profile(配置文件)。可以根据用户ID在数据库或其它介质中查找到对应的用户Profile。
步骤S103,至少部分根据所述用户属性信息,参照预设规则,获取与所述用户属性信息对应的服务器集群,所述服务器集群用于向用户提供所述特定页面的服务。
作为示例,所述服务器集群可以包括一台服务器或至少两台服务器。所述服务器集群可位于所述用户的所在国家所指定的国家和/或地区内。
所述服务器集群可提供差异化的用户服务。另外除了提供差异化的网页外,本发明中所涉及的差异化服务也可以是指带宽提升、安全性提升,等等。
步骤S104,将所述访问请求路由到所述服务器集群。
例如可以将Profile内的信息作为规则输入,通过计算得到用户应该访问的集群,并基于不同的请求类型将用户请求重定向或代理到对应的集群中。
对于用户属性信息的具体内容本实施例并不进行限制,技术人员可以根据具体情况进行自定义,可以在此处使用的这些具体内容都没有背离本发明的精神和保护范围。
在本实施例或本发明其他某些实施例中,所述用户属性信息包括以下至少一项:
用户的等级属性,用户的民族属性,用户的国别属性,用户的性别属性,用户的年龄属性,用户的地理位置属性,用户的历史行为数据。
作为示例可参见表1所示:
表1
参见图3~4所示,在本实施例或本发明其他某些实施例中,所述至少部分根据所述用户属性信息,参照预设规则,获取与所述用户属性信息对应的服务器集群,可以包括:
步骤S301,根据所述用户属性信息查询预设的用户属性与服务器对应表。
作为示例,可以预设用户国别属性与服务器的对应表,通过查表确定某国别的用户应该路由到哪个服务器或服务器集群。
步骤S302,根据查询结果获取所述对应的服务器集群。
或者包括:
步骤S401,根据所述用户属性信息中的属性值进行计算。
作为示例,可以为每个用户属性赋予一定的权重,然后进行加权计算,根据加权计算的分数结果与某阈值的比较,确定应该路由到哪个服务器或服务器集群。
步骤S402,根据计算结果获取所述对应的服务器集群。
作为示例可参见图5所示,所述根据所述用户属性信息中的属性值进行计算,根据计算结果获取所述对应的服务器集群,可以包括:
步骤S501,获取每个用户属性的权重。
步骤S502,根据所述权重进行加权计算。
步骤S503,根据加权计算的结果确定所述对应的服务器集群。
在本实施例或本发明其他某些实施例中,所述将所述访问请求路由到所述服务器集群,可以包括:
使用重定向方式将所述访问请求路由到所述服务器集群。
作为示例,使用重定向方式将所述访问请求路由到所述服务器集群,可以包括:
当所述访问请求为无状态请求时,采用Http状态302或301的重定向方式将所述访问请求至所述服务器集群;
当所述访问请问为有状态请求时,采用Http状态308或307的重定向方式将所述访问请求至所述服务器集群。
简单来讲,其中HTTP状态码301代表永久移动,指所请求的资源已永久移动到新位置。状态码302代表临时移动,指服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来响应以后的请求。状态码307代表临时重定向,指当前所请求的资源应该被另一个地址重新发送,然而未来的请求仍然应该使用原始的地址。状态码308代表永久转移,指所请求的资源将永久的位于另外一个地址上,也即指本次请求和以后的请求都应该被另一个地址重新发送。
在实施时具体来讲,根据规则计算得到用户服务器集群后,对于不同类型的请求可以有不同的处理方法。例如当用户请求为无状态请求时,如GET请求,为了减少服务器间依赖关系,可采用302或301让浏览器自行跳转至对应服务器集群;而如果是POST或PUT请求等有状态的请求,同样为了减少服务器间的调用,可采用308或307跳转的方式跳转至对应的服务器集群,此时的跳转会将用户表单中提交的数据携带,从而完全不影响用户功能。
在本实施例中,先获取用户属性信息,然后根据用户属性信息确定要访问的服务器集群,因为在用户属性信息中可以进行复杂的定义以及加入复杂的规则判断,使得用户路由时可以被精细化区分,故利用本发明的方案可以实施各种维度、功能非常丰富的用户路由。此外,DNS技术由于有多级DNS缓存,其收敛时间较长,一般是小时级别,无法做到实时性,而本发明中用户属性信息及判断规则可以随时修改,这样用户路由变更起来也可以实现实时性,例如非付费用户一旦付费,***便可以立即将其访问路由到稳定性级别高的服务器集群中以提供更高质量的服务。
下面结合具体场景对本发明方案作进一步描述。
在图6所示的场景中,一免费用户通过终端设备601(如笔记本电脑)访问需要进行用户路由的页面,服务器602根据用户ID将其路由到服务器603以完成访问。
而在图7所示的场景中,一付费用户通过终端设备701(如手机)访问同一需要进行用户路由的页面,服务器602根据用户ID将其路由到服务器604以完成访问。
相关过程可进一步参见图8所示,包括:
步骤S801,用户登录。
步骤S802,服务器将用户ID写入Cookie。
步骤S803,用户访问需要进行用户路由的页面。
步骤S804,服务器根据Cookie获取用户ID。
步骤S805,根据用户ID从数据库中读取到相应的用户Profile。
步骤S807,根据用户Profile中的信息计算出应路由的目标服务器集群。
步骤S807,判断用户的请问是否是有状态请求。如果是有状态请求,则进入步骤S808,如果是无状态请求,则进入步骤S809。
步骤S808,308/307跳转至目标服务器集群。流程结束。
步骤S809,302/301跳转至目标服务器集群。流程结束。
在本实施例中,先通过用户标识获取用户属性信息,然后根据用户属性信息确定要访问的服务器或服务器集群,因为在用户属性信息中可以进行复杂的定义以及加入复杂的规则判断,使得用户路由时可以被精细化区分,故利用本发明的方案可以实施各种维度、功能非常丰富的用户路由。此外,DNS技术由于有多级DNS缓存,其收敛时间较长,一般是小时级别,无法做到实时性,而本发明中用户属性信息及判断规则可以随时修改,这样用户路由变更起来也可以实现实时性,例如非付费用户一旦付费,***便可以立即将其访问路由到稳定性级别高的服务器集群中以提供更高质量的服务。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
图9是根据一示例性实施例示出的一种路由装置的框图。该装置可以用于网络侧的设备,如服务器。
参见图9所示,该装置可以包括:
访问请求接收单元901,用于接收用户的访问请求,其中所述访问请求指向特定页面。
用户属性信息获取单元902,用于基于所述访问请求,获取所述用户的用户属性信息。
目标服务器获取单元903,用于至少部分根据所述用户属性信息,参照预设规则,获取与所述用户属性信息对应的服务器集群,所述服务器集群用于向用户提供所述特定页面的服务。
访问请求路由单元904,用于将所述访问请求路由到所述服务器集群。
作为示例,所述服务器集群可以包括一台服务器或至少两台服务器。所述服务器集群可位于所述用户的所在国家所指定的国家和/或地区内。
所述服务器集群可提供差异化的用户服务。另外除了提供差异化的网页外,本发明中所涉及的差异化服务也可以是指带宽提升、安全性提升,等等。
在本实施例或本发明其他某些实施例中,所述特定页面包括有待进行路由的页面或有待提供差异化服务的页面。
参见图10所示,在本实施例或本发明其他某些实施例中,所述用户属性信息获取单元包括:
用户标识获取子单元1001,用于基于所述访问请求,获取所述用户的用户标识;
用户属性信息获取子单元1002,用于根据所述用户标识,获取所述用户的用户属性信息。
在本实施例或本发明其他某些实施例中,所述用户标识获取子单元用于:
在HTTP的统一接入层中获取所述用户标识。
在本实施例或本发明其他某些实施例中,所述用户标识获取子单元用于:
从用户登录信息中获取所述用户的用户标识,其中所述用户标识在所述用户登录时被写入所述登录信息。
在本实施例或本发明其他某些实施例中,所述用户属性信息可以包括以下至少一项:
用户的等级属性,用户的民族属性,用户的国别属性,用户的性别属性,用户的年龄属性,用户的地理位置属性,用户的历史行为数据。
在本实施例或本发明其他某些实施例中,所述目标服务器获取单元可以包括:
查询子单元,用于根据所述用户属性信息查询预设的用户属性与服务器对应表,根据查询结果获取所述对应的服务器集群;
或者包括:
计算子单元,用于根据所述用户属性信息中的属性值进行计算,根据计算结果获取所述对应的服务器集群。
作为示例,所述计算子单元用于:
获取每个用户属性的权重,根据所述权重进行加权计算,根据加权计算的结果确定所述对应的服务器集群。
在本实施例或本发明其他某些实施例中,所述访问请求路由单元可以用于:
使用重定向方式将所述访问请求路由到所述服务器集群。
作为示例可参见图11所示,所述访问请求路由单元可以包括:
第一跳转子单元1101,用于当所述访问请求为无状态请求时,采用Http状态302或301的重定向方式将所述访问请求至所述服务器集群。
第二跳转子单元1102,用于当所述访问请问为有状态请求时,采用Http状态308或307的重定向方式将所述访问请求至所述服务器集群。
在本实施例中,先获取用户属性信息,然后根据用户属性信息确定要访问的服务器集群,因为在用户属性信息中可以进行复杂的定义以及加入复杂的规则判断,使得用户路由时可以被精细化区分,故利用本发明的方案可以实施各种维度、功能非常丰富的用户路由。此外,DNS技术由于有多级DNS缓存,其收敛时间较长,一般是小时级别,无法做到实时性,而本发明中用户属性信息及判断规则可以随时修改,这样用户路由变更起来也可以实现实时性,例如非付费用户一旦付费,***便可以立即将其访问路由到稳定性级别高的服务器集群中以提供更高质量的服务。
关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由所附的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。