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

Привет ребят. Такой вопрос. Хочу сделать балансировку по websocket соединению.

Видел много примеров, но там обычная связь, когда есть несколько вебсокет серверов и нагрузка от клиентов распределяется по ним. У меня обратная схема, есть один вебсокет сервер и много инстансов моего приложения-клиента. Может ли haproxy, nginx обработать такой кейс и распределять сообщения от сервера к множеству клиентов подключённых к нему? Если да, то как такое гуглить?

10 ответов

10 просмотров

типа сообщение не всем доставлять? Клиент подключился но получает не все сообщения адресованные ему?

Konstantinx
Да. Именно так

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

Konstantinx- Автор вопроса
Vladimir Chernyshev
Думаю это только на уровне приложения можно решать...

ну я на этом и остановился. Но витают мысли что это можно сделать готовым решением

Konstantinx
ну я на этом и остановился. Но витают мысли что эт...

Может кто-то и реализовал но звучит странно и логику с трудом представляю. Дропать случайно 90% пакетов к клиенту от сервера если клиентов 10?

Konstantinx- Автор вопроса
Vladimir Chernyshev
Может кто-то и реализовал но звучит странно и логи...

Дело в том что, сообщение обрабатывается клиентом и даёт нагрузку. Одно сообщение несколько раз обрабатывать нельзя. То есть нужно делить один поток на несколько инстансов. По идее конечно промежуточный софт нужен.

Konstantinx
Дело в том что, сообщение обрабатывается клиентом ...

может нужен другой транспорт? amqp например? Можно сделать адаптер ws->amqp как клиент ws и паблишер amqp

Konstantinx- Автор вопроса
Vladimir Chernyshev
может нужен другой транспорт? amqp например? Можн...

Думал об этом. Но что если этот адаптер упадёт или машина с ним умрёт? Если запускать несколько адаптеров то нужно как-то обеспечить уникальность сообщений в очереди. Ну это решаемо. Хотя в целом решение обьёмным становится, так как ещё одно приложение и броке сообщений. Спасибо)

Konstantinx
Думал об этом. Но что если этот адаптер упадёт или...

Erlang в помошь. Единственное решение по брокеру сообщений рабочее - отсюда RabbitMQ

Konstantinx- Автор вопроса
NM
Erlang в помошь. Единственное решение по брокеру с...

На эрланге можно отказоустойчивый адаптер написать?

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

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

Типа вызывать GetParent и проверять на соответствие GetModuleHandle?
The Bird of Hermes
67
Do any of you guys have interesting projects one could join? I'm a Middle Full-Stack developer (JS/TS, React & Node)
Lev Shapiro
40
$res = json_decode($наша строка из респонса); $res1 = array_map(fn($o) => $o->name, $res->breadcrumbs[0]->entities); Как такое будет на Хаскеле?.. В начале весь джейсон, в ко...
Хаскель Моисеевич Гопник
27
В чем сила брат, в NASM или FASM?
Isaac Kleiner
18
Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
11
А чем вам питонисты не угодили?😂
.
79
Хтось використовував Vapor на Windows?
Jaroshevskii
15
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
Тут кста кто-нибудь NeoVim использует?
Simple Sorcerer
13
Какое виндузовое сообщение приходит TTabSheet, что риэлайняться контролы на нем, даже у которых парент другой? Ситуация: открываю форму - кнопок нет, перелистываю на другой т...
Катерина Свиридова
7
Карта сайта