Каждый региональный кластер имеет три узла Redis: один основной и две реплики чтения.
Моя служба также развернута в двух регионах: Регион-А и Регион-Б. Таким образом, по сути, я нахожусь в активной/активной настройке, когда оба региона получают трафик.
Регион-A и Регион-B потребляют сообщения, которые реплицируются между регионами, а это означает, что я получаю дубликаты.
Службы должны быть идемпотентными, поэтому я использую Redis в качестве механизма распределенной блокировки.
Вопрос:
Java redison lib предоставляет два API для блокировки чего-либо в Redis:
- getLock -> tryLock
- getBucket -> setIfAbsent
В чем разница? Безопасно ли использовать вариант 2 в моем случае?
Подробнее здесь: https://stackoverflow.com/questions/797 ... erformance
Мобильная версия