Distributed Lock kullanmak için şu teknolojileri sarmalayan küçük kod örnekler burada.
Curator + Zookeeper
Cassandra
Hazelcast
JPA
JPA için Pessimistic Lock kullanılabilir
MySQL
Bu yazıya bakabilirsiniz
Zookeeper
Zookeeper ve etcd örneği burada
Redis
Ayrıca bazı Redis kütüphaneleri Distributed Lock imkanı sunuyor. Açıklaması şöyle.
The most common way to ensure that there is only one process using a resource is to use a Distributed Lock.There are several mechanisms you can use, here are some:- AWS DynamoDB Lock Client- Azure Blob Lease operation- ZooKeeper Lock- Redis Redlock- Database based lock such as PotgreSQL Advisory Lock
- Jedis kullanıyorsak Jedis.setnx metodu yazısına bakabilirsiniz. Burada tek Redis sunucusu kullanılıyor
- Lettuce kullanıyorsak Redlock algoritması kullanılabilir. Burada fault-tolerance ve consensus için çok Redis sunucusu kullanılıyor
Redlock İçin Uyarı
Redlock kullanırken kilit belirli bir süre için alınıyor. Bu süre içinde kilit bırakılmazsa bir başkası olabilir ve Lost Update probleminin bir benzeri olabilir. Şeklen şöyle
SchedLock
ShedLock yazısına bakabilirsiniz. ShedLock kütüphanesi, distributed lock için veri tabanını kullanıyor.
Hiç yorum yok:
Yorum Gönder