CN114390108B - 一种处理用户服务请求的方法和*** - Google Patents
一种处理用户服务请求的方法和*** Download PDFInfo
- Publication number
- CN114390108B CN114390108B CN202111487461.2A CN202111487461A CN114390108B CN 114390108 B CN114390108 B CN 114390108B CN 202111487461 A CN202111487461 A CN 202111487461A CN 114390108 B CN114390108 B CN 114390108B
- Authority
- CN
- China
- Prior art keywords
- user
- service
- data
- proxy gateway
- service request
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 59
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000004891 communication Methods 0.000 claims description 13
- 238000012546 transfer Methods 0.000 claims description 4
- 238000004422 calculation algorithm Methods 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 abstract description 12
- 238000003860 storage Methods 0.000 description 16
- 238000004590 computer program Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000003068 static effect Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种处理用户服务请求的方法和***,用以解决处理用户服务请求的灵活性差的问题。包括:代理网关监听输入端口接收的用户流量数据并发送至与输入端口相匹配的服务路由;服务路由配置的中间件监听经过服务路由的用户流量数据,并向代理网关发送匹配结果;如果匹配结果表征用户流量数据与目标中间件规则相匹配,则由代理网关根据目标中间件规则对用户服务请求执行相匹配的处理操作;如果匹配结果表征用户流量数据不存在匹配的中间件规则,则由代理网关将用户流量数据发送至服务路由相匹配的服务器,并根据服务器反馈的数据响应用户服务请求。本方案通过监听数据对匹配于目标中间件规则的请求执行相匹配的处理操作,提高请求处理灵活性。
Description
技术领域
本发明涉及通信领域,尤其涉及一种处理用户服务请求的方法和***。
背景技术
在通信领域,服务往往以多种不同的形式部署。比如,存在使用物理环境部署的服务、使用虚拟机部署的服务和使用容器部署的服务。这些不同形式部署的服务分散在不同的环境中,难以实现统一的管理与配置。对于不同形式部署的服务,如要增加业务功能,往往需要基于部署形式开发插件功能,通过***实现业务功能应用,受到部署形式的限制,灵活性差。
如何提高处理用户服务请求的灵活性,是本申请所要解决的技术问题。
发明内容
本申请实施例的目的是提供一种处理用户服务请求的方法和***,用以解决处理用户服务请求的灵活性差的问题。
第一方面,提供了一种处理用户服务请求的方法,包括:
代理网关监听输入端口接收的用户流量数据,所述用户流量数据包括用户服务请求;
所述代理网关将所述用户流量数据发送至与所述输入端口相匹配的服务路由;
所述服务路由配置的中间件监听经过所述服务路由的所述用户流量数据,并向所述代理网关发送所述用户流量数据是否匹配目标中间件规则的匹配结果;
如果所述匹配结果表征所述用户流量数据与所述目标中间件规则相匹配,则由所述代理网关根据所述目标中间件规则对所述用户服务请求执行相匹配的处理操作;
如果所述匹配结果表征所述用户流量数据不存在匹配的中间件规则,则由所述代理网关将所述用户流量数据发送至所述服务路由相匹配的服务器,并根据所述服务器反馈的数据响应用户服务请求。
第二方面,提供了一种处理用户服务请求的***,包括:
输入端口,用于接收用户流量数据,所述用户流量数据包括用户服务请求;
与所述输入端口通信连接的代理网关,监听所述输入端口接收的用户流量数据,将所述用户流量数据发送至与所述输入端口相匹配的服务路由;
所述服务路由配置有中间件,监听经过所述服务路由的用户流量数据,并向所述代理网关发送所述用户流量数据是否匹配目标中间件规则的匹配结果;
如果所述匹配结果表征所述用户流量数据与所述目标中间件规则相匹配,则由所述代理网关根据所述目标中间件规则对所述用户服务请求执行相匹配的处理操作;
如果所述匹配结果表征所述用户流量数据不存在匹配的中间件规则,则由所述代理网关将所述用户流量数据发送至所述服务路由相匹配的服务器,并根据所述服务器反馈的数据响应用户服务请求。
在本申请实施例中,通过代理网关监听输入端口接收的用户流量数据,所述用户流量数据包括用户服务请求;所述代理网关将所述用户流量数据发送至与所述输入端口相匹配的服务路由;所述服务路由配置的中间件监听经过所述服务路由的所述用户流量数据,并向所述代理网关发送所述用户流量数据是否匹配目标中间件规则的匹配结果;如果所述匹配结果表征所述用户流量数据与所述目标中间件规则相匹配,则由所述代理网关根据所述目标中间件规则对所述用户服务请求执行相匹配的处理操作;如果所述匹配结果表征所述用户流量数据不存在匹配的中间件规则,则由所述代理网关将所述用户流量数据发送至所述服务路由相匹配的服务器,并根据所述服务器反馈的数据响应用户服务请求。本方案通过监听数据,对匹配于预设中间件规则的请求执行相匹配的处理操作,提高请求处理灵活性。其中,中间件规则可以根据需求灵活设置,中间件以监听的形式对经过服务路由的用户流量数据执行判断匹配,能支持中间件热加载,能够在不重启整个***的情况下增减中间件规则,避免对收发过程中的用户流量数据造成负面影响。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明的一个实施例一种处理用户服务请求的方法的流程示意图之一。
图2是本发明的一个实施例一种处理用户服务请求的方法的流程示意图之二。
图3是本发明的一个实施例一种处理用户服务请求的方法的流程示意图之三。
图4是本发明的一个实施例一种处理用户服务请求的方法的流程示意图之四。
图5是本发明的一个实施例一种处理用户服务请求的方法的流程示意图之五。
图6是本发明的一个实施例一种处理用户服务请求的方法的流程示意图之六。
图7是本发明的一个实施例一种处理用户服务请求的***结构示意图之一。
图8是本发明的一个实施例一种处理用户服务请求的***结构示意图之二。
图9是本发明的一个实施例一种处理用户服务请求的***结构示意图之三。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本申请中附图编号仅用于区分方案中的各个步骤,不用于限定各个步骤的执行顺序,具体执行顺序以说明书中描述为准。
在通信领域,往往需要对不同形式部署的服务做统一管理。比如,在业务迁移容器的过程中,因为某一些服务不能使用容器环境部署,这就导致服务分散在不同的环境中,同时不同的环境需要使用不同的代理或者网关来对服务进行负载均衡和流量的管理,管理效率低,需要消耗较多的人力和时间。为了解决现有技术中存在的问题,本申请实施例提供一种处理用户服务请求的方法,用于兼容多种环境的网关,能自动化的代理来统一管理不同形式部署的服务,在实际应用中有利于管控全域的流量和掌握业务情况。
为了解决现有技术中存在的问题,本申请实施例提供一种处理用户服务请求的方法,如图1所示,包括:
S11:代理网关监听输入端口接收的用户流量数据,所述用户流量数据包括用户服务请求。
本步骤可以由代理网关执行,该代理网关可以是具有数据处理功能的电子部件,具体可以是计算机、手机、服务器等。
上述输入端口可以通过有线或无线的方式接收用户流量数据,该用户流量数据可以是来自于用户终端的流量数据。上述用户流量数据包括用户服务请求,该用户服务请求用于请求向客户端提供服务。具体的,用户服务请求中可以携带有请求服务的标识,用以表征具体要请求的服务类型、内容等信息,用户服务请求可以用于指示服务器提供相应的服务。
在本步骤中,由代理网关监听输入端口接收的用户流量数据。其中,代理网关可以与多个输入端口通信连接,由代理网关监听多个输入端口接收的用户流量数据。
可选的,上述输入端口预配置有协议类型,各输入端口用于接收相匹配的协议类型的用户服务请求。所述用户流量数据中的用户服务请求包括以下至少一种:超文本传输http协议服务请求、传输控制tcp协议服务请求、用户数据报udp协议服务请求。
为接收上述多种类型协议的用户服务请求,本方案中的上述输入端口可以预配置相应类型的协议,预先关联设置端口的名字和配置的协议类型。比如,对输入端口的预配置包括:
Entrypoints:
http:
Port:80
https:
Port:443
Tcp10900:
Port:10900
Udp53:
Port:53
其中,“http:Port:80”,表示端口名为http的端口对应的协议为http协议,端口号为80;“https:Port:443”表示端口名为https的端口对应的协议为https协议,端口号为443;“Tcp10900:Port:10900”表示端口名为Tcp10900的端口对应的协议为Tcp协议,端口号为10900;“Udp53:Port:53”表示端口名为Udp53的端口对应的协议为Udp协议,端口号为53。
S12:所述代理网关将所述用户流量数据发送至与所述输入端口相匹配的服务路由。
上述输入端口可以预先设置相匹配的服务路由,相应的,服务路由的类型与输入端口的类型相匹配。例如,tcp输入端口匹配tcp服务路由,http输入端口匹配http服务路由,udp输入端口匹配udp服务路由等。
在本步骤中,用户流量数据通过输入端口发送至相匹配的服务路由。其中,输入端口与服务路由之间的匹配关系可以是通过代理网关预先设定的。其中,一个输入端口可以匹配有多条服务路由。
S13:所述服务路由配置的中间件监听经过所述服务路由的所述用户流量数据,并向所述代理网关发送所述用户流量数据是否匹配目标中间件规则的匹配结果。
上述中间件可以通过绑定的形式预先配置给服务路由,该中间件预设有中间件规则。该中间件规则用于对符合规则的用户流量数据做预设处理操作。其中,中间件可以通过插件的形式设置于服务路由。在需要增加、删除或修改中间件规则时,可以通过对中间件进行配置的方式实现。通过热加载即可应用修改后的配置,无需重启整个***,避免对收发的用户流量数据造成负面影响。
可选的,上述服务路由匹配的中间件可以预设有多个中间件规则。或者,上述服务路由可以匹配多个中间件,每个中间件预设有一个中间件规则。
由中间件对经过服务路由的用户流量数据执行监听,并判断是否存在与用户流量数据相匹配的目标中间件规则,生成匹配结果发送至代理网关。其中,如果有相匹配的目标中间件规则,生成的匹配结果可以包括相匹配的处理操作,以便代理网关按照目标中间件规则相匹配的操作执行处理。
S14:如果所述匹配结果表征所述用户流量数据与所述目标中间件规则相匹配,则由所述代理网关根据所述目标中间件规则对所述用户服务请求执行相匹配的处理操作。
上述中间件对经过服务路由的用户流量数据与中间件规则进行匹配计算,如果经过服务路由的用户流量数据命中目标中间件规则,则由代理网关根据相匹配的处理操作对用户流量数据做相应处理。该目标中间件规则具体可以包括预设的用户流量数据条件以及相对应的处理操作,如果中间件识别到符合目标中间件规则的用户流量数据,则通过匹配结果告知代理网关根据相对应的处理操作执行处理。
在实际应用中,中间件规则也可以仅包含预设的用户流量数据条件,在用户流量数据符合上述预设的用户流量数据条件时判定该用户流量数据命中目标中间件规则。随后,可以根据该目标中间件规则匹配的中间件的功能指示代理网关执行相匹配的处理操作。
举例而言,假设服务路由对应的第一中间件用于识别黑名单用户,第二中间件用于识别风险用户,第三中间件用于识别错误请求。
那么,第一中间件可以根据预设的黑名单用户对经过服务路由的用户流量数据进行监听,如果有命中黑名单用户的用户流量数据,即用户流量数据来自于黑名单用户的用户端,则生成相应的匹配结果,以指示代理网关拒绝该服务请求。
第二中间件可以根据风险用户对经过服务路由的用户流量数据进行监听,如果有命中风险用户的用户流量数据,即用户流量数据来自于风险用户的用户端,则生成相应的匹配结果,以指示代理网关对用户流量数据执行限流或其他类型的限制操作。
第三中间件可以根据错误请求规则对经过服务路由的用户流量数据进行监听,如果监听到有用户流量数据中的用户服务请求不完整或是非法请求,则生成相应的匹配结果,以指示代理网关向用户端请求重试,进而指示用户端重新发送用户服务请求。
S15:如果所述匹配结果表征所述用户流量数据不存在匹配的中间件规则,则由所述代理网关将所述用户流量数据发送至所述服务路由相匹配的服务器,并根据所述服务器反馈的数据响应用户服务请求。
上述服务路由可以预设相匹配的服务器。可选的,与一个服务路由相匹配的服务器数量可以是多个,不同的服务器可以用于提供不同的服务功能。在实际应用中,可以基于预设的输入端口执行服务路由以及服务器的匹配。其中,输入端口与服务路由可以是多对多的匹配关系,服务路由与服务器之间也可以是多对多的匹配关系。
如果所述匹配结果表征所述用户流量数据不存在匹配的中间件规则,则基于服务路由将用户流量数据发送至相匹配的服务器,以请求服务器提供用户所需的后端服务。服务器在接收到用户流量数据之后,可以根据用户服务请求的具体内容提供服务并反馈表征提供相应服务的数据,如果代理网关接收到服务器反馈的上述数据,则可以将服务器反馈的数据发送至用户端,以响应用户服务请求。
在一些情况下,服务器可能由于异常或用户服务请求的不合法而拒绝提供服务。此时,服务器可以反馈拒绝提供服务的数据。如果代理网关接收到服务器反馈的拒绝服务的数据,则可以将服务器反馈的数据发送至用户端,以响应用户服务请求。
在本申请实施例中,通过代理网关监听输入端口接收的用户流量数据,所述用户流量数据包括用户服务请求;所述代理网关将所述用户流量数据发送至与所述输入端口相匹配的服务路由;所述服务路由配置的中间件监听经过所述服务路由的所述用户流量数据,并向所述代理网关发送所述用户流量数据是否匹配目标中间件规则的匹配结果;如果所述匹配结果表征所述用户流量数据与所述目标中间件规则相匹配,则由所述代理网关根据所述目标中间件规则对所述用户服务请求执行相匹配的处理操作;如果所述匹配结果表征所述用户流量数据不存在匹配的中间件规则,则由所述代理网关将所述用户流量数据发送至所述服务路由相匹配的服务器,并根据所述服务器反馈的数据响应用户服务请求。本方案通过监听数据,对匹配于预设中间件规则的请求执行相匹配的处理操作,提高请求处理灵活性。其中,中间件规则可以根据需求灵活设置,中间件以监听的形式对经过服务路由的用户流量数据执行判断匹配,能支持中间件热加载,能够在不重启整个***的情况下增减中间件规则,避免对收发过程中的用户流量数据造成负面影响。
下面,提供一种可选的配置服务路由与服务器的方法。实际应用中,可以基于已配置的输入端口进行服务路由和服务器的配置。例如,对服务路由和服务器的配置包括:
以上这段配置用于将服务路由和服务器绑定到入口http。其中,routers表示绑定到http的路由列表,此处路由名字为my-router,my-router包含rule规则配置http协议中的host字段,并且值为gotest.cn,同时router绑定到service的名字为my-service。
上述services表示多个service的定义:其中my-service表示一个service的名字,包含了loadbalancer配置项,和servers配置项,以及真实的server地址,即是后端服务的地址。
middlewares表示中间件配置,此处可以实现ip的黑白名单限制,流量的总数量显示,qps限制等。middleware绑定到服务路由上,经过相匹配的服务路由的流量都会被middleware计算一次,以匹配是否命中目标中间件规则。如果命中则可以按照中间件的功能进行拒绝返回数据,转移流量到其他后端服务,重试请求或者不返回数据等操作。
基于上述实施例提供的方案,可选的,如图2所示,还包括:
S21:所述代理网关获取服务注册数据,服务注册数据中包括待注册服务的标识。
本步骤中的服务注册数据可以来自于注册器,实际应用中可以根据需求选用所需的注册器。例如可以选用分布式键值存储***etcd注册器、文件注册器、http接口注册器或者云原生注册器。其中,服务注册数据可以来自于一种注册器或是多种注册器。服务注册数据中包括待注册服务的标识,该标识用于区分不同的服务,具体可以表征服务的名称。
基于上述实施例提供的方案,可选的,所述服务注册数据包括以下至少一项:etcd注册器的注册数据、文件注册器的注册数据、http接口注册器的注册数据、云原生注册器的注册数据。
S22:所述代理网关根据待注册服务的标识对待注册服务配置服务路由,其中,对待注册服务配置的服务路由配置有中间件以及基于协议类型相匹配的输入端口。
对于待注册的服务,本步骤中基于待注册服务的标识配置服务路由,其中,服务路由配置有中间件以及输入端口。通过待注册服务的标识执行服务注册,对服务配置服务路由,相应的,由于服务路由预配置有中间件以及输入端口,因此也实现了为服务配置输入端口和中间件。
通过本申请实施例提供的方案,能够对多种形式部署的服务进行统一的注册。本方案不需要区分服务具体部署形式,只需要注册的服务与本申请中的代理网关能够联通即可实现服务注册,进而可以基于用户服务请求提供服务。
可选的,为了统一执行服务注册以及服务管理,还可以预设注册的格式规则,注册规则可以为dynamic/http/routers/myrouter/rule Host(`example.com`),该注册规则表示生成一个新的路由myrouter,并且它的规则是匹配example.com。
绑定到输入端口的规则可以为dynamic/http/routers/myrouter/entrypoints/0http,表示myrouter这个路由绑定到http这个输入端口。
中间件注册的规则可以为dynamic/http/routers/myrouter/middlewares/0auth,表示auth这个中间件绑定到myrouter。
服务注册的规则可以为dynamic/http/routers/myrouter/service myservice,表示服务的名字是myservice绑定到myrouter这个服务路由。
dynamic/http/services/myservice/loadbalancer/servers/0/url http://ip:port/表示http://ip:port/绑定到myservice这个服务。
对于不同的注册器,也可以基于不同的规则实现注册,例如,通过文件注册时,由服务注册器监控文件的变化,生成注册规则格式的数据,提交到反向代理和动态网关组件。通过http接口注册时,动态后端服务注册器监控http接口的所有数据,生成注册规则格式的数据,提交到反向代理和动态网关组件。通过云原生注册的时候,动态后端服务注册器监控kubernetes的ingress资源的变化,生成注册规则格式的数据,提交到反向代理和动态网关组件。在实际应用中可以根据实际需求预先设定注册规则。
基于上述实施例提供的方案,可选的,如图3所示,还包括:
S31:所述代理网关根据接收到的用户服务请求和对用户服务请求的处理结果生成记录日志,所述记录日志包括接收用户服务请求的时刻、用户服务请求处理完成的时刻、用户服务请求的域名、用户服务请求的身份标识中的至少一项。
本步骤中,代理网关通过监听用户流量数据能记录接收到用户服务请求的时刻,在服务器基于用户服务请求反馈数据后,代理网关也可以记录服务反馈的时刻。另外,还可以记录用户服务请求的域名、身份标识等各类信息。这些信息以日志的形式记录存储,可以便于执行数据分析或在发生异常时查找异常原因。
可选的,代理网关也可以将上述各类信息发送至日志记录器进行存储,以降低代理网关所需消耗的性能。具体的,由代理网关将接收用户服务请求的时刻、用户服务请求处理完成的时刻、用户服务请求的域名、用户服务请求的身份标识等各类信息发送至日志记录器,由日志记录器按预设的格式生成记录日志。比如说,可以生成json格式的记录日志并写入存储。
基于上述实施例提供的方案,可选的,如图4所示,上述步骤S15,如果所述匹配结果表征所述用户流量数据不存在匹配的中间件规则,则由所述代理网关将所述用户流量数据发送至所述服务路由相匹配的服务器,并根据所述服务器反馈的数据响应用户服务请求,包括:
S41:所述代理网关将所述用户流量数据发送至负载均衡器,以指示所述负载均衡器根据预设负载均衡算法将所述用户流量数据发送至所述服务路由相匹配的服务器。
本实施例中,负载均衡器可以连接在代理网关与服务器之间,用于实现负载均衡功能。具体的,代理网关可以将用户流量数据发送至负载均衡器,或者也可以将用户服务请求与匹配的服务器标识发送至负载均衡器。其中,匹配的服务器标识是指与用户服务请求的服务路由相匹配的服务器的标识,用于指示负载均衡器选定合适的服务后端,以执行用户服务请求的转发。由负载均衡器基于预设负载均衡算法选择上述服务器包含的后端服务,然后将用户服务请求发送给选定的后端服务,等待后端服务反馈数据。
S42:如果在预设时间内接收到所述负载均衡器发送的服务器反馈数据,则所述代理网关将所述服务器反馈数据发送至用户服务请求对应的用户端。
S43:如果在预设时间内未接收到所述负载均衡器发送的服务器反馈数据,则所述代理网关向所述用户服务请求对应的用户端发送超时消息。
通常情况下,后端服务会根据接收到的用户服务请求执行服务,如果执行服务成功则反馈表征成功执行服务的数据,如果执行服务失败则反馈表征未成功执行服务的数据。如果在预设时间内收到了服务器反馈的数据,则可以转发给用户服务请求对应的用户端,以实现用户服务请求的响应。如果在预设时间内未收到服务器反馈的数据,则可能发生了传输中断、服务器异常、服务器忙碌等情况,此时可以向用户服务请求对应的用户端发送超时信息。用户端可以再次发送用户服务请求以再次请求服务。
基于上述实施例提供的方案,可选的,如图5所示,在上述步骤S11之前,还包括:
S51:所述代理网关检验输入端口的配置完整性。
本步骤可以由代理网关执行,为降低代理网关的负载,也可以通过与代理网关通信连接的静态配置器来执行。
上述输入端口的配置完整性具体可以包括输入端口本身的配置,例如是否正确配置了输入端口的协议类型。另外,还可以包括输入端口是否正确配置了服务路由和服务器。进一步的,还可以判断配置的服务路由和服务器是否可用,是否存在异常等。
S52:如果输入端口的配置完整,则所述代理网关监听输入端口接收的用户流量数据。
如果上述步骤检验确定输入端口的配置完整,则表明该输入端口能正确接收用户流量数据,并正确处理其中的用户服务请求。在输入端口的配置完整的情况下,可以启用该输入端口,由服务器监听该输入端口接收的用户流量数据。
基于上述实施例提供的方案,可选的,如图6所示,在上述步骤S11之前,还包括:
S61:所述代理网关检验服务路由相匹配的服务器是否联通。
在实际应用中,服务路由匹配的服务器可能有多个,在本方案中,通过不同方式部署的服务在于代理网关连通的情况下都能够正常提供服务。为了提供正常服务,本步骤中对服务路由与服务器之间的联通进行检验。
S62:如果输入端口的配置完整且服务路由相匹配的服务器联通,则所述代理网关监听输入端口接收的用户流量数据。
如果服务路由与服务器之间正常联通,则表明服务路由与服务器之间通信正常,服务器能与服务路由执行数据收发。另外,输入端口的配置完整,则表明输入端口能正常接收用户数据流量,并正常传输至服务路由。此时表明整个***运行正常,可以正常处理用户请求。
通过本申请实施例提供的方案,在处理用户服务请求之前,先对输入端口的配置以及服务器与服务路由之间的连通性进行检验,保证***通信正常。
为了解决现有技术中存在的问题,本申请实施例提供一种处理用户服务请求的***,如图7所示,包括:
输入端口71,用于接收用户流量数据,所述用户流量数据包括用户服务请求;
与所述输入端口71通信连接的代理网关72,监听所述输入端口71接收的用户流量数据,将所述用户流量数据发送至与所述输入端口71相匹配的服务路由73;
所述服务路由73配置有中间件74,监听经过所述服务路由73的用户流量数据,并向所述代理网关72发送所述用户流量数据是否匹配目标中间件规则的匹配结果;
如果所述匹配结果表征所述用户流量数据与所述目标中间件规则相匹配,则由所述代理网关72根据所述目标中间件规则对所述用户服务请求执行相匹配的处理操作;
如果所述匹配结果表征所述用户流量数据不存在匹配的中间件规则,则由所述代理网关72将所述用户流量数据发送至所述服务路由73相匹配的服务器74,并根据所述服务器75反馈的数据响应用户服务请求。
本申请实施例提供的***,通过代理网关监听输入端口接收的用户流量数据,所述用户流量数据包括用户服务请求;所述代理网关将所述用户流量数据发送至与所述输入端口相匹配的服务路由;所述服务路由配置的中间件监听经过所述服务路由的所述用户流量数据,并向所述代理网关发送所述用户流量数据是否匹配目标中间件规则的匹配结果;如果所述匹配结果表征所述用户流量数据与所述目标中间件规则相匹配,则由所述代理网关根据所述目标中间件规则对所述用户服务请求执行相匹配的处理操作;如果所述匹配结果表征所述用户流量数据不存在匹配的中间件规则,则由所述代理网关将所述用户流量数据发送至所述服务路由相匹配的服务器,并根据所述服务器反馈的数据响应用户服务请求。本方案通过监听数据,对匹配于预设中间件规则的请求执行相匹配的处理操作,提高请求处理灵活性。其中,中间件规则可以根据需求灵活设置,中间件以监听的形式对经过服务路由的用户流量数据执行判断匹配,能支持中间件热加载,能够在不重启整个***的情况下增减中间件规则,避免对收发过程中的用户流量数据造成负面影响。
基于上述实施例提供的方案,可选的,如图8所示,所述***还包括:
与所述代理网关72通信连接的服务注册器81,用于获取服务注册数据,服务注册数据中包括待注册服务的标识;根据待注册服务的标识对待注册服务配置服务路由,其中,服务路由预配置有中间件以及基于协议类型相匹配的输入端口;
与所述服务注册器81通信连接的以下至少一种注册器82:etcd注册器、文件注册器、http接口注册器、云原生注册器,各注册器提供相应的注册数据。
相应的,所述服务注册数据包括以下至少一项:etcd注册器的注册数据、文件注册器的注册数据、http接口注册器的注册数据、云原生注册器的注册数据。
通过本申请实施例提供的方案,能够对多种形式部署的服务进行统一的注册。本方案不需要区分服务具体部署形式,只需要注册的服务与本申请中的代理网关能够联通即可实现服务注册,进而可以基于用户服务请求提供服务。
可选的,如图9所示,在代理网关与服务器之间还可以连接有负载均衡器91,用以根据预设负载均衡规则实现服务分配。本申请实施例提供的***还可以包括与处理通信连接的静态配置器、路由配置器、日志记录器、监控器等部件。
其中,静态配置器可以用于检验配置文件格式是否正确、检查是否有入口的配置、是否有日志收集的配置、检查日志收集的格式是否正确、检查是否有监控收集的配置动态后端服务注册器对各种注册器的拉取数据的间隔以及各种注册器的服务地址等,对各部件联通性进行检查,以保证通信畅通以及各部件可用。
路由匹配器可以用于在代理网关接收到用户服务请求后,判断是否有相应的服务路由,如有则选择一个匹配的服务路由,返回给代理网关进行下一步的处理,将请求绑定上一个服务发送到负载均衡器进行服务分配。如果没有路由,返回相应错误信息。
日志记录器可以用于辅助代理网关记录请求的开始时间,等请求有后端服务处理完成,返回的时候在记录一次时间,同时记录请求的域名,ua,用户ip地址等等数据,如果静态配置器配置的是json格式,则转成json格式的数据写入文件。
监控器可以用于计算经过输入端口的所有请求,分别记录请求的http状态码,每经过一个请求就给相应的http状态总数加1,给状态码增加label表明是哪个路由的,具体记录可以如下所示:
Httpcode200{router:my-router,service:my-service,entrypoint:http}1001
Httpcode301{router:my-router,service:my-service}1002
通过本申请实施例提供的***,能支持多种服务发现方式,自动地实现日志记录和日志配置。而且,基于中间件支持流量的管控,支持使用多种环境部署服务,可以实现统一管理流量以及自动监控。通过本申请实施例提供的***,能快速,简单的部署网关和代理,兼容多种形式部署的服务,能方便地实现流量管控和黑白名单等功能。
其中,本申请实施例提供的***中的各个部件还可以实现上述方法实施例提供的方法步骤。或者,本申请实施例提供的装置还可以包括除上述部件以外的其他模块,用以实现上述方法实施例提供的方法步骤。且本申请实施例提供的装置能够实现上述方法实施例所能达到的技术效果。
优选的,本发明实施例还提供一种电子设备,包括处理器,存储器,存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述一种处理用户服务请求的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述一种处理用户服务请求的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random AccessMemory,简称RAM)、磁碟或者光盘等。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种处理用户服务请求的方法,其特征在于,包括:
代理网关监听输入端口接收的用户流量数据,所述用户流量数据包括用户服务请求;
所述代理网关将所述用户流量数据发送至与所述输入端口相匹配的服务路由;
所述服务路由配置的中间件监听经过所述服务路由的所述用户流量数据,并向所述代理网关发送所述用户流量数据是否匹配目标中间件规则的匹配结果;
如果所述匹配结果表征所述用户流量数据与所述目标中间件规则相匹配,则由所述代理网关根据所述目标中间件规则对所述用户服务请求执行相匹配的处理操作;
如果所述匹配结果表征所述用户流量数据不存在匹配的中间件规则,则由所述代理网关将所述用户流量数据发送至所述服务路由相匹配的服务器,并根据所述服务器反馈的数据响应用户服务请求。
2.如权利要求1所述的方法,其特征在于,所述输入端口与用户服务请求的协议类型相匹配,所述用户流量数据中的用户服务请求包括以下至少一种:超文本传输http协议服务请求、传输控制tcp协议服务请求、用户数据报udp协议服务请求。
3.如权利要求2的方法,其特征在于,还包括:
所述代理网关获取服务注册数据,服务注册数据中包括待注册服务的标识;
所述代理网关根据待注册服务的标识对待注册服务配置服务路由,其中,对待注册服务配置的服务路由配置有中间件以及基于协议类型相匹配的输入端口。
4.如权利要求3所述的方法,其特征在于,所述服务注册数据包括以下至少一项:etcd注册器的注册数据、文件注册器的注册数据、http接口注册器的注册数据、云原生注册器的注册数据。
5.如权利要求1~4任一项所述的方法,其特征在于,还包括:
所述代理网关根据接收到的用户服务请求和对用户服务请求的处理结果生成记录日志,所述记录日志包括接收用户服务请求的时刻、用户服务请求处理完成的时刻、用户服务请求的域名、用户服务请求的身份标识中的至少一项。
6.如权利要求1~4任一项所述的方法,其特征在于,如果所述匹配结果表征所述用户流量数据不存在匹配的中间件规则,则由所述代理网关将所述用户流量数据发送至所述服务路由相匹配的服务器,并根据所述服务器反馈的数据响应用户服务请求,包括:
所述代理网关将所述用户流量数据发送至负载均衡器,以指示所述负载均衡器根据预设负载均衡算法将所述用户流量数据发送至所述服务路由相匹配的服务器;
如果在预设时间内接收到所述负载均衡器发送的服务器反馈数据,则所述代理网关将所述服务器反馈数据发送至用户服务请求对应的用户端;
如果在预设时间内未接收到所述负载均衡器发送的服务器反馈数据,则所述代理网关向所述用户服务请求对应的用户端发送超时消息。
7.如权利要求1~4任一项所述的方法,其特征在于,在监听输入端口接收的用户流量数据之前,还包括:
所述代理网关检验输入端口的配置完整性;
如果输入端口的配置完整,则所述代理网关监听输入端口接收的用户流量数据。
8.如权利要求7的方法,其特征在于,在所述代理网关监听输入端口接收的用户流量数据之前,还包括:
所述代理网关检验服务路由相匹配的服务器是否联通;
如果输入端口的配置完整且服务路由相匹配的服务器联通,则所述代理网关监听输入端口接收的用户流量数据。
9.一种处理用户服务请求的***,其特征在于,包括:
输入端口,用于接收用户流量数据,所述用户流量数据包括用户服务请求;
与所述输入端口通信连接的代理网关,监听所述输入端口接收的用户流量数据,将所述用户流量数据发送至与所述输入端口相匹配的服务路由;
所述服务路由配置有中间件,监听经过所述服务路由的用户流量数据,并向所述代理网关发送所述用户流量数据是否匹配目标中间件规则的匹配结果;
如果所述匹配结果表征所述用户流量数据与所述目标中间件规则相匹配,则由所述代理网关根据所述目标中间件规则对所述用户服务请求执行相匹配的处理操作;
如果所述匹配结果表征所述用户流量数据不存在匹配的中间件规则,则由所述代理网关将所述用户流量数据发送至所述服务路由相匹配的服务器,并根据所述服务器反馈的数据响应用户服务请求。
10.如权利要求9所述的***,其特征在于,还包括:
与所述代理网关通信连接的服务注册器,用于获取服务注册数据,服务注册数据中包括待注册服务的标识;根据待注册服务的标识对待注册服务配置服务路由,其中,服务路由预配置有中间件以及基于协议类型相匹配的输入端口;
与所述服务注册器通信连接的以下至少一种注册器:etcd注册器、文件注册器、http接口注册器、云原生注册器,各注册器提供相应的注册数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111487461.2A CN114390108B (zh) | 2021-12-07 | 2021-12-07 | 一种处理用户服务请求的方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111487461.2A CN114390108B (zh) | 2021-12-07 | 2021-12-07 | 一种处理用户服务请求的方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114390108A CN114390108A (zh) | 2022-04-22 |
CN114390108B true CN114390108B (zh) | 2024-03-12 |
Family
ID=81195249
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111487461.2A Active CN114390108B (zh) | 2021-12-07 | 2021-12-07 | 一种处理用户服务请求的方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114390108B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116132246A (zh) * | 2022-09-02 | 2023-05-16 | 马上消费金融股份有限公司 | 一种交互方法、装置、网关设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7849502B1 (en) * | 2006-04-29 | 2010-12-07 | Ironport Systems, Inc. | Apparatus for monitoring network traffic |
CN109802919A (zh) * | 2017-11-16 | 2019-05-24 | 中移(杭州)信息技术有限公司 | 一种web网页访问拦截方法及装置 |
CN110493352A (zh) * | 2019-08-30 | 2019-11-22 | 南京联创互联网技术有限公司 | 一种基于web中间件的统一网关服务***及其服务方法 |
CN111510478A (zh) * | 2020-04-07 | 2020-08-07 | 支付宝(杭州)信息技术有限公司 | 请求处理方法、装置、***及电子设备 |
CN111857974A (zh) * | 2020-07-30 | 2020-10-30 | 江苏方天电力技术有限公司 | 一种基于负载均衡器的服务访问方法及装置 |
CN112995151A (zh) * | 2021-02-08 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 访问行为处理方法和装置、存储介质及电子设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8606190B2 (en) * | 2008-10-28 | 2013-12-10 | Telefonaktiebolaget Lm Ericsson (Publ) | User and traffic data retention in lawful interception |
EP3678348A1 (en) * | 2019-01-04 | 2020-07-08 | Ping Identity Corporation | Methods and systems for data traffic based adpative security |
-
2021
- 2021-12-07 CN CN202111487461.2A patent/CN114390108B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7849502B1 (en) * | 2006-04-29 | 2010-12-07 | Ironport Systems, Inc. | Apparatus for monitoring network traffic |
CN109802919A (zh) * | 2017-11-16 | 2019-05-24 | 中移(杭州)信息技术有限公司 | 一种web网页访问拦截方法及装置 |
CN110493352A (zh) * | 2019-08-30 | 2019-11-22 | 南京联创互联网技术有限公司 | 一种基于web中间件的统一网关服务***及其服务方法 |
CN111510478A (zh) * | 2020-04-07 | 2020-08-07 | 支付宝(杭州)信息技术有限公司 | 请求处理方法、装置、***及电子设备 |
CN111857974A (zh) * | 2020-07-30 | 2020-10-30 | 江苏方天电力技术有限公司 | 一种基于负载均衡器的服务访问方法及装置 |
CN112995151A (zh) * | 2021-02-08 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 访问行为处理方法和装置、存储介质及电子设备 |
Non-Patent Citations (1)
Title |
---|
基于Esper和Nagios的网络监控***设计与实现;蔡昭权 等;计算机工程与科学;20120915(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114390108A (zh) | 2022-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8626921B2 (en) | Device and service management based on layer 2 through layer 7 device attributes | |
US9935829B1 (en) | Scalable packet processing service | |
US7257817B2 (en) | Virtual network with adaptive dispatcher | |
US7899047B2 (en) | Virtual network with adaptive dispatcher | |
CN107770138B (zh) | 指定ip地址的方法及代理服务器、客户端 | |
US20110219129A1 (en) | System and method for connecting network sockets between applications | |
US8949297B2 (en) | Content switch management | |
US8386614B2 (en) | Network connection manager | |
US12004076B2 (en) | Evaluating a hosting device for installation of a virtualized function within a network infrastructure | |
CN114205342B (zh) | 服务调试的路由方法、电子设备及介质 | |
CN111064804B (zh) | 网络访问方法和装置 | |
US10257254B2 (en) | Method and associated server for providing user-friendly operation | |
CN114390108B (zh) | 一种处理用户服务请求的方法和*** | |
US20080244514A1 (en) | Scriptable object model for network based services | |
CN110661673B (zh) | 一种心跳检测的方法及装置 | |
CN112751897A (zh) | 负载均衡方法、装置、介质及设备 | |
CN110113440A (zh) | 一种请求响应方法、装置及终端 | |
CN115378944A (zh) | 一种网络***及服务网格配置方法、存储介质和电子设备 | |
CN108512889B (zh) | 一种基于http的应用响应推送方法及代理服务器 | |
CN114390044A (zh) | 一种文件上传方法、***、设备及存储介质 | |
CN111147285B (zh) | 一种云安全产品统一管理方法 | |
CN110855528B (zh) | 报文处理方法及测试设备 | |
CN116126462A (zh) | 一种虚拟场景中业务部署的方法、装置以及云服务器 | |
US10924575B2 (en) | Automatic network management system and methods | |
CN108933794B (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230316 Address after: Room 501-502, 5/F, Sina Headquarters Scientific Research Building, Block N-1 and N-2, Zhongguancun Software Park, Dongbei Wangxi Road, Haidian District, Beijing, 100193 Applicant after: Sina Technology (China) Co.,Ltd. Address before: 100080 7th floor, Sina headquarters scientific research building, plot n-1 and n-2, Zhongguancun Software Park Phase II (West Expansion), Dongbeiwang West Road, Haidian District, Beijing Applicant before: Sina.com Technology (China) Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |