API 网关 有点类似 代理模式里的代理者
先来看一张 API 网关示例图
这里有 3 个服务 UserService
ProductService
,OrderService
没有用API 网关之前呢,如果想要访问后端,想要访问产品,就先要检查是否登录过,那么就先访问 UserService login,发现你已经登录,那么你就可以查询产品 或者提交订单了,这是API 网关出现之前的方式
在上面的这个过程中,最后 提交订单这一步,其实要验证前面的两步,是否已经登录,是否还有库存,如最后才判断是否登录,也就是说,你点点击提交订单的一个按钮时候,服务器后台需要做这几步判断,分步的请求,来来回回的走了好几步,这就比较慢了。
在浏览器上用过网址导航的就知道,你不需要记住每一个网站的地址,直接在网址导航里点击一下,就进入了相关的网站,其实 API 网关也就是类似的道理,为了解决上面所说的下单分步请求的的问题,就有 网关 gateway 这个东西了。
有了网关之后,客户端就统一访问 API 网关,网关通过服务的调用去访问 UserService , ProductService,OrderService
API 网关是微服务的门面
API 网关是微服务的重要组成部分
API 网关类似代理模式的代理者
API 网关的作用
1. 身份验证也安全
2. 审查和监测
3. 动态路由(dubbo 不需要,本身就处理好了,springcloud 里需要,相当于来一个请求,把请求和服务做一个映射)
4. 压力测试
5. 负载均衡(业务同时面向 3 个微服务,那么 API 网关给 服务1 ,服务2 ,服务 3 哪个进行派发)
6. 静态相应处理