1.网关是如何演化来的,在微服务中有什么作用?
随着单体架构转化为微服务架构的时候,由一个后台服务由一个单一的服务变成了多个微服务,前端应用需要调用多个服务的接口,为了解决这个问题,网关就产生了。网关就是说微服务架构当中一个对外的统一入口,解耦客户端与内部服务。
2,网关的基本功能
1,网关的核心功能就是路由转发,因为不要有耗时的操作在网关上处理,比如说特定的业务逻辑,网关需要将请求快速转发到后台各个微服务上。
2,网关还能做统一的熔断,限流,认证,日志监控等
3,Spring Cloud gateway的发展史
在1.X的版本当中,网关采用的Zuul网关,但是2.X版本当中,自己研发了一套网关程序,就是
Spring Cloud gateway。
4,和网关类似的功能组件:
nginx:主要作用是反向代理和负载均衡
缺点:配置不灵活
zuul网关:早期的微服务使用的网关
缺点:功能和性能都不如Spring Cloud gateway。
Spring Cloud gateway:
优点:性能比zuul要高,而且可以无缝衔接到微服务开发中来。
5,为什么微服务当中一定要有网关
1,如果没有网关,客户端要请求不同的微服务后端,增加了客户端的复杂性
2,存在跨域问题
3,认证复杂,每个服务都需要独立认证,比如说登录认证,如果没有网关,所有后台都需要做一次登录认证
4,个别的微服务可能没有外网端口,客户端不能直接访问到微服务后端
5,前后端不能解耦,重构困难,比如说有一天需要将一个微服务,继续拆分为两个微服务,那前端也需要改造。因为前端得需要修改拆分后的ip和端口。如果有网关,前端就不需要改造
6,微服务网关的优点
1,反向代理(不需要暴露微服务的真实ip,微服务可以只暴露内网端口,更安全)
2,易于监控:通过网关我们可以统计哪些api的调用量最多,哪些api的耗时比较长,从而做特定优化。
3,易于认证
4,可以将所有微服务的接口做统计与拦截(微服务接口的管理者)