
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们在前几期的文章中给大家简单介绍了微服务架构开发的一些基础知识等内容,而本文我们就简单来学习一下,微服务架构常用组件类型分析。
1、网关模式
网关作为架构的外层服务,用来统一拦截各个端口的请求,识别请求合法性,拦截异常动作,并提供路由和负载能力,保护业务服务;这种策略与外观模式异曲同工。
网关服务和门面类服务有部分的逻辑相似,网关服务的拦截侧重处理通用的策略和路由负载,而不同的门面聚合服务侧重场景分类,例如常见的几种门面服务:
Facade:服务产品开放的端口请求,例如Web,App,小程序等;
Admin:通常服务于内部的管理系统,例如Crm,BI报表,控制台等;
Third:聚合三方的对接服务,例如短信,风控,动作埋点等;
不同的门面服务中,也会存在特定的拦截策略,如果把Facade、Admin、Third等校验都集成在网关中,很显然会加重网关服务的负担,不利于架构的稳定。
2、Gateway组件
如果微服务架构接触较早的话,初期网关中常采用的是Zuul组件,后来SpringCloud才发布Gateway组件,是当前常用选型。
请求拦截:网关作为API请求的开放入口,完成请求的拦截、识别校验等是基础能力;
定制策略:除常规身份识别,根据服务场景设计相应的拦截逻辑,尽量拦截异常请求;
服务路由:请求通过拦截后转发到具体的业务服务,这里存在两个核心动作路由和负载;
作为微服务架构中常用的选型组件,下面从使用细节中详细分析Gateway网关的使用方式,与其他组件的对接流程和模式。
Nacos管理网关服务注册和相关配置文件,在项目中通常与nacos共用一套MySQL库,用来管理网关的服务路由数据,是当下比较常见的解决方案。
3、网关拦截
GlobalFilter:网关中的全局过滤器,拦截经过网关的所有请求,经过相应的校验策略,判断请求是否需要执行。
通常在网关中会执行一些必要共性拦截,例如:IP黑白名单,Token身份令牌,在请求中获取对应参数,执行相关服务的校验方法即可。
4、动态路由
在服务路由的实现上,存在复杂的逻辑和策略,来适配各种场景;路由的概念如何定义,可以查阅Gateway组件的源码RouteDefinition对象,结构涉及到几个核心的属性:路由、断言、过滤、元数据:
Route路由:由ID、转发Uri、断言、过滤、元数据组成;
Predicate断言:判断请求和路由是否匹配;
Filter过滤:可以对请求动作进行修改,例如参数;
Metadata元数据:装载路由服务的元信息;
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。