尝试横向扩展 Redis 实例作为Python-RQ
.
据我所知,最好的方法是将分片逻辑(很可能使用Consistent Hashing)添加到自定义ConnectionPool
和/或Connection
类中。我宁愿为一致性哈希机制使用一个库——因为它似乎应该是可用的,并且很可能比本土解决方案更好/更久经考验。
做这样的事情有什么好的模式?是否有一些我应该研究的图书馆?有什么我应该考虑的遗漏吗?
非常感谢!
尝试横向扩展 Redis 实例作为Python-RQ
.
据我所知,最好的方法是将分片逻辑(很可能使用Consistent Hashing)添加到自定义ConnectionPool
和/或Connection
类中。我宁愿为一致性哈希机制使用一个库——因为它似乎应该是可用的,并且很可能比本土解决方案更好/更久经考验。
做这样的事情有什么好的模式?是否有一些我应该研究的图书馆?有什么我应该考虑的遗漏吗?
非常感谢!
我想你应该有几件事要记住。
第一个是关于你的瓶颈在哪里以及为什么你应该在一个 Python-Rq 范式下在你的 Redis 后端提供分区架构方式。我认为 Redis 有足够的性能来相信引导瓶颈应该在于您的工人数量和您希望在给定时间处理的工作数量。
你可以说:我可以等多久才能处理这个工作?如果你能算出这个值,延迟。您将拥有在架构中添加/删除更多节点的关键。
顺便说一句,如果您正在寻找一些具有一致性哈希的分片解决方案来改进您的基础架构,那么当删除或添加新节点时,您必须考虑重新平衡密钥背后的问题。
例如,一个当前工作人员可能会为一个已经存在的作业连接到错误的 redis 服务器,因为在该新作业启动之后以及在此之前它已经结束之前,已经添加或删除了一个新服务器。