Size: a a a

2021 June 27

СА

Сергей Аксёнов... in ctodailychat
А вам точно нужен именно ws? Какие допуски по потерям данных (кажется, что очень большие?) Я бы на UDP такую штуку сделал. Скорее всего 3-4 хорошо оттюненных сервера справятся.
источник

M

Magistr in ctodailychat
ну и логичный вопрос а что за бизнес кейс там за сложением кучи этих чисел стоит
источник

AS

Alexey Shcherbak in ctodailychat
Сорри за задержку, семейный ужин был
Сейчас ориентируемся на обработку в течении 250мс, т.е. чтобы четко по расписанию 4 раза в секунду агрегированное число улетало оператору. в моем понимании можно что-то терять, но хотелось бы как можно более честно измерять показатели и изменение числа 4 раза в секунду.
источник

A

Artur in ctodailychat
мне тоже нравится идея с udp. смущает только, что это примерно 10м пакетов в секунду на сервер
источник

AS

Alexey Shcherbak in ctodailychat
если упрощать - у нас 4 бакета, в каждый льются свои числа, каждый бакет размером 250мс. чем меньше задержка между окончанием бакета и отправкой усредненного числа оператору - тем лучше, в идеале - не длиннее самого бакета.
источник

SC

Steve Chatbot in ctodailychat
Попробуй на акке будет оч быстро
источник

AS

Alexey Shcherbak in ctodailychat
там уже много всего вокруг ws сделано, в том числе - клиенты и отдельный backchannel управления. так что сложно будет поменять на лету технологию. ну и сами клиенты держат соединение, так что мы можем посчитать самих клиентов, поштучно\по когортам
источник

AS

Alexey Shcherbak in ctodailychat
уже эликсир с акторами, проблема не в быстродействии на стороне обработки а в объемах открытых соединений. Что акка даст принципиально другого ? расширит количество открытых tcp сокетов на лоад-балансере ?
источник

SC

Steve Chatbot in ctodailychat
Ну ты можешь тогда нгинксом проксировать
источник

SC

Steve Chatbot in ctodailychat
Просто пакеты в какую нибудь очередь
источник

SC

Steve Chatbot in ctodailychat
Вообще 250мс это дофига времени
источник

СА

Сергей Аксёнов... in ctodailychat
То есть у вас уже есть система, которая держит 10м открытых сокетов? Или вы хотите её масштабировать до 10м?
источник

AS

Alexey Shcherbak in ctodailychat
хотим масштабировать
источник

AS

Alexey Shcherbak in ctodailychat
у нас есть функциональный прототип с кучей всего, который надо отмасштабировать. есть решение в лоб - 200 инстансов и просто машем кредиткой, но хочется быть умнее
источник

AS

Alexey Shcherbak in ctodailychat
в моем понимании проксировать - особо погоды не делает, мне хотелось бы понять - умеет тот же nginx взять пакеты из очереди и вместо 100500 фреймов вебсокетов, просумировать значения, разделить на 100500 и отправить 1 пакет.
источник

AS

Alexey Shcherbak in ctodailychat
и делать так - каждые 250мс.
источник

AS

Alexey Shcherbak in ctodailychat
т.е. прокси с "компрессией" фреймов
источник

SC

Steve Chatbot in ctodailychat
Ты можешь из nginx пакеты просто слать в кафку а там уже процессить все
источник

SC

Steve Chatbot in ctodailychat
Или в mqtt какой нибудь
источник

SC

Steve Chatbot in ctodailychat
Ещё можно в редис но нужно будет думать про шардинг на всякий случай
источник