2016-10-30 49 views
0

我想用php和mysql技术来实现一个API,它可以处理每秒数千次的请求。如何使用php和mysql每秒处理数千个请求?

我以前没有做过这种API。如果您有经验的执行类似任务,请告诉我哪些步骤?

我该如何实现这样的API,每秒可以处理数千个请求?

如果您可以用示例代码解释,我会很高兴。

在此先感谢您的帮助。

+0

您应该使用PHP Laravel Framework构建您的网站,该平台专为大型项目设计,拥有数百万条数据库记录和更多用户。 –

回答

1

那么你需要考虑几个因素,如:

  1. 验证API。您的API应由经过授权和验证的有效用户调用

  2. 缓存API结果。你的API应该缓存API调用的结果。这将允许您的API更快速地处理请求,并且它将能够每秒处理更多请求。 Memcache可用于缓存API调用的结果

  3. API体系结构。与基于SOAP的API相比,RESTFul API具有更少的开销。基于SOAP的API可以更好地支持认证。它们也是RESTFul API更好的结构。

  4. API文档。你的API应该有很好的文档记录,并且易于用户理解。

  5. API范围。你的API应该有一个明确的范围。例如,它将通过互联网作为公共API使用,或者将其用作企业Intranet内的私有API。

  6. 设备支持。在设计你的API时,你应该记住那些会消耗你的API的设备。例如智能手机,桌面应用程序,基于浏览器的应用程序,服务器应用程序等。

  7. API输出格式。在设计你的API时,你应该记住输出的格式。例如,输出将包含与用户界面相关的数据或仅包含明文数据。一种流行的方法被称为关注点分离(https://en.wikipedia.org/wiki/Separation_of_concerns)。例如分离后端和前端逻辑。

  8. 速率限制和节流。您的API应实施速率限制和限制以防止过度使用和滥用API。

  9. API版本控制和向后兼容性。您的API应该仔细版本化。例如,如果您更新您的API,那么您的API的新版本应该支持旧版本的API客户端。您的API应继续支持旧API客户端,直到所有API客户端都已迁移到新版本的API。

  10. API定价和监测。应该监控API的使用情况,以便知道谁在使用您的API以及它的使用方式。您也可能向用户收取使用您的API的费用。

  11. 成功的指标。您还应该决定使用哪个指标来衡量API的成功。例如每秒API调用次数或来自API的监视收入。开发活动,如研究,文章发表,开源代码,参与在线论坛等,在确定API的成功时也可能会考虑。

  12. 估计涉及的成本。您还应该计算开发和部署API的成本。例如,需要多少时间才能生成可用的API版本。 API需要多少开发时间等等。

  13. 更新您的API。您还应该决定更新API的频率。例如应该多久添加一次新功能。您还应该记住API的向后兼容性,因此更新API不会对客户产生负面影响。

1

好的答案,我认为有一点要记住的是瓶颈在哪里。很多时候,瓶颈不是API服务器本身,而是持久层的数据访问模式。

想想你如何访问你的数据。为了发布新项目,很多时候处理可以被延迟并且被异步处理为原始请求。例如,如果调整图像大小或发送电子邮件,您可以集成RabmitMQ或SQS排队工作,稍后可由工作人员处理。队列在缓冲工作方面非常出色,所以如果服务器出现故障,那么这些东西就会排队等待重新上线处理。

在查询方面,理解索引的工作原理以及数据存储方式非常重要。有不同类型的索引,例如哈希表可以为您提供恒定的访问时间,但不能使用哈希表执行范围查询。最简单的是,如果你有简单的分散数据对象,可以通过标识符查询,这些标识符可以存储在索引中。如果数据比较复杂,需要进行繁重的连接或聚合,那么您可以查看以Redis或Memcache之类的方式存储的预先计算的值。

相关问题