网关
客户端->Nginx->网关->服务
微服务下,所有的服务都会走网关进行中转,网关统一进行安全认证、流量控制、日志、监控等功能
绝大部分网关可以提供下面这些功能(有一些功能需要借助其他框架或者中间件):
- 路由管理:
- 转发,负载均衡,服务发现,灰度发布
- 协议转换
- HTTP/HTTPS 转换
- WebSocket 支持
- gRPC 协议支持
- 消息队列协议转换
- 安全认证
- 身份认证
- 流量控制
- 限流控制
- 降级熔断
- 重试机制
- 超时控制
- 监控统计等功能,是现代分布式系统不可或缺的核心组件。
常见网关系统
- Netflix Zuul:Java 开发
- Spring Cloud Gateway(最适合 Java)
- OpenResty:
- Kong(生态丰富)
- APISIX(相对最优)
- Shenyu
