一种根据业务参数实现服务路由的动态选择的方法及系统与流程

文档序号:24053583发布日期:2021-02-24 00:13阅读:109来源:国知局
一种根据业务参数实现服务路由的动态选择的方法及系统与流程

[0001]
本发明涉及电子商务技术领域,尤其涉及一种根据业务参数实现服务路由的动态选择的方法及系统。


背景技术:

[0002]
电子商务正在取代原有的线下消费方式,越来越多的消费者采取在电商网站和应用上进行购物,电子商务应用渐渐代替线下购物。
[0003]
在电子商务建站的过程中有种情况,就是租户的存在,这类客户需要使用你的基础服务、硬件设施,但是他们希望扩充和个性化自己的服务,自己管理数据的存储。但是作为服务运营商希望在租户个性化自己服务的同时,不改变客户的访问方式,以做到统一的架构。
[0004]
比如,在公有云部署的电商平台中,有一部分大客户需要将自己的服务独立发布和部署,但是还是想利用原来的云环境,访问方式不变,部署自己来掌控。但是现有技术没有实现上述功能的解决方案。


技术实现要素:

[0005]
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种根据业务参数实现服务路由的动态选择的方法及系统,以解决现有技术的不足。
[0006]
为实现上述目的,本发明提供了一种根据业务参数实现服务路由的动态选择的方法,包括静态资源动态路由和动态服务的路由,其中:静态资源动态路由,根据访问url请求中的一个字段,判断url具体请求的是a地址的静态资源还是b地址的静态资源,前端无需更换代码就能动态路由到具体的静态资源;动态服务的路由,根据解析请求url中的一个业务字段,或者请求表单中的一个字段,或者请求json中的一个字段来路由到不同的服务,请求端无需更换请求的url。
[0007]
进一步的,所述静态资源动态路由包括以下步骤:步骤101,定义url规则,在url中的路径中加入相关的业务参数;步骤102,通过服务的网关在业务系统中获取所述业务参数;步骤103,获取所述业务参数后,根据所述业务参数在业务系统中查询出静态服务的地址;步骤104,网关组装好新的url地址,然后重定向到具体的静态资源。
[0008]
进一步的,所述动态服务的路由包括以下步骤:步骤201,定义业务参数的规则;步骤202,根据服务的请求的请求方法和内容类型来获取业务的不同参数;步骤203,根据业务参数在业务系统中取得服务地址后重新封装请求参数;步骤204,根据步骤203中准备好的服务地址和请求参数通过不同的请求方式动态路由到指定的服务。
[0009]
一种根据业务参数实现服务路由的动态选择的系统,包括静态资源动态路由单元和动态服务的路由单元,其中:静态资源动态路由单元,根据访问url请求中的一个字段,判断url具体请求的是a地址的静态资源还是b地址的静态资源,前端无需更换代码就能动态路由到具体的静态资源;动态服务的路由单元,根据解析请求url中的一个业务字段,或者请求表单中的一个字段,或者请求json中的一个字段来路由到不同的服务,请求端无需更换请求的url。
[0010]
进一步的,所述静态资源动态路由单元包括:静态资源业务参数规则定义模块,用于定义url规则,在url中的路径中加入相关的业务参数;静态资源业务参数获取模块,用于通过服务的网关在业务系统中获取所述业务参数;静态服务地址获取模块,用于获取所述业务参数后,根据所述业务参数在业务系统中查询出静态服务的地址;静态资源重定向模块,用于在网关组装好新的url地址后,重定向到具体的静态资源。
[0011]
进一步的,所述动态服务的路由单元包括:动态服务业务参数规则定义模块,用于定义业务参数的规则;动态服务业务参数获取模块,用于根据服务的请求的请求方法和内容类型来获取业务的不同参数;请求参数封装模块,用于根据业务参数在业务系统中取得服务地址后重新封装请求参数;服务动态路由模块,用于根据准备好的服务地址和请求参数通过不同的请求方式动态路由到指定的服务。
[0012]
本发明的有益效果是:本发明的方法及系统,在公有云部署的电商平台中,满足大客户需要将自己的服务独立发布和部署,但是还是想利用原来的云环境,访问方式不变,部署自己来掌控的需求。
[0013]
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
[0014]
附图说明
[0015]
图1为本发明静态资源路由的方法流程图;图2为本发明动态服务路由的方法流程图;图3为本发明静态资源路由的系统框图;图4为本发明动态服务路由的系统框图。
[0016]
具体实施方式
[0017]
如图1、2所示,本发明提供了一种根据业务参数实现服务路由的动态选择的方法,包括静态资源动态路由和动态服务的路由,其中:静态资源动态路由,根据访问url请求中的一个字段,判断url具体请求的是a地址的静
态资源还是b地址的静态资源,前端无需更换代码就能动态路由到具体的静态资源;动态服务的路由,根据解析请求url中的一个业务字段,或者请求表单中的一个字段,或者请求json中的一个字段来路由到不同的服务,请求端无需更换请求的url。
[0018]
图1,说明静态资源路由的流程图,如图1所示,本实施静态路由的方式有以下几步:步骤101,定义url规则。因为必须需要一个标签来标识当前的业务,而且静态资源除了url中无法在信息头和消息主体中获取到其它标签,这里只能在url中的路径中加入相关的业务参数。
[0019]
步骤102,通过服务的网关在业务系统中获取到上步中的这个参数步骤103,上步取得业务参数后,我们根据相关的业务参数在业务系统中查询出静态服务的地址。
[0020]
步骤104,网关组装好新的url地址,然后重定向到具体的静态资源。
[0021]
图2,说明动态服务路由的流程图,如图2所示,本实施动态服务路由的方式有下面几步:步骤201,定义业务参数的规则。因为我们需要有一个业务区分标识来区分当前的业务,从而拿这个业务标识来获取相关配置信息。
[0022]
步骤202,根据服务的请求的请求方法和内容类型来获取业务的不同参数。在http的请求方法中用的最多的有get和post2种,这2种请求的方法获取参数的方式是不一样的:get参数的获取方式,get参数的取值方式比较简单,只需要取url中后面的内容全部取出;分隔&字符串得到参数列表即可,然后,以步骤201中的业务参数为键,查找参数列表中参数的值,如果没有找到,则告知客户端业务参数缺失,无法完成路由。
[0023]
post参数的获取方式,post参数获取的方式由于请求方式content-type的不同分为application/x-www-form-urlencoded和application/json2种类型。
[0024]
首先application/x-www-form-urlencode业务参数的获取,这种方式客户端是表单的提交方式,http包中的主体和上步get方式中的参数存储方式一样,是用&符分隔的字符串,我们仍然按照分隔&字符串得到参数列表,然后,以步骤201中的业务参数为键,查找参数列表中参数的值,如果没有找到,则告知客户端业务参数缺失,无法完成路由。
[0025]
然后是application/json业务参数的获取,这种方式客户端是直接提交的json文件,http包中的主体中存储的是一个json字符串,我们需要在json字符串是查找业务参数。我们首先对json字符串进行解码,通过json解析工具将json字符串映射到一个hash表中,因为hash表是key/value结构存储的,所以直接以步骤201中的业务参数为键,查找参数列表中参数的值,如果没有找到,则告知客户端业务参数缺失,无法完成路由。
[0026]
步骤203,根据业务参数在业务系统中取得地址后进行参数封装。在业务系统中取得需要路由到的地址后,需要进行url参数的准备。这里也分为get和post2种方式。
[0027]
get方式是需要将原始请求中的参数取出,这里根据需要去除业务参数,然后拼接成以&为分隔的字符串,附属在步骤202得到的新的url后面,生成新的请求url。
[0028]
post方式和步骤202中一样也是2种方式。application/x-www-form-urlencode类型的http包根据需要去除业务参数,然后拼接成以&为分隔的字符串。application/json类型的
http包,也根据需要去除业务参数,然后将步骤202中的hash表转成json字符串。由于post提交的参数是以流的形式提交的,在经列步骤202后,流中的数据已经消失了,所以我们这里需要后封装请求的参数放入到http包中。
[0029]
步骤204,根据步骤203中准备好的请求地址和请求参数通过不同的请求方式动态路由到指定的服务。
[0030]
如图3、4所示,本发明还提供了一种根据业务参数实现服务路由的动态选择的系统,包括静态资源动态路由单元和动态服务的路由单元,其中:静态资源动态路由单元,根据访问url请求中的一个字段,判断url具体请求的是a地址的静态资源还是b地址的静态资源,前端无需更换代码就能动态路由到具体的静态资源;动态服务的路由单元,根据解析请求url中的一个业务字段,或者请求表单中的一个字段,或者请求json中的一个字段来路由到不同的服务,请求端无需更换请求的url。
[0031]
如图3所示,静态资源动态路由单元包括:静态资源业务参数规则定义模块,用于定义url规则,在url中的路径中加入相关的业务参数;静态资源业务参数获取模块,用于通过服务的网关在业务系统中获取业务参数;静态服务地址获取模块,用于获取业务参数后,根据业务参数在业务系统中查询出静态服务的地址;静态资源重定向模块,用于在网关组装好新的url地址后,重定向到具体的静态资源。
[0032]
如图4所示,动态服务的路由单元包括:动态服务业务参数规则定义模块,用于定义业务参数的规则;动态服务业务参数获取模块,用于根据服务的请求的请求方法和内容类型来获取业务的不同参数;请求参数封装模块,用于根据业务参数在业务系统中取得服务地址后重新封装请求参数;服务动态路由模块,用于根据准备好的服务地址和请求参数通过不同的请求方式动态路由到指定的服务。
[0033]
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1