Size: a a a

Software Design/Architecture/Zen

2020 December 09

S

ShadoWalkeR in Software Design/Architecture/Zen
Ну я спрашиваю как лучше организовать - свою идею я выше изложил - через мариядб, реплика и там мьютексы складывать. Но надо же еще как то определять что вторая сторона померла и теперь резерв становится главным
источник

N

Nekt in Software Design/Architecture/Zen
а что мешает прямо в keydb мьютексы складывать? Зачем марию сюда тащить?
источник

N

Nekt in Software Design/Architecture/Zen
Если уж и тащить что - то нечто вроде консула, там и хелсчеки и мьютексы и вообще полный набор дискаверинга.
источник

S

ShadoWalkeR in Software Design/Architecture/Zen
Негарантированная доставка. Для данных это пойдет, а вот для работы самой системы уже врятли
источник

N

Nekt in Software Design/Architecture/Zen
ShadoWalkeR
Или они могут одновременно разгребать списки, но я так понимаю надо как то в рантайме чтобы они договаривались об этом, и мне кажется что это сложней
я бы посмотрел как работает LPOP в условиях мультимастера. Не исключено что он ртработает как надо и там вообще ничего не надо будет выдумывать
источник

S

ShadoWalkeR in Software Design/Architecture/Zen
Мне уже советовали зукипер, но я пока с трудом представляю как их уложить в текущую архитектуру
источник

N

Nekt in Software Design/Architecture/Zen
ShadoWalkeR
Мне уже советовали зукипер, но я пока с трудом представляю как их уложить в текущую архитектуру
для начала просто регистрировать сервисы и опредлять по нему кто главный, за счет этого обеспечивать монопольный доступ для произвольного количества обработчиков. Ну или просто мьютексы на его основе лепить
источник

S

ShadoWalkeR in Software Design/Architecture/Zen
Nekt
я бы посмотрел как работает LPOP в условиях мультимастера. Не исключено что он ртработает как надо и там вообще ничего не надо будет выдумывать
Ну если они оба сделают LPOP с одним и тем же элементом в очереди, то ничего страшного не произойдет - второй просто сгенерирует ошибку при попытке передать дальше. Но если между LPOP отработается удаление элемента на втором сервере, то произойдет двойной вызов операторов коллцентра, а это уже плохо
источник

S

ShadoWalkeR in Software Design/Architecture/Zen
А исходя из моего опыта то что можей пойти не так, точно пойдет по такому сценарию
источник

S

ShadoWalkeR in Software Design/Architecture/Zen
Nekt
для начала просто регистрировать сервисы и опредлять по нему кто главный, за счет этого обеспечивать монопольный доступ для произвольного количества обработчиков. Ну или просто мьютексы на его основе лепить
Это я и так знаю из теории. Я надеялся на более практические советы - кто как такую задачу решал
источник

N

Nekt in Software Design/Architecture/Zen
чаще всего такой демонец, который архитектурно может работать только в одном экземпляре, запускается в одном экземпляре и дело с концом. После первого инцедента пересматривается архитектура. Это чисто практика.
источник

S

ShadoWalkeR in Software Design/Architecture/Zen
Nekt
чаще всего такой демонец, который архитектурно может работать только в одном экземпляре, запускается в одном экземпляре и дело с концом. После первого инцедента пересматривается архитектура. Это чисто практика.
Ну у нас так сейчас и работает в другом месте. Там можно было архитектурно уйти от проблемы монопольного доступа. В данном же случае надо именно такое решение. И одна копия скрипта не вариант - потому что ручное переключение в случае аварий и тд, а я такое не люблю. Максимум автоматизации
источник

N

Nekt in Software Design/Architecture/Zen
самый чистый способ - делать lpop напрямую. И если мультимастер не может обеспечить атомарность этой операции - то нафиг такой мультимастер :)
источник

S

ShadoWalkeR in Software Design/Architecture/Zen
Ну я поэтому и не рассматриваю особо варианта с тем что они параллельно работают с базой keydb. А вот горячий резерв все же нужен
источник

N

Nekt in Software Design/Architecture/Zen
смысла нет в горячем резерве. Если чекать записи из keydb в mariadb - там, кстати, тоже мультимастер? :)
- то проще их в марию сразу и класть
источник

S

ShadoWalkeR in Software Design/Architecture/Zen
Под мою задачу подходит keydb. Мария - нет
источник

N

Nekt in Software Design/Architecture/Zen
Переслано от ShadoWalkeR
Ну я спрашиваю как лучше организовать - свою идею я выше изложил - через мариядб, реплика и там мьютексы складывать. Но надо же еще как то определять что вторая сторона померла и теперь резерв становится главным
источник

S

ShadoWalkeR in Software Design/Architecture/Zen
Имею в виду с теми данными которые в кейдб
источник

S

ShadoWalkeR in Software Design/Architecture/Zen
Заменить на марию не получится
источник

SA

Shukurdin Aidarov in Software Design/Architecture/Zen
Всем привет!
Подскажите, пожалуйста, как правильно организовать архитектуру пуш сервиса (high load)?
источник