2013-03-08 96 views
6

尝试横向扩展作为Python-RQ的任务服务器的Redis实例。使用Python横向扩展或分割Python-RQ或Redis

据我所知,最好的方法是将分片逻辑(最可能使用Consistent Hashing)添加到定制的ConnectionPool和/或Connection类中。我宁愿为Consistent Hashing机制使用一个库 - 因为它似乎应该可用,并且最有可能比本地生成的解决方案更好/更经过战斗测试。

什么是一个很好的模式来做这样的事情?有什么我应该看看的图书馆?有什么我想念我应该考虑?

非常感谢!

回答

2

我想你应该记住几件事情。

第一个问题是关于你的瓶颈在哪里,以及为什么你应该在一个Python-Rq范例下为你的Redis后端提供分区架构方式。我认为让Redis拥有足够的人才能相信你的员工数量和你想在给定时间处理的工作数量。

你可以说:我应该等待多少次才能处理这个工作?如果你能弄清楚这个值,那么等待时间。您将拥有在您的架构中添加/删除更多节点的关键。顺便说一下,如果您正在寻找使用一致散列解决方案来改进您的基础架构,那么在新节点被删除或添加后,您必须考虑再平衡键背后的问题。

例如,一个当前工作人员可能会连接到错误的redis服务器,以执行一个已存在的工作,因为在新工作启动之后和结束之前添加或删除了新服务器。

+0

是的,我认为这是需要考虑的重要问题。但是,我不认为它回答了我的问题:我如何允许应用程序通过RQ进行横向缩放?我应该遵循什么技术来做到这一点? – 2013-03-11 17:07:31

+0

但是您想要扩展到您的应用程序中的哪个资源? – pfreixes 2013-03-11 19:12:49