【发布时间】:2017-05-07 08:11:58
【问题描述】:
我确定我需要使用 API 网关,但我无法理解我的用例场景中不同工具之间的主要区别。
目前,我有多个通过 REST API 相互通信的服务(数据库、移动应用程序、Web 应用程序和一些其他系统。假设有 15 种不同的服务)。这很难管理和测试,因此我想将架构更改为更像 Netflix 使用 Zuul 所做的那样。
理想情况下,服务不知道其他服务。它们向特定端点(API 网关)发送请求。然后,API 网关与必要的服务交互并发送回响应。 这是一个实践示例:服务向自定义(端点)连接器发送请求,请求被解析,分解成更小的请求,这些请求被发送到其他服务(拥有所请求的特定内容),将内容重新放入响应,收集所有响应,使用收集的所有内容创建最终响应,将响应发送回发送请求的第一个服务。
我需要高可用性、可扩展性、容错性、在一个地方监控和测试所有服务的能力、进行金丝雀测试的能力、轻松添加新服务和管理旧服务的能力。我看重开源软件和成熟软件。应该跑出前提。
我认为可以解决我的问题的最佳解决方案是:WSO2、Apigee、Zuul 和 Amazon API Gateway。我不知道哪个更适合我的用例。我看过其他人,但我没有发现与这 4 个相比在功能或成本方面有任何优势。
感谢您就这些技术的优缺点提供反馈!也欢迎其他建议!
注意事项: 并非我的所有服务都在 AWS 上,但有些是。 系统需要处理每分钟数万个请求的峰值,这些请求经常发生,但绝不会持续发生。
【问题讨论】:
标签: web-services rest api soa microservices