如果 rabbitmq 不能用作锁定服务,那么什么可以呢?
If rabbitmq can't be used as a locking service, then what can?
两个主要问题是:
- 对网络分区没有弹性
- 无法应对网络故障
这篇文章说了为什么它可以用作锁定服务:https://www.rabbitmq.com/blog/2014/02/19/distributed-semaphores-with-rabbitmq/
这篇文章更深入地解释了为什么由于上面列出的问题它不能作为一个使用:https://aphyr.com/posts/315-jepsen-rabbitmq
所以回顾一下,如果 rabbitmq 不能用作锁定服务,那还有什么可以呢?
尝试:
- 动物园管理员
https://dzone.com/articles/distributed-lock-using
- Hashicorp 领事
https://www.consul.io/docs/guides/semaphore.html
- Azure Blob 具有可以使用的租赁功能
https://docs.microsoft.com/en-us/azure/architecture/patterns/leader-election
- 等
- 任何关系数据库。通过正确使用行锁来保证对行的线性化写入,您可以创建分布式锁。
肯定还有很多。
两个主要问题是:
- 对网络分区没有弹性
- 无法应对网络故障
这篇文章说了为什么它可以用作锁定服务:https://www.rabbitmq.com/blog/2014/02/19/distributed-semaphores-with-rabbitmq/
这篇文章更深入地解释了为什么由于上面列出的问题它不能作为一个使用:https://aphyr.com/posts/315-jepsen-rabbitmq
所以回顾一下,如果 rabbitmq 不能用作锁定服务,那还有什么可以呢?
尝试:
- 动物园管理员 https://dzone.com/articles/distributed-lock-using
- Hashicorp 领事 https://www.consul.io/docs/guides/semaphore.html
- Azure Blob 具有可以使用的租赁功能 https://docs.microsoft.com/en-us/azure/architecture/patterns/leader-election
- 等
- 任何关系数据库。通过正确使用行锁来保证对行的线性化写入,您可以创建分布式锁。
肯定还有很多。