Я использую функцию ниже для генерации UUID
UUID.randomUUID().toString()
На производстве у нас есть серверы 50+ (сервер приложений - каждый является собственной JVM), и для запросов, которые попадают на эти серверы, в качестве первого шага мы генерируем UUID, который по существу уникально идентифицирует транзакцию.
Мы наблюдаем, что на Сервере 6 и Сервере 11 сгенерированные идентификаторы UUID соответствуют по меньшей мере для 10-15 сообщений в день, что странно, поскольку при нагрузке, т.е. около 1 миллиона транзакций в день, эти идентификаторы UUID дублируются в течение одного дня. очень странно
Это то, что мы сделали до сих пор
- Проверенные журналы приложений - мы не нашли ничего подозрительного, все журналы в порядке
- Попытался воспроизвести эту проблему в тестовой среде с аналогичной нагрузкой на производстве и с серверами 50+ - но в тестовой среде этого не произошло
- Проверил логику приложения - это, кажется, не проблема, потому что все остальные 48 серверов, кроме 6 и 11, которые имеют копию одной и той же базы кода, работают отлично, и они генерируют уникальные UUID для каждой транзакции.
До сих пор мы не смогли отследить проблему, мой вопрос в основном, если есть что-то на уровне JVM, которое мы пропускаем, или параметр UUID, который нам нужно установить для решения этой проблемы?