@JSlang

Страница 2191 из 2237
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
и это пипец как напрягает
да пусть висят. если прям напрягают, снизь idle timeout в редисе для клиентов

он будет убивать неактивные

ну а ваще, тебе сокетов что-ли жалко? :))

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

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

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

не хочу в подробности но как то так

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
Почитай еще, как сделать блокирующую очередь с нодой и редисом.
Редис вообще я так понял очень мощная штука) я знал конечно что это не только key value

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
блин похожу нет( вот это https://github.com/noderedis/node_redis
Меняй. Там то же самое, только с промисами.

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
Ох бляяяя, открыл код воркера трёхлетней давности

Ох сука



Страница 2191 из 2237