在PHP Web应用程序中,并发和负载平衡是由服务器还是应用程序本身完成的?
如果我们在纯PHP(不使用框架)中编写应用程序,它将处理并发和负载平衡?
例如: -
网站有10件待售,
但是1000名顾客试图同时购买它,
会发生什么
如果我们使用PHP框架(cakePHP,Codeignator),它是否会在我们的应用程序中添加其他代码?
其他的事情是我们不想担心并发性,做错误处理和让休息来做服务器或者我们必须考虑在我们的应用程序中进行并发处理。
答案 0 :(得分:2)
负载平衡通常由服务器框架处理。 PHP本身不会为您执行任何负载平衡。如果您的网站无法同时处理1000个客户,则您的网站将无法使用。
答案 1 :(得分:2)
不,PHP不会为您进行任何负载平衡。并发是一个意图问题。没有处理并发性这样的事情。这是一个问题,当两个并发请求进入时你想要发生什么.PHP是建立在每个请求模型上的。这意味着每个单独的请求都由PHP并行处理。所以PHP并不关心你有多个并发请求同时进入。它们是分开处理的。
负载平衡通常由单独的负载平衡软件(如Varnish或Pound)处理。并发通常由外部流和服务器处理,这些流和服务器管理您希望通过特定要求控制的各种数据,例如数据库,像memcached或reddis这样的键/值存储,或类似的作业管理器/队列Gearman或zmq,或您的邮件服务器。这些都是PHP定期与之通信的所有内容,通常负责涉及用户与基于Web的应用程序交互的各种任务。 PHP本身只是一个非常薄的中间人,它允许您编写脚本并控制所有这些交互的工作方式。