我正在使用PHP的Web服务访问MSSQL数据库,并且有一些关于处理大量请求的问题。
我实际上并不知道是什么构成了“高流量”,我不知道我的服务是否会遇到“高流量”,但这方面的优化很大程度上归功于服务器处理速度和数据库访问速度?
目前,当请求发送到服务器时,我会执行以下操作:
无论如何,我可以在多个请求中“缓存”此数据库连接吗?只要同时处理每个请求,数据库就会保持有效。
我可以存储用户会话ID并限制特定会话中每小时的请求数量吗?
如何创建'虚拟'客户端以向Web服务器发送请求?我想我可以只是垃圾邮件发送请求在for循环或什么?更好的方法?
感谢您的任何建议
答案 0 :(得分:1)
您永远不知道什么时候出现高流量。您的搜索引擎排名,博客撰写您的网络服务帖子或任何其他不可预测的随机事件可能会导致高流量。你最好准备自己扩大规模。通过向上扩展,我并不主要意味着增加更多处理能力,而是首先优化代码。常见的性能问题是:
当然你可以缓存。您确实应该缓存只读数据,这些数据在每次请求时都不会更改。有一个有用的blogpost on PHP caching techniques。您可能还需要考虑所选框架的缓存包或使用独立的php缓存库。
您可以限制服务使用,但我不建议通过会话ID,IP地址等来执行此操作。更新这些很容易,然后您的保护失败。如果您有经过身份验证的用户,那么您可以像Google一样限制每个帐户的请求(对每个用户使用所有公开服务使用API密钥)
要进行HTTP加载和性能测试,您可能需要考虑像Siege这样的工具,它正是您所期望的。
我希望能回答你所有的问题。