学习三步走:为什么,是什么,怎么做
为什么要有网关层
微服务在对外提供功能的时候,需要验证来者的身份,实现方式有如下
1、各自为政:每个微服务各自实现一遍,各自管理用户权限,用户权限系统不通用
2、众星拱月:写到专门的权限校验微服务,提供接口供其他微服务调用
3、事不关己:在请求到达微服务前,在网关处拦截,进行过滤,实现权限校验
第一种实现和维护成本过高
第二种系统耦合度高
所以选择第三种比较合适
同样的,还有一些其它不涉及业务且每个微服务都需要的功能,
一些在使用微服务之前就需要的功能,所以就出现了网关层
网关层是什么,有哪些功能
常见功能有如下
1、请求鉴权:鉴别接收到的请求有没有使用该服务的权限
2、数据完整性检查:有一些字段要求有的,在这里进行检查,例如sessionid
3、协议转换:将json格式转换成python的字典,或者java的HashMap
4、路由转发:根据业务类型转发给不同的微服务
5、服务治理:
限流(限制访问数量以自我保护)、
降级(不同接口的服务可用的重要性是不同的,服务器性能不够时有策略的牺牲重要性低的接口)、
熔断(熔断是选择阻断某些服务,使得系统不至于连锁崩溃)、等等
如何实现网关
未学待续~