标题: 用php和mySQL建的网站,能承受每小时5000-8000次的请求吗?
时间: 2023-02-16发布,2023-02-19修改
『回复列表(13|隐藏机器人聊天)』
Workerman(webman)+Serverless,按次收费。我给你估算一下
8000次
每小时按照30ms/1000*8000=240vcpu
1元=166*60=9960vcpu
240vcpu*24*30天=172800vcpu
综上所述17元在serverless上每个月的费用
为什么推荐workerman因为平均带数据库查询业务在20-40ms,而Thinkphp 等fpm 在100ms起步
@张小强,这个问题的答案取决于许多因素,例如网站的规模、服务器的性能、数据库的设计和优化等等。因此,我无法给出一个精确的答案。不过,以下是一些可能影响网站能否承受每小时 5000-8000 次请求的因素:
服务器性能:如果您的服务器配置足够强大,包括足够的处理器和内存,那么您的网站可能可以承受更多的请求。此外,如果您使用负载均衡或集群,您的网站可能会更具扩展性和可靠性。
数据库设计和优化:如果您的数据库设计得很好,并进行了适当的优化,例如正确的索引和查询优化,那么您的网站可以更快地响应请求。此外,缓存机制和数据分片等技术可以显著提高数据库的性能。
网站代码质量:如果您的 PHP 代码质量良好,遵循最佳实践并进行了适当的优化,例如避免重复查询和使用缓存,那么您的网站可以更快地响应请求。此外,使用 CDN 和缓存机制等技术可以降低服务器负载和响应时间。
总之,能否承受每小时 5000-8000 次请求取决于许多因素,包括服务器性能、数据库设计和优化、网站代码质量等等。如果您希望确保您的网站能够承受高流量,请考虑优化这些方面,并进行压力测试以确定您的网站的极限。
@张小强,您可以使用 JavaScript 中的 fetch
和 async/await
来处理这个问题。以下是一个示例代码,可以将一个包含 380 条数据的数组,每次提交 50 条,直到所有数据提交完成之后再执行一个方法:
// 定义一个包含 380 条数据的数组
const dataArray = [...Array(380).keys()];
// 定义一个提交数据的函数
async function submitData(data) {
const apiUrl = 'https://example.com/submitData';
const response = await fetch(apiUrl, {
method: 'POST',
body: JSON.stringify(data),
headers: {
'Content-Type': 'application/json'
}
});
const result = await response.json();
return result;
}
// 定义一个方法,用于提交所有数据完成后的处理
function afterSubmitAllData() {
console.log('All data submitted!');
}
// 定义一个异步函数,用于每次提交 50 条数据
async function submitDataBatch() {
// 从 dataArray 中取出前 50 条数据
const dataBatch = dataArray.splice(0, 50);
if (dataBatch.length === 0) {
// 如果 dataArray 中的所有数据都已提交完成,则执行 afterSubmitAllData 方法
afterSubmitAllData();
return;
}
// 提交这 50 条数据,并等待结果
const result = await submitData(dataBatch);
// 递归调用 submitDataBatch 函数,以提交下一批数据
await submitDataBatch();
}
// 开始提交数据
submitDataBatch();
在这个示例中,我们首先定义了一个包含 380 条数据的数组 dataArray
。然后,我们定义了一个提交数据的函数 submitData
,它使用 fetch
发送一个 POST 请求来提交数据。在每次提交数据时,我们将发送一个包含 50 条数据的批次。如果已经提交完所有数据,则执行一个方法 afterSubmitAllData
。
接着,我们定义了一个异步函数 submitDataBatch
,用于每次提交 50 条数据。在函数中,我们首先从 dataArray
中取出前 50 条数据,如果 dataArray
中的所有数据都已经提交完成,则执行 afterSubmitAllData
方法。然后,我们使用 submitData
函数来提交这 50 条数据,并等待结果。最后,我们递归调用 submitDataBatch
函数,以提交下一批数据。
最后,我们调用 submitDataBatch
函数,以开始提交数据。这个函数会递归调用自己,直到 dataArray
中的所有数据都已经提交完成。