
adil
08.10.2018
22:45:00
тут появляется следующий вопрос. как пинговать

Viktor
08.10.2018
22:45:06
по умолчанию он ждет 300 секунд
\
потом рвет

Google

adil
08.10.2018
22:45:37
хм

Viktor
08.10.2018
22:45:56

adil
08.10.2018
22:46:00
как то можно его сократить мб?

Viktor
08.10.2018
22:46:10
да думаю можно безусловно

adil
08.10.2018
22:46:45
отлично кажется это то что надо!
спасибо
буду гуглить

Viktor
08.10.2018
22:47:00
рад, если поможет)
есть две опции TCP keepalive для сетевого взаимодействия и SOCKET keepalive для взаимодействия через unix-сокет.
полагаю, нужно первое

$continue$
08.10.2018
22:48:25
Приветствую. Как правильно заставить работать href с своим http server?

Nikolay
08.10.2018
22:48:49
он будет убивать неактивные
ну а ваще, тебе сокетов что-ли жалко? :))

Google

Viktor
08.10.2018
22:49:24
idle timeout - это время простоя?

Nikolay
08.10.2018
22:50:03
Да, была настройка, точно помню, кури доку :)

adil
08.10.2018
22:50:06
да дело в том что у меня задача такая) надо чтобы при отключении ноды, другая нода взяла на себя задачу рассылки
не хочу в подробности но как то так

Nikolay
08.10.2018
22:50:14

Viktor
08.10.2018
22:50:37
довольно интересная задача)

adil
08.10.2018
22:50:49
вы че в теме задачи?

Nikolay
08.10.2018
22:50:51
Ну я делал N воркеров, и они по кругу из очереди брали команды

adil
08.10.2018
22:51:00
и я не первый такой?

Viktor
08.10.2018
22:51:03
я нет) я никогда не пользовался им)
просто принцип понимаю

Nikolay
08.10.2018
22:51:29
Работало как часы. Нода сдохла -- перестала брать таски из очереди, и всё

Viktor
08.10.2018
22:51:48
звучит логично

adil
08.10.2018
22:53:23
Ну я делал N воркеров, и они по кругу из очереди брали команды
ну в общем да смысл такой что есть нода и я могу запустить кучу ее инстансов но при этом одна должна быть дережором. и при условии что одна упала и именно упала а не завершилась с событием функцию дережора другая (рандомная) должна перехватить
я не думаю что я нашел какое то супер крутое решение мозг уже немного кипит
поэтому хочу просто отслеживать коннекты и если "мастер нода" отвалилась назначать мастером следующую по списку

Viktor
08.10.2018
22:54:00
если позволишь критику, мне кажется, что это немного неправильно
я объясню

adil
08.10.2018
22:54:10
давай

Viktor
08.10.2018
22:54:31
в этой схеме есть редис и несколько нод приложения, так?

adil
08.10.2018
22:54:42
да

Google

Nikolay
08.10.2018
22:56:41
Оркестрация сервисов вообще задача не особо тривиальная :)

Viktor
08.10.2018
22:56:46
если ввести определение "мастер-ноды" приложения, то логически из этого следует, что побочные ноды должны каким-то образом получать сигнал о ее падении (на это нужен алгоритм)
во-вторых, какая-то из следующих должна взять на себя задачу (вопрос "какая?" - это еще один алгоритм)

Nikolay
08.10.2018
22:57:02
Всегда будет единая точка отказа (в моей системе это был балансировочный гейт)
Ну либо несколько гейтов запускать на разных портах, тогда надежность повышается.

Viktor
08.10.2018
22:57:36
проще всего, если при отношении 1:N (1 редис - N клиентов) будут работать одинаково все N нод-приложения, как описал Николай
таким образом исключается иерахрия
и система работает вне зависимости от падения одного узла
N-1 нод остаются в работе

adil
08.10.2018
22:59:22
так ну в принципе я пока не нахожу противоречий с моим решением
объясни лучше сразу где я делаю дичь

Viktor
08.10.2018
22:59:35
если так, то замечательно
где - я не знаю) я чисто абстрактно описал свое видение

Viktor
08.10.2018
23:00:10
как если бы это был любой клиент-серверный стек
но технически я понимаю, что нужен балансировщик
автоматически определяющий, в какой нод пушить
из доступных

adil
08.10.2018
23:01:23
ладно вы уже загялдываете дальше моей компетенции я не такой прошаренный еще

Nikolay
08.10.2018
23:01:24
Нода сама берет себе таски из очереди.
А пушатся они в очередь в редисе кем угодно и когда угодно.

Google

Viktor
08.10.2018
23:01:45
то есть там что-то вроде шины?
ааа
я понял

Nikolay
08.10.2018
23:01:55
Получается максимально развязанная система.

Viktor
08.10.2018
23:01:57
все, спасибо, буду знать

Nikolay
08.10.2018
23:02:01
Так редис и есть шина по сути :)

adil
08.10.2018
23:02:03
да блин!

Admin
ERROR: S client not available

Viktor
08.10.2018
23:04:03
в общем, советую погуглить по архитектуре этой
такое явно делается часто, и решение должно быть простое
возможно вот это наведет на мысли
https://github.com/smrchy/rsmq

adil
08.10.2018
23:10:26
блин, ребят спасибо вам. реально столько годых советов, реально неожидал

Viktor
08.10.2018
23:10:34
вот так я себе представляю
то есть шина, из которой берут, сколько смогут проглотить, ноды
на картинке показано (как я это понимаю), что nodeA вполне себе справляется сама с очередью и берет из нее
со смертью nodeA в дело включается nodeB
на деле же я думаю, что все будет работать еще эффективнее, к примеру nodeA, nodeB будут поочередно брать из очереди (пока первая взяла и отправляет, вторая берет следующее)
но требуемое условие отказоустойчивости сохраняется в обоих случаях

adil
08.10.2018
23:16:17
я рад что я не подкачал) на самом деле мне тоже понравилась эта задача.
она мне не показалась простой. но она офигенная

Google

Viktor
08.10.2018
23:17:41
:) я думаю, все будет работать как часы
сам люблю серверные технологии, хотя ушел из них на пару лет во фронтенд
а еще приятно видеть вдохновленного человека

Nikolay
08.10.2018
23:21:58
https://redis.io/commands/brpoplpush

adil
08.10.2018
23:23:51

Nikolay
08.10.2018
23:23:57
Я вот эту команду юзал, чтобы атомарно перекладывать таски из списка pending в список processing
Ты же, надеюсь, ioredis юзаешь в качестве клиента?

adil
08.10.2018
23:27:16
блин похожу нет(
вот это https://github.com/noderedis/node_redis
мне надо срочно перекатиться на ioredis?

Nikolay
08.10.2018
23:27:47

adil
08.10.2018
23:28:02
а ну так я промисифицирую

Nikolay
08.10.2018
23:28:06
Да. Коллбеки для мазохистов.

adil
08.10.2018
23:28:07
и пишу ак удобнее

Nikolay
08.10.2018
23:28:15
Ну а смысл, если есть уже либа

adil
08.10.2018
23:28:40
ну да согласен выглядит как говно, и колбеки и куча promisify
спасибо за совет

Nikolay
08.10.2018
23:31:35
Ох бляяяя, открыл код воркера трёхлетней давности
Ох сука