3

以 Twitter 为例,他们说 twitter.com 是他们自己 API 的客户端。这可能是 Twitter 相当“慢”的原因之一吗?

参考:http ://engineering.twitter.com/2010/09/tech-behind-new-twittercom.html

你会推荐为你的主要网站/应用程序使用你自己的 API 吗?

如果使用自己的 API 是可以的,有什么方法可以避免性能问题?

4

1 回答 1

2

关于使用自己的 API:这是关于权衡的。在 twitter 示例中,通过使用他们自己的 API,他们能够“为 API 团队分配更多资源”。对他们来说,这种好处超过了对性能的影响。还有其他未提及的好处,例如,第一个审查您的 api 并在系统中拥有一个统一的入口点。您发布的链接中也提到了一些缺点。

对于您的应用程序,您应该查看您想要实现的架构质量,并与给定的约束平衡并做出自己的选择。如果超高性能是最重要的,那么请制定您的解决方案来实现该目标。

关于使用您自己的 API 时的性能:同样取决于。在 twitter 案例中,他们知道他们将使用 JavaScript 访问 API。所以物理跳转是Browser --> Server --> DB。如果您正在进行客户端-服务器开发,则无法绕过这些跃点。在您发布的链接中,他们谈到了直接访问数据库。是的,那会更快,但我不确定如何从 javascript 客户端执行此操作。我想如果他们将 websockets 用于自定义 API,那会更快,但开发成本是多少。

总结因此,并不是他们使用自己的 API 对性能造成了影响,而是他们希望客户端远离 HTTP 跃点。请注意,这些评论都没有谈论服务器 --> db 调用的样子或它们的缓存策略,或者其他十几个可能成为瓶颈的事情

于 2012-04-21T10:58:18.253 回答