Spring Cloud Gateway在惠农的实践之路之一: 基础网关的整体设计

惠农网的现状:

惠农网是一家农业B2B电商平台,用户规模在国内农业垂直电商平台中领先,对比2C的平台,用户规模不算大,但电商业务功能还是比较复杂的。惠农网目前采用的是Sprin Cloud的微服务架构。目前承载大概80个左右的服务(每个服务大概1.5w行代码左右)

虽然网上对于Spring Cloud Gateway相关的资料还是比较多,但是大多都是简单的介绍,或者源码的解析,很少有在生产环境中介绍Spring Cloud Gateway的使用方式。

针对上面的问题,惠农网这一系列文章,会从网关设计,代码编写,运维层面和未来考虑,详细描述,如何使用开源组件Spring Cloud Gateway来完成惠农网整体基础网关的整体设计的。

一: Spring Cloud Gateway是什么?

Spring Cloud Gateway是Spring Cloud 的一个全新项目,Spring Cloud Gateway 作为 Spring Cloud 生态系统中的网关,目标是替代 Netflix Zuul,其不仅提供统一的路由方式,并且基于 Filter 链的方式提供了网关基本的功能

二: Spring Cloud Gateway定位是什么?

Spring Cloud Gateway的定位是作为所有请求到后端的必经之路,主要做了一些统一逻辑的处理。比如鉴权、监控、限流等,之后会逐个详细说明使用了什么功能。

三:Spring Cloud Gateway的整体设计图

image

(1) 其中蓝色标注的模块就是使用Spring Cloud Gateway来进行构建的进程,整个应用被根据入口的流量类型被设计成了4个不同的入口。
(2) appapi模块定位为主业务流量入口(包括app客户端、小程序、m站等前端流量)
(3) hswwapi模块定位运营后台业务流量入口(主要是统一的运营管理后台流量)
(4) openapi模块定位第三方回调或者第三方调用流量入口(主要是业务使用的第三方的流量入口)
(5) pcapi模块定位pc站的业务流量(主要用于应对有可能会有爬虫进行访问页面的流量入口)
(6) 其他的模块为基础模块,用于协助Spring Cloud Gateway和业务基础服务来发挥功效的组件

四:前端如何定义流量的划分

由于定义了四个流量入口,所以也定义了四个域名分别来区分流量的入口,分别是appapi.cnhnb.com, hswwapi.cnhnb.com, openapi.cnhnb.com, pcapi.cnhnb.com

针对不同的域名,虽然都是一套代码, 也需要根据每种流量的特性,来制定不同的过滤器策略,保证满足基础业务的需求。

并且配合不同的域名,也要通过一些限制条件来限制访问的具体路径,所以在业务定义的时候,根据第一层业务路径来进行限制,比如appapi.cnhnb.com域名的网关,只能访问uri为/api 开头定义的接口,hsww.cnhnb.com域名的网关,只能访问uri为 /hsww开头定义的接口。 通过这样的方法,就可以通过最终的监控,清晰的看到外部流量的整体情况,以及对应服务的压力情况。

例子,appapi域名的请求流量的监控


image

五: 到底每个模块包括了什么功能

Spring Cloud Gateway里面有两个概念,一个是全局过滤器 Global Filter,一个是普通过滤器 Gateway Filter

其中Global Filter 是所有网关模块一起使用,然后每个独立的网关模块有对应的Gateway Filter

公共模块功能包括
(1) eureka服务路由模块
(2) apollo动态配置模块
(3) AccessLogFilter 访问日志的记录模块
(4) BlackIpFilter 黑名单限制模块
(5) GuardFilter 屏蔽服务模块
(6) Metrics监控
(7) Trace监控
(8) Sentry报警

appapi模块功能包括
(1) api前缀路径校验
(2) 参数校验和签名校验
(3) 认证逻辑校验
(4) 选择认证逻辑校验
(5) 文件上传大小限制配置
(6) 限流
(7) 熔断
(8) 第一层path路径移除
(9) 跨域支持

hswwapi模块功能包括
(1) hsww前缀路径校验
(2) 内网用户账户校验功能
(3) 文件上传大小限制配置
(4) 限流
(5) 第一层path路径移除
(6) 跨域支持

openapi 模块功能包括
(1) openapi前缀路径校验
(2) 白名单ip限制
(3) 熔断
(4) 第一层path路径移除
(5) 跨域支持

pcapi 模块功能和appapi保持一致

接下来,会详细介绍每个项目模块具体处理的业务逻辑和具体实现。

转载请注明作者和出处,并添加本页链接。
原文链接: //tech.cnhnb.com/post/2

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,378评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,356评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,702评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,259评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,263评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,036评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,349评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,979评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,469评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,938评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,059评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,703评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,257评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,262评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,501评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,792评论 2 345