【问题标题】:Double way API?双向API?
【发布时间】:2019-07-22 15:30:33
【问题描述】:

目前,我所有的客户都在同一个数据库、同一个域等...在我位于 https://www.mystartup.com 的宏伟巨石上。

假设我想为一位大客户部署我的 rails 应用实例。假设我将来可能会部署此 Rails 应用程序的其他实例。

问题是我正在获取和计算一些繁重的数据,我想只做一次,而不是在所有实例中。所以我想我应该在https://secret-api.mystartup.com 中执行它们,并且每个实例都应该使用秘密访问令牌向它发出请求。

但我的问题是这个:https://secret-api.mystartup.com 有没有办法在需要时触发对每个域的一些调用?这就是我们所说的“webhook”吗?还是我缺少一些双向 api 概念?

【问题讨论】:

  • 是的,从 API 到其一个或多个客户端应用程序的请求将被视为 webhook。
  • 查看ResqueSidekiq 等工具。除了提供异步处理外,它们还可以保证作业只处理一次。

标签: api web-services service architecture microservices


【解决方案1】:

您需要回答的一个问题是,如果需要重新启动这个 secret-api 服务器怎么办!你失去了所有繁重的计算..

上述解决方案的另一个问题是它在某种程度上违背了微服务架构..因为您只有一个用于秘密 API 的服务器..如果出现故障怎么办?然后你的整个系统就会崩溃......使用微服务;为了获得高可用性,您应该始终为同一个 api 提供多个服务器。

对于这样的场景;当有繁重的工作要做时,一种解决方案可能是在 memcached 或 redis 之类的东西之间有一个内存层。将您的解决方案保存在这个内存服务器中,而不是保存在您的 secret-api 服务器内维护的缓存中.. 此解决方案将解决上述两个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 2019-09-10
    • 2011-10-28
    相关资源
    最近更新 更多