网关的作用?
例子:就像公司的保安:检查人员身份,引导新人员找到相关的部门。减少人员直接冲进办公室
实际:提供统一的API,可以屏蔽真实调用的服务信息,隐藏保护,屏蔽内部细节
反向路由:能够将外部调用转换成内部服务,通过负载均衡分发请求到服务器
认证安全:拦截无效流量的请求。爬虫,黑客。突发流量的限流熔断,保障服务稳定
灰度发布:对于版本迭代进行灰度发布控制
性能监控:可以查看api的调用时间,次数,耗时等
降级限流:防止突发流量暴增。进行限流。保障系统的稳定
系统日志:流量都经过网关,可以记录审计日志,通过日志可以查看到性能问题流量都经过网关
数据缓存:
如果传输协议不一致,需要对协议进行转换
网关的分类
springcloud的zuul, gateWay, Kong, nginx+lua, 自研网关
自研网关基于:netty,servlte等技术
zuul: java语言开发,方便二次开发。并发能力不强,基于tomcate部署,或通过springboot将项目跑起来。
nginx:是C语言开发实现,需要理解C语言,并发能力强,很难从nginx内核等方面定制