Случайный () экземпляр в веб-ферме

Я запускаю приложение на нескольких веб-серверах, которые обмениваются данными с распределенным кластером кэширования в памяти, где я генерирую эксклюзивные идентификаторы блокировки на сервере приложений - проблема заключается в том, что при высокой степени параллелизма параллельного выполнения возможно, что более одного выполнение на всех серверах будет генерировать одно и то же значение псевдослучайной блокировки.

Идея заключалась бы в том, чтобы инициировать один экземпляр класса Random для каждого пула приложений, используя увеличивающееся начальное число в кластере распределенного кэширования, и повторно заполнять рандомизатор после того, как каждый вспомогательный метод для генерирования потокобезопасного случайного числа достигнет определенного числа вызовы.

Интересно посмотреть, какие у вас будут мысли по этому поводу.

1 ответ

Решение

Random это просто - СЛУЧАЙНО. Не гарантированно быть уникальным. Бросок кубика - пример случайного события, но вы можете получить тот же результат 6 из 6 раз.

GUID объекты (почти) гарантированно будут уникальными, поэтому просто используйте их.

Другие вопросы по тегам