服务网关是所有处于内网中的微服务的唯一入口,在进行网关组件的技术选型时,所选择的网关组件必须具备以下特性:
- 高可用
服务网关是对外的唯一关口,必须保证 7 * 24小时可用,持续提供稳定可靠的服务
- 高性能
所有的请求都会经过服务网关,它承受的压力是巨大的,所以必须保证它具备良好的性能,以应对高并发请求
- 高安全性
服务网关必须能够防止外部的恶意访问,确保内网各个微服务的安全
- 高扩展性
服务网关是一个处理非业务功能的绝佳场所,必须能够提供流量管控、协议转发、日志监控等服务,同时能够为以后对非业务功能的扩展提供良好的兼容性
目前业界常见的服务网关方案有如下几种可选:
- Nginx + Lua
这一对组合是所有网关的翘楚,可以说是傲视群雄,这主要得益于Nginx基于事件驱动的设计方式以及全异步的网络IO处理机制,性能极高
- Tyk
开源网关组件
- Kong
商业网关组件
- Spring Cloud Zuul
源自Netflix Zuul开源组件,适合用于嵌入Java软件开发项目中,为没有专业网关组件开发团队的公司提供最快捷简单的服务网关组件
使用Spring Cloud实现分布式微服务架构时,Spring Cloud就提供了Spring Cloud Zuul、Spring Cloud Gateway这两种网关组件给开发者选择:
(1)Spring Cloud Zuul
在Spring Clou