以Twitter为例,他们将twitter.com称为自己API的客户。这可能是推特“非常慢”的原因之一吗?
参考:http://engineering.twitter.com/2010/09/tech-behind-new-twittercom.html
您是否建议您为自己的主网站/应用程序使用自己的API?
如果使用自己的API没问题,有哪些方法可以避免性能问题?
答案 0 :(得分:2)
关于使用自己的API:这是关于权衡。在twitter示例中,通过使用自己的API,他们能够“为API团队分配更多资源”。这对他们的好处超过了性能损失。还有其他一些没有提到的好处,比如,第一个审核你的api并且只有一个统一的入口点进入系统。您发布的链接中也提到了一些缺点。
对于您的应用程序,您应该查看要实现的体系结构质量,并根据您给出的约束进行平衡并自行选择。如果超高性能是最重要的,那么制定您的解决方案以实现这一目标。
关于使用自己的API时的效果:再取决于它。在twitter案例中,他们知道他们将使用JavaScript访问API。所以物理跳跃是浏览器 - >服务器 - > D B。如果您正在进行客户端 - 服务器开发,则无法绕过这些跃点。在您发布的链接中,他们谈到了直接访问数据库。是的,会更快,但我不知道如何从一个JavaScript客户端做到这一点。我想如果他们已经将websockets用于自定义API,那么本来会更快,但需要花费多少开发成本。
摘要因此,并不是说他们使用的是自己的API,而是因为他们希望客户端成为HTTP跃点。 请注意,这些评论都没有谈论服务器 - > db调用看起来像或者他们的缓存策略,或者其他任何可能成为瓶颈的东西