Email or username:

Password:

Forgot your password?
Top-level
s1dul

@mudasobwa @3draven мне кажется, либо я не понимаю условий, либо задача шатает cap теорему.

Но даже если просто порассуждать, если соединений строго не больше одного, без даунтайма не обойтись. Но даунтайм можно сделать очень коротким.

Можно почитать про синглтон в акка. Там сложность вопроса координации раскрывается. Но соединение само по себе может оторваться и обеспечить даунтайм

7 comments
kurator88

@s1dul @mudasobwa @3draven мне кажется что на akka концептуально легче всего будет такое сделать, она вроде из коробки сама умеет в кластер и разные ноды. Правда akka на java очень коряво пишется, лучше на scala. На go вообще быстро в голову ничего не приходит.

Aleksei � Matiushkin

@kurator88

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

Меня интересовало архитектурное решение, и акка, к сожалению, решает кластерный синглтон очень плохо.

@s1dul @3draven

s1dul

@mudasobwa @kurator88 @3draven как делал бы я:
Завести легкрвесный контейнер в одном инстансе и рассчитывать, что рестартоваться будет за приемлемое время.

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

Aleksei � Matiushkin

@s1dul у меня BEAM, я могу без локфайла напрямую спросить, жив ли процесс, у соседней ноды.

Но часто-часто долбиться куда-либо — это за гранью, я лично разворачиваю PR не глядя, если там есть вызов sleep, хочется все-таки один раз получить входящее сообщение «теперь ты главный».

@kurator88 @3draven

Aleksei � Matiushkin

@s1dul я понимаю, что если выключится электричество во всех датацентрах, или норвежские строители опять переебут атлантический кабель экскаватором, как в 1997, все будет плохо.

Но мне надо хотя бы побороть простые рестарты контейнера, или внезапный отказ всего приложения на ноде с соединением.

Про синглтон в акка я читал, там все плохо.

@3draven

Go Up