CN111314226A - 一种可在zuul网关动态配置多协议下游服务转发的方法 - Google Patents

一种可在zuul网关动态配置多协议下游服务转发的方法 Download PDF

Info

Publication number
CN111314226A
CN111314226A CN202010141276.7A CN202010141276A CN111314226A CN 111314226 A CN111314226 A CN 111314226A CN 202010141276 A CN202010141276 A CN 202010141276A CN 111314226 A CN111314226 A CN 111314226A
Authority
CN
China
Prior art keywords
zuul
route
routing
protocol
strategy
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.)
Pending
Application number
CN202010141276.7A
Other languages
English (en)
Inventor
李海峰
肖金华
江琳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Biebeyun Co ltd
Original Assignee
Xiamen Biebeyun Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xiamen Biebeyun Co ltd filed Critical Xiamen Biebeyun Co ltd
Priority to CN202010141276.7A priority Critical patent/CN111314226A/zh
Publication of CN111314226A publication Critical patent/CN111314226A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/30Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
    • H04L63/306Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information intercepting packet switched data communications, e.g. Web, Internet or IMS communications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Technology Law (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明涉及一种可在zuul网关动态配置多协议下游服务转发的方法。该方法:首先,通过自定义路由定位器,改变拦截分发服务根路径,同时修改刷新策略以及路由的加载初始化和刷新策略;而后,通过自定义过滤器,实现包括签名、路由请求包装、协议分发控制、异常处理、结果处理对应的操作。本发明通过对zuul的深度扩展,提供了zuul动态转发下游协议的支持,包括如何进行数据库配置和代码改造的说明,极大地简化了我们实际开发中所遇到的问题。

Description

一种可在zuul网关动态配置多协议下游服务转发的方法
技术领域
本发明涉及微服务系统技术领域,尤其涉及一种可在zuul网关动态配置多协议下游服务转发的方法。
背景技术
通常使用zuul网关时,可以很方便帮我们把请求根据路由转发到下游springclound服务上,但部分项目可能有接口为rpc调用,则会将rpc接口封装一层,暴露出http接口再进行转发,这样操作无疑会带来更大工作量,同时也使得微服务变的笨重。本发明将对网关进行改造,使得可动态的根据设定的配置,进行对应下游接口的协议服务转发而不需要进行其他业务代码方面改造。
发明内容
本发明的目的在于提供一种可在zuul网关动态配置多协议下游服务转发的方法,旨在提高微服务系统网关动态配置转发的灵活性。
为实现上述目的,本发明的技术方案是:一种可在zuul网关动态配置多协议下游服务转发的方法,首先,通过自定义路由定位器,改变拦截分发服务根路径,同时修改刷新策略以及路由的加载初始化和刷新策略;而后,通过自定义过滤器,实现包括签名、路由请求包装、协议分发控制、异常处理、结果处理对应的操作。
在本发明一实施例中,该方法实现步骤如下:
步骤S1、设计数据库:
进行数据库中路由表、参数表的设计,实现包括路由信息、下游服务信息的配置;
步骤S2、改变拦截分发服务根路径,同时修改刷新策略以及路由的加载初始化和刷新策略;
S21、改写拦截分发服务根路径:将zuul的servlet扫描根路径/zuul修改为/;
S22、改写获取路由的接口:自定义路由加载器,覆盖zuul默认的从配合文件读取改为数据库读取的操作,从而实现将zuul改为从数据库中读取在路由表和参数表中配置好的路由信息,并返回zuul要求的实体格式,初始加载所有路由表配置的路由,缓存在内存中;
S23、改写路由匹配规则:重写zuul匹配寻找路由方法为拦截请求参数中的action参数,与缓存的路由表匹配找到对应的路由实体;
步骤S3、自定义过滤器:
通过自定义签名过滤器、前置路由器、策略过滤器、相应的结果处理过滤器,实现重复攻击网关过滤、转发控制处理器的识别、下游服务协议的选择以及结果、异常的处理。
相较于现有技术,本发明具有以下有益效果:本发明方法不干扰正常业务代码的情况下面,做到了最简化配置。通过该方案,我们可以进行接口的参数转换,协议的转换以及协议配置。这样既能保证zuul的高效性,又不需要对下游服务进行改造,可以更好的让zuul为我们服务;本发明方法使得在用户在使用zuul时,可以更加方便的定义下游服务的协议类型;有些旧项目使用的协议可以不需要二次包装成springclound服务暴露出来,只需要进行简单的数据库配置和服务转发操作;这样可以很好的兼容新旧服务,对于项目上也可以节省时间专注于业务。
附图说明
图1为本发明方法流程示意图。
具体实施方式
下面结合附图,对本发明的技术方案进行具体说明。
本发明提供了一种可在zuul网关动态配置多协议下游服务转发的方法,首先,通过自定义路由定位器,改变拦截分发服务根路径,同时修改刷新策略以及路由的加载初始化和刷新策略;而后,通过自定义过滤器,实现包括签名、路由请求包装、协议分发控制、异常处理、结果处理对应的操作。该方法实现步骤如下:
步骤S1、设计数据库:
进行数据库中路由表、参数表的设计,实现包括路由信息、下游服务信息的配置;
步骤S2、改变拦截分发服务根路径,同时修改刷新策略以及路由的加载初始化和刷新策略;
S21、改写拦截分发服务根路径:将zuul的servlet扫描根路径/zuul修改为/;
S22、改写获取路由的接口:自定义路由加载器,覆盖zuul默认的从配合文件读取改为数据库读取的操作,从而实现将zuul改为从数据库中读取在路由表和参数表中配置好的路由信息,并返回zuul要求的实体格式,初始加载所有路由表配置的路由,缓存在内存中;
S23、改写路由匹配规则:重写zuul匹配寻找路由方法为拦截请求参数中的action参数,与缓存的路由表匹配找到对应的路由实体;
步骤S3、自定义过滤器:
通过自定义签名过滤器、前置路由器、策略过滤器、相应的结果处理过滤器,实现重复攻击网关过滤、转发控制处理器的识别、下游服务协议的选择以及结果、异常的处理。
以下为本发明一具体实例。
如图1所示,本发明的一种可在网关动态配置多协议下游服务转发的方法,实现如下:
1、数据库设计
(1)设计路由表
路由表关键字段为:路由标识、请求路劲、下游服务名、下游方法请求方式、下游接口类型。
(2)设计参数表
主要用于接口参数替换,比如占位符之类的。关键字段为路由表id、参数类型、是否替换。
2、继承zuul自带的简单路由定位器实现以及实现刷新路由定位器接口。
(1)改写拦截请求的根路径。具体操作为修改zuul的servlet扫描根路径/zuul为/,这样所有请求都会被zuul代理进行处理而不会丢给spring的路由匹配器进行处理。因zuul本身默认的拦截只会拦截已配置的路由规则,但在实际开发中,并不会将规则直接暴露,而是会拦截所有请求并进行处理。
(2)改写获取路由的接口。具体操作为自定义路由加载器,实现刷新路由定位器中的加载方法和刷新路由方法,覆盖zuul默认的从配合文件读取改为数据库读取的操作。通过这样实现将其改为从数据库中读取我们在路由表和参数表中配置好的路由信息,并返回zuul要求的实体格式,进行初始加载所有路由表配置的路由,缓存在内存中。通过这些操作zuul的上下文中就会缓存一份路由表配置用于匹配我们的http请求路径。
(3)改写路由匹配规则。zuul默认匹配规则为全匹配,既请求的路径与配置中的路由表中的有相同则进行转发。这样我们将其改成我们自定义的匹配规则,重写zuul默认匹配寻找路由方法为拦截我们请求参数中的action参数与上下文缓存的路由表匹配找到对应的路由实体。如果找不到与之匹配的则抛出异常。
3、自定义过滤器进行相关操作
(1)签名过滤器
通过签名过滤器,重复攻击网关等过滤操作。签名过滤器可根据情况进行。
定义get/post请求包装类。通过定义get/post的请求包装类,从而进行请求的封装。所述通过签名的请求进入到这一层,是指进行参数解析后,再从路由缓存中取到对应的路由实体配置。因为get/post的参数体来源不一致,尤其post请求,java若请求参数被读取后io流将关闭。所以为能多次读取该请求而进行相应的重写操作。此时占位符替换和参数替换的操作也很关键,若请求路径有占位符或需要替换参数,所述可从参数表找出并进行相应的替换操作,当然所有操作都是基于路由体存在;若从缓存中没有取到当前请求的路由配置,则将抛出异常。
(2)定义转发的前置路由器
所述进行接收已重新包装的请求,当前主要工作为识别下游转发体和转发服务。因在路由表中已定义了下游接口的类型,所以可准确识别到当前请求路由的转发类型。如识别到rpc,在策略上下文中找对应的转发控制处理器。若能找到则调用对应相应的策略进行处理,若无法找到则抛出异常。
(3)定义策略过滤器
通过定义策略接口,并根据系统复杂性进行相应类型的下游服务协议的策略实现。定义一个上下文用于获取所有的实现类,提供方法用于获取指定策略,。所述此处用到的是spring的依赖注入,只需bean的名字和数据库配置的一样即可取到实现类,如没有取到则抛出异常。
(4)相应的结果处理过滤器
定义post过滤器和error过滤器进行结果处理和异常处理,日志记录等。
以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。

Claims (2)

1.一种可在zuul网关动态配置多协议下游服务转发的方法,其特征在于,首先,通过自定义路由定位器,改变拦截分发服务根路径,同时修改刷新策略以及路由的加载初始化和刷新策略;而后,通过自定义过滤器,实现包括签名、路由请求包装、协议分发控制、异常处理、结果处理对应的操作。
2.根据权利要求1所述的一种可在zuul网关动态配置多协议下游服务转发的方法,其特征在于,该方法实现步骤如下:
步骤S1、设计数据库:
进行数据库中路由表、参数表的设计,实现包括路由信息、下游服务信息的配置;
步骤S2、改变拦截分发服务根路径,同时修改刷新策略以及路由的加载初始化和刷新策略;
S21、改写拦截分发服务根路径:将zuul的servlet扫描根路径/zuul修改为/;
S22、改写获取路由的接口:自定义路由加载器,覆盖zuul默认的从配合文件读取改为数据库读取的操作,从而实现将zuul改为从数据库中读取在路由表和参数表中配置好的路由信息,并返回zuul要求的实体格式,初始加载所有路由表配置的路由,缓存在内存中;
S23、改写路由匹配规则:重写zuul匹配寻找路由方法为拦截请求参数中的action参数,与缓存的路由表匹配找到对应的路由实体;
步骤S3、自定义过滤器:
通过自定义签名过滤器、前置路由器、策略过滤器、相应的结果处理过滤器,实现重复攻击网关过滤、转发控制处理器的识别、下游服务协议的选择以及结果、异常的处理。
CN202010141276.7A 2020-03-04 2020-03-04 一种可在zuul网关动态配置多协议下游服务转发的方法 Pending CN111314226A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010141276.7A CN111314226A (zh) 2020-03-04 2020-03-04 一种可在zuul网关动态配置多协议下游服务转发的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010141276.7A CN111314226A (zh) 2020-03-04 2020-03-04 一种可在zuul网关动态配置多协议下游服务转发的方法

Publications (1)

Publication Number Publication Date
CN111314226A true CN111314226A (zh) 2020-06-19

Family

ID=71148085

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010141276.7A Pending CN111314226A (zh) 2020-03-04 2020-03-04 一种可在zuul网关动态配置多协议下游服务转发的方法

Country Status (1)

Country Link
CN (1) CN111314226A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111884917A (zh) * 2020-07-28 2020-11-03 浪潮云信息技术股份公司 基于微服务的网关系统及网关动态路由方法
CN111901238A (zh) * 2020-07-09 2020-11-06 中移(杭州)信息技术有限公司 动态路由服务方法、装置、电子设备及存储介质
CN112039780A (zh) * 2020-09-01 2020-12-04 浪潮云信息技术股份公司 基于Zuul的持久化动态路由实现方法、电子设备及存储介质
CN112636992A (zh) * 2021-03-10 2021-04-09 腾讯科技(深圳)有限公司 一种动态路由方法、装置、设备及存储介质
CN114205191A (zh) * 2021-12-13 2022-03-18 四川启睿克科技有限公司 一种api网关系统及运行方法
CN114567586A (zh) * 2022-03-04 2022-05-31 中国农业银行股份有限公司 网关路由动态添加方法、装置、电子设备以及存储介质
CN116186079A (zh) * 2023-04-27 2023-05-30 江苏博云科技股份有限公司 一种sql批量查询自动改写和优化方法
CN117724869A (zh) * 2023-12-19 2024-03-19 成都九天智信科技有限公司 一种基于web的自定义的系统流程编辑器

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111901238A (zh) * 2020-07-09 2020-11-06 中移(杭州)信息技术有限公司 动态路由服务方法、装置、电子设备及存储介质
CN111884917A (zh) * 2020-07-28 2020-11-03 浪潮云信息技术股份公司 基于微服务的网关系统及网关动态路由方法
CN112039780A (zh) * 2020-09-01 2020-12-04 浪潮云信息技术股份公司 基于Zuul的持久化动态路由实现方法、电子设备及存储介质
CN112636992A (zh) * 2021-03-10 2021-04-09 腾讯科技(深圳)有限公司 一种动态路由方法、装置、设备及存储介质
CN114205191A (zh) * 2021-12-13 2022-03-18 四川启睿克科技有限公司 一种api网关系统及运行方法
CN114205191B (zh) * 2021-12-13 2023-09-15 四川启睿克科技有限公司 一种api网关系统及运行方法
CN114567586A (zh) * 2022-03-04 2022-05-31 中国农业银行股份有限公司 网关路由动态添加方法、装置、电子设备以及存储介质
CN116186079A (zh) * 2023-04-27 2023-05-30 江苏博云科技股份有限公司 一种sql批量查询自动改写和优化方法
CN116186079B (zh) * 2023-04-27 2023-07-04 江苏博云科技股份有限公司 一种sql批量查询自动改写和优化方法
CN117724869A (zh) * 2023-12-19 2024-03-19 成都九天智信科技有限公司 一种基于web的自定义的系统流程编辑器

Similar Documents

Publication Publication Date Title
CN111314226A (zh) 一种可在zuul网关动态配置多协议下游服务转发的方法
AU761247B2 (en) Object gateway
US9742668B1 (en) Packet forwarding path programming using a high-level description language
US9954873B2 (en) Mobile device-based intrusion prevention system
CN102763368B (zh) 用于跨站点伪造保护的方法和系统
US8590034B2 (en) Method, system and apparatus for providing stateful information redaction
US8332948B2 (en) Intelligent integrated network security device
US11968178B2 (en) Reduction and acceleration of a deterministic finite automaton
CN107070674B (zh) 处理数据包的方法和网络装置
US20060123479A1 (en) Network and application attack protection based on application layer message inspection
US20090055930A1 (en) Content Security by Network Switch
US8904000B2 (en) Provision of services over a common delivery platform such as a mobile telephony network
GB2422218A (en) A system for providing services
WO2001097451A2 (en) System, method and computer program product for reading, correlating, processing, categorizing and aggregating events of any type
CN110035006A (zh) 转发平面重置的单独网络设备
US20060161616A1 (en) Provision of services over a common delivery platform such as a mobile telephony network
US11818099B2 (en) Efficient matching of feature-rich security policy with dynamic content using user group matching
US20030115253A1 (en) Framework for service personalization
Cheng et al. Design and Implementation of TLS Traffic Packet Filtering Technology Based on Netfilter Framework
US20200145379A1 (en) Efficient matching of feature-rich security policy with dynamic content using incremental precondition changes
US10965647B2 (en) Efficient matching of feature-rich security policy with dynamic content
US7475096B2 (en) System for distributed communications
Jiang et al. High-speed discrete content Sensitive pattern match algorithm for deep packet filtering
CN118075033A (zh) 一种网络安全防护方法及系统
Zaheer Eztrust: Network Independent Perimeterization for Microservices

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200619