api架构,用来保护、增强和控制对于api服务的访问

职能与关注点

网关职能

image.png

关注点

image.png

分类和技术分析

流量网关

image.png
image.png
防火墙、流量网关、业务网关

image.png
上述安全威胁都需要在我们的流量网关进行设置。
很多时候会将防火墙提供的功能在流量网关实现。
但是如果你对于安全性要求比较高的话,如下:
image.png

业务网关

image.png

开源网关分析

image.png

nginx+lua(性能吊打基于java实现的网关)

open Resty

基于Nginx,集成了Lua语言和Lua的各种工具库,可用的第三方模块。

Kong

image.png

ABTestingGateWay

(新浪,功能比较聚焦,灰度发布相关)
image.png

Oceanus(美团,自研,Kong还没有出来)

image.png

基于java实现的网关

zuul1.0,同步IO,性能低;过滤方式低,image.png,只有三种

zuul2.0

基于Netty,实现异步I/O接入请求,这样实现更高的性能、更高的延迟
推出比较晚,此时spring cloud gateway已经比较成熟,了解即可

spring cloud gateway

image.png

开源网关对比&技术总结

image.png
image.png
API 网关性能对比
image.png

开源网关技术总结

image.png
Kong:流量网关优选,不建议作为业务网关
SCG:业务网关优选,不能作为流量网关

微服务下的跨域问题

什么是跨域?
基于浏览器的同源策略问题(从一个资源访问另一个资源需要协议、主机、端口号都相同)
image.png

JSONP跨域解决方案

CORS跨域解决方案

image.png
image.png
简单请求
非简单请求
注解在类上、方法上进行跨域访问
或者设置全局的,如下
image.png

网关微服务概述

网关解决了什么样的问题
image.png
image.png
image.png
image.png