Я пишу распределенную программу, которая должна управлять монопольным доступом к некоторым строкам базы данных.Ясно, что для этого случая существуют многочисленные методы, но мы пытаемся поцеловать их.Будет ли это когда-либо масштабироваться для пользователей?не знаю, но я хочу запланировать некоторую будущую пропускную способность.
Я не могу обязательно использовать классическую модель очереди PtP или PnS, потому что эта обработка будет сборкой разброса и, возможно, синхронной.Слои поверх классических моделей очереди было бы возможно, но я боюсь, что сложнее, чем необходимо.Можете ли вы порекомендовать одно из следующего, и зачем применять какой-либо элемент управления более низкого уровня?У меня есть одна БД и n узлов обработки.
- Опрос через
select for update
(или эквивалент) для записей БД.Есть некоторые, кто выражает беспокойство по поводу A) конфликта базы данных и B), что опрос все еще происходит. - Сетевая синхронизированная блокировка ресурса, постоянное соединение, ожидающее обработку уведомлений (обсуждающий push-стиль HTTP-сервера).Может быть сложнее, чем наложение поверх MQ?),
- Передача сообщений UDP (с TTL) одним диспетчером?
Есть ли плюсы / минусы или как вы реализовали то же самое впрошлые решения и были ли у вас те же проблемы на уровне синхронизации БД?