Видел много примеров, но там обычная связь, когда есть несколько вебсокет серверов и нагрузка от клиентов распределяется по ним. У меня обратная схема, есть один вебсокет сервер и много инстансов моего приложения-клиента. Может ли haproxy, nginx обработать такой кейс и распределять сообщения от сервера к множеству клиентов подключённых к нему? Если да, то как такое гуглить?
типа сообщение не всем доставлять? Клиент подключился но получает не все сообщения адресованные ему?
Думаю это только на уровне приложения можно решать. Обычно соединение устанавливается один раз индивидуально и приложение шлет фрейм конкретному клиенту
ну я на этом и остановился. Но витают мысли что это можно сделать готовым решением
Может кто-то и реализовал но звучит странно и логику с трудом представляю. Дропать случайно 90% пакетов к клиенту от сервера если клиентов 10?
Дело в том что, сообщение обрабатывается клиентом и даёт нагрузку. Одно сообщение несколько раз обрабатывать нельзя. То есть нужно делить один поток на несколько инстансов. По идее конечно промежуточный софт нужен.
может нужен другой транспорт? amqp например? Можно сделать адаптер ws->amqp как клиент ws и паблишер amqp
Думал об этом. Но что если этот адаптер упадёт или машина с ним умрёт? Если запускать несколько адаптеров то нужно как-то обеспечить уникальность сообщений в очереди. Ну это решаемо. Хотя в целом решение обьёмным становится, так как ещё одно приложение и броке сообщений. Спасибо)
Erlang в помошь. Единственное решение по брокеру сообщений рабочее - отсюда RabbitMQ
На эрланге можно отказоустойчивый адаптер написать?
Обсуждают сегодня