170 похожих чатов

Всем привет, возник такой вопрос: как два экземпляра микросервиса делят

одну БД? Каждый экземпляр должен пойти в базу, взять строку, произвести действия и положить новую строку в соседнюю таблицу. Как два экземпляра синхронизировать между собой, чтобы они работали параллельно, но не выполняли одновременно работу над одной и той же строкой? Гуглением и размышлением, мне приходит в голову только отдельный микросервис отвечающий за взаимодействие с БД, но решение такое себе... Может есть лучше?

5 ответов

7 просмотров

Раздавайте задачи сервисам.

select for update, и skip locked

Denis-Nesterenko Автор вопроса
Zver
Раздавайте задачи сервисам.

Ну тобиш появляется второй сервис, контролящий работу экземпляров первого сервиса с БД. Как вариант, конечно, но гляжу в сторону блокировок пока, как нативный механизм.

Daniel Podolsky
select for update, и skip locked

Лучше юзать xact_lock он позволяет очень быстро получать параллельно данные. Я писал на нем запросы для получения анкет клиентов и куча операторов долбила БД дай строку, никто без данных не уходил если конечно список контактов не кончился

Похожие вопросы

Обсуждают сегодня

кому не сложно распишите пожалуйста для какой цели тут вот эти скобки и в них пихается указатель?
Михаил Helper
15
Комрады, посоветуйте, куда копать? Стал прикручивать кастомизацию тем. В OnShow главной главной формы пытаюсь загрузить из файла настроек и применить тему (на скрине, как долж...
Ed Doc
13
Такс, блин, таки кто-то знает, каким образом работают макросы stdin/stdout/stderr? Я влез в stdio.h, там определения нет, отладил через асмокод - вызывается функция со странны...
The Bird of Hermes
18
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
OnShow один раз вызывается? или возможен Hide?
Iluha Companets
14
Если у меня есть такой класс: Object = {} function Object:new(a_name, a_transform, a_color, a_mesh, a_material, a_shader, a_textures) local private = {} private.n...
Cuarno Vile
4
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Всем привет, на линуксе лучше на fasm или nasm учиться писать для начала ?
meszjol
14
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
зачем же переименовывать ? чтобы кол-во участников возросло или вдруг IBM от этого снова на свифте начнет кодить ? Я не понимаю что страшного в том что свифт гавно, если это т...
Oleh Nerzh
10
Карта сайта