可扩展/负责任的第三方API轮询

时间:2018-01-18 17:35:43

标签: architecture scalability polling

我维护一个应用程序,它充当暴露API的社交媒体网站的包装器。我的应用程序跟踪每个用户发布的特定帖子,并报告每个帖子的最新活动。

我目前正在研究应用程序的重构,并希望添加实时更新功能(即,如果用户离开页面,它将在适用时更新跟踪帖子的新更改)。但是,我不确定做这样的事情的最佳做法。

像SignalR或其他websocket框架一样,从我的后端到我的前端代码获取数据会很棒,但第三方API只暴露了一堆REST端点。据推测,我的后端因此会定期轮询第三方API以获取每个帖子的数据。

无论我如何考虑实现这一点,但由于我的用户数量(以及跟踪帖子的数量)增长,特别是在我对第三方资源的使用方面,它似乎相当不可扩展。 (当用户首先加载应用程序时,我偶尔会不得不限制我的请求。)

是否有最佳实践可扩展/负责任的方式以平衡资源使用和用户体验的方式检索此类远程静态数据?

1 个答案:

答案 0 :(得分:0)

你还没有提到你喜欢使用的堆栈,所以我必须回答这个问题。

如果您要集成的系统仅支持REST接口,则确实需要进行轮询。然而,为了使其可扩展,我将从提供实时更新的过程中分离数据检索。那么两个主要组成部分是:

  • 轮询REST Web服务并更新数据存储
  • 使用实时引擎从数据存储区发送数据

您正在检索的数据的性质,您需要/打算对数据执行的操作以及您的目标平台是什么,都将决定适当的堆栈。检索数据的解决方案可能与您从数据存储区发送数据的设计完全不同。