API网关

最近负责开发密码服务平台,需要选型API网关。  密码服务平台主要功能有 身份认证,密码运算,密钥管理,以及跟密码相关的业务功能服务。 考虑安全性,敏感数据需要统一安全存储,密码运算需要再HSM中完成,使用的密码算法支持商用密码算法。平台化也为了进行扩容。在整个系统的复杂度上会比电商类系统会简单一些。

开发团队研发人力紧张,有C/C++、JAVA开发人员。在此基础上进行选型。

 

正儿八经的API 网关是微服务架构(Microservices Architecture)标准化服务的模式。API 网关统一服务入口,可方便实现对平台众多服务接口进行管控,对访问服务的身份认证、防报文重放与防数据篡改、功能调用的业务鉴权、响应数据的脱敏、流量与并发控制,甚至基于 API 调用的计量或者计费等等。

现今主流的API网关有:

公有云方案:

Amazon API Gateway、阿里云API网关和腾讯云API网关

Netflix Zuul

Zuul 是 Netflix 出品的一个基于 JVM 路由和服务端的负载均衡器。它的主要功能有:认证、压力测试、金丝雀测试、动态路由、负载削减、安全、静态响应处理和主动/主动交换管理。spring Zuul 是 spring Cloud 的组件,可以和 spring cloud 的各个组件结合使用。

Kong

Kong 由Mashape公司开源,同时也有商业版本,是一个在 Nginx 中运行的Lua应用程序,并且可以通过lua-nginx模块实现,Kong不是用这个模块编译Nginx,而是与 OpenResty 一起发布,OpenResty已经包含了 lua-nginx-module, OpenResty 不是 Nginx 的分支,而是一组扩展其功能的模块。

它的核心是实现数据库抽象,路由和插件管理,插件可以存在于单独的代码库中,并且可以在几行代码中注入到请求生命周期的任何位置。

Traefik

Traefik 是一个现代 HTTP 反向代理和负载均衡器,可以轻松部署微服务,Traeffik 可以与您现有的组件(Docker、Swarm,Kubernetes,Marathon,Consul,Etcd,…)集成,并自动动态配置。

Ambassador

Ambassador 是一个开源的微服务 API 网关,建立在 Envoy 代理之上,为用户的多个团队快速发布,监控和更新提供支持,支持处理 Kubernetes ingress controller 和负载均衡等功能,可以与 Istio 无缝集成。

Tyk

Tyk 是一个开放源码的 API 网关,它是快速、可扩展和现代的。Tyk 支持配额和速度限制,支持认证和数据分析,支持多用户多组织,提供了一个 API 管理平台,其中包括 API 网关、API 分析、开发人员门户和 API 管理面板。Tyk 是一个基于 Go 实现的网关服务。

 

主要是在 Kong 和 Zuul 之间做比较和选择。

Zuul 可以很好的与微服务框架 Spring boot 整合,并且采用 JAVA 语言。


Kong 是云原生的,不限平台,是基于 ngnix+lua 的,原来在Nginx有一定的储备人员,lua/luajit学习成本还好,openresty学习难度大点,此外商用密码算法的改造原先在C/C++有积累。

因此,选择了 Kong 作为 API 网关选型。

 

下图 参考了 https://blog.csdn.net/squirrelanimal0922/article/details/88946900  的综合比较

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值