Jer*_*ris 5 javascript php load-balancing file-upload round-robin
我们使用多个服务器来处理以循环方式进行负载平衡的传入Web请求.我遇到了一个我不确定如何解决的问题.
使用AJAX(qqFileUploader),我正在上传文件.默认情况下它会进入/ tmp文件夹,这很好.问题是当我尝试检索该文件时,检索请求由下一个没有我上传文件的服务器处理.如果我继续一遍又一遍重复的请求时,它最终将达到其中存储文件的原始服务器(通过轮循负载平衡),然后我就可以打开它.显然这不是一个好的解决方案.
这里基本上是代码:http://jsfiddle.net/Ap27Z/.为简洁起见,我删除了一些.您将看到上传器对象调用PHP文件来执行文件上载,然后在文件上载完成后,对脚本进行另一个AJAX调用以处理.csv文件.这是循环过程中丢失的过程.
我在这里阅读了一些关于将文件上传到内存的SO的问题,似乎它基本上不可行.我可以使用另一个选项上传文件并在同一请求中处理所有文件吗?
此类问题的典型解决方案是在负载均衡器上使用粘性会话.这可能不是一个很好的解决方案,因为它会修改整个设置来解决一个小问题.
我建议为每台机器添加一个子域前缀,例如上传到www.example.com,然后为每个服务器分配一个额外的子域www1.example.com,www2.example.com,它们总是直接传递给该服务器,而不是循环DNS.
作为成功结果的一部分,您可以传回指向确切服务器的服务器名称,而不是负载平衡名称,然后引用上载数据的所有后续Ajax调用都使用该服务器特定域名,而不是通用负载均衡域名.
我可以使用另一个选项上传文件并在同一请求中处理所有文件吗?
当然,为什么不呢?处理数据POST的代码可以做任何你想做的事情.
| 归档时间: |
|
| 查看次数: |
548 次 |
| 最近记录: |