Django中的并发加载处理

7 django load-balancing nginx task-queue

我正在使用Django进行新的Web项目.它基本上是Quora克隆.可以说我在它下面有一个问题和Upvote按钮.如果大约8-9k的人同时点击那个Upvote按钮(同一个问题),我该如何处理呢?我使用Nginx作为前端服务器而Apache作为后端服务器?我应该用什么来处理这么多的负载?

Tip*_*eth 4

答案取决于您如何存储投票。在担心网络服务器上的负载之前,您必须确保没有出现竞争条件。

如果您不这样做,一个简单的提升可以是缓存提交到键值存储(例如Redis)的投票,或者如果您有标准化数据库,则更好地将其用作聚合器。

另一种选择是使用 Celery 的异步任务对投票进行排队。