一、网关层面的优点:
1.安全,提供统一的访问入口,降低服务器受攻击面积
2.提供统一的跨域解决方案
3.提供统一日志记录操作,可以进行统一监控
4.提供统一权限认证支持
5.提供微服务限流功能,可以保护微服务,防止雪崩效率发生
6.微服务网关最主要作用是整合各个微服务功能,形成一套或者多套系统
二、多个网关管理系统,通过网关路由到不同系统,区分访问权限
三、Nginx 和
四、微服务网关的限流操作
1. 令牌桶算法:
1)所有的请求在处理之前都需要拿到一个可用的令牌才会被处理
2)根据限流大小,设置按照一定的速率往桶里添加令牌
3)桶设置最大的放置令牌限制,当桶填满时,新添加的令牌就被丢弃或者拒绝
4)请求到达后首先获取令牌桶中的令牌,拿着令牌才可以进行其他的业务逻辑,处理完逻辑之后,将令牌直接删除
5)令牌桶有最低限额,当桶中的令牌到达最低限额的时候,请求处理完之后将不会删除令牌,一次保证足够的限流
五、什么是JWT
JSON WEB Token (JWT) 是一个非常轻巧的规范,这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息
JWT总结:JWT是用于微服务之间传递用户信息的一段加密字符串,该字符串是一个JSON格式,各个微服务可以根据JSON字符串识别用户的身份信息,也就是该json字符串会封装用户的身份信息。
JWT结构:(头部+载体+签名)
头部:指定了令牌类型和令牌签名算法
加密方式:Base64
载荷总结:
主要分为三部分:1.标准中注册的声明;
2.公共的声明;(不参与令牌校验)
3.私有声明(不参与令牌校验)
1+2+3 ->Base64 加密
签证:
JWT的第三部分是一个签证信息(校验数据是否被篡改),这个签证信息有三部分组成:
header(base64 后的)
payload(base64 后的)
secret(秘钥 -> 盐)
这部分需要base64加密后的header 和base64 加密后的 payload使用,连接组成字符串,然后通过header中声明的加密方式进行加盐secret组合加密,然后构成的JWT的第三部分。
签证作用:用于校验令牌是否被篡改
六、鉴权操作流程