Django webserver 自动故障转移设计

问题描述

我正在尝试构建一个结合 Celery 的 Django 后端系统。这个想法是 Celery 每 5 分钟处理一个包含 500 多个网站的列表。由于它涉及大量网络操作,可能需要花费任何时间,而且我们有 5 分钟的时间限制,因此我们计划让多个 Django 网络服务器并行运行,每个服务器处理一定数量的网站。

这个想法是每个 Django Web 服务器将处理(500+ 网站列表)/(运行的 Django 网站实例总数),这样我们就可以分配工作量,如果有人宕机,其他人可以接管.

我创建了一个心跳休息 API,其他 Django 网络服务器将使用它来检查其他服务器的状态,但我如何使其具有可扩展性?

我想要的是每个网络服务器会自动检测有多少其他服务器正在运行,然后相应地处理列表,例如,如果有 5 个网络服务器在运行,那么每个服务器将只处理 100 个网站,第一个服务器将处理第一个 1-100,然后第二个将处理下一个 101-200,第三个将处理 201-300,等等,所有这些都将并行完成,因此整个任务会在 5 分钟内完成。此外,如果其中一个出现故障,那么现在每个都处理 125 个网站。我该如何设计这样的系统?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)