基于Dynomite的分布式延迟队列
最近看了Dyno-queues分布式延迟队列的源码,发现了一些不错的技巧,而本文是对Dyno-queues架构精华的总结。
本文是根据 https://medium.com/netflix-techblog/distributed-delay-queues-based-on-dynomite-6b31eca37fbc 翻译而来,如果有不准之处请大家多包含。
在Netflix的平台上运行着许多的业务流程,这些流程的任务是通过异步编排进行驱动,现在我们要实现一个分布式延迟队列,这个延迟队列具有如下特点:
- 分布式
- 不用外部的锁机制
- 高并发
- 至少一次语义交付
- 不遵循严格的FIFO
- 延迟队列(消息在将来某个时间之前不会从队列中取出)
- 优先级
一、使用Dynomite和Redis构建队列
Dynomite是一种通用的实现,可以与许多不同的key-value存储引擎