У меня есть требование внедрить службу генерации последовательности, так что она запускает несколько экземпляров этой службы в n числе центров обработки данных (vm или baremetal machines). Ниже приведены правила для службы независимо от того, какого экземпляра службы вызываются (от любого из центров обработки данных):Использование Spring Cloud для реализации глобальной блокировки
- Всех последовательности должны быть уникальными
- Порядковый номер не может быть пропущен (т.е. не может генерировать 2 до 1 и т. Д.)
- Если экземпляр службы не работает (или полный центр обработки данных), другие должны иметь возможность обрабатывать запросы и соответствовать двум предыдущим правилам.
- Должен быть способен обслуживать не менее 200 000 последовательностей в день.
Я думал о множестве разных решений, но в основном это сводится к какому-либо распределенному сервисному блокированию. Весеннее облако утверждает, что имеет какой-то «глобальный замок», однако я не вижу никакого реального примера описания или реализации. Я открыт для любого другого решения (кроме Apache Zookeeper).
Я играл с идеей запуска каждой службы за RabbitMQ и позволяя каждой службе уведомлять других о том, когда она работает, но это не кажется очень эффективным.
Спасибо ... Я проверю их –