如何水平扩展或分片 Python-RQ 或用 Python 操作 Redis
1 个回答
4
我觉得你需要考虑几个方面。
首先,要搞清楚你的系统瓶颈在哪里,以及为什么在使用Python-Rq的情况下,Redis后端应该采用分区架构。我认为Redis的性能足够好,所以瓶颈应该出现在你的工作进程数量和你想要同时处理的任务数量上。
你可以问自己:我能等多久才能处理这个任务?如果你能算出这个时间,也就是延迟时间,你就能找到增加或减少架构中节点的关键。
顺便说一下,如果你想通过一些分片解决方案来改善你的基础设施,比如使用一致性哈希,你需要考虑在添加或删除新节点时,重新平衡键值可能带来的问题。
举个例子,当前的一个工作进程可能会连接到错误的Redis服务器,处理一个已经存在的任务,因为在这个新任务开始后、结束前,可能有新的服务器被添加或移除。