В общем я написал вебсокет сервер и возникла следующая делема.
Вебсокет держит открытым коннекшин и база данных вроде как под него открывает коннекшин. В базе у меня ограничение 100 открытых коннекшинов.
Походу как разрешить эту фигню если я хочу побольше вебсокетов? На первый взгляд приходит только решение поставить сообщения из вебсокетов в очередь стандартная модель producers/consumers.
В общем мож кто делал?
Websocket server и database pool connection?
-
- Уже с Приветом
- Posts: 34164
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Websocket server и database pool connection?
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 18906
- Joined: 30 Aug 2001 09:01
- Location: 3rd planet
Re: Websocket server и database pool connection?
Не очень понятно, почему каждый вебсокет должен иметь свой собственный коннекшн к базе.
Начать можно с очереди (когда все вебсокеты шарят один и тот же коннекшн к базе), когда это станет затыкаться - сделать pool из 100 коннектов к базе, и для нового вебсокета брать свободный коннекшн к базе из этого пула.
Начать можно с очереди (когда все вебсокеты шарят один и тот же коннекшн к базе), когда это станет затыкаться - сделать pool из 100 коннектов к базе, и для нового вебсокета брать свободный коннекшн к базе из этого пула.
Тупизна как Энтропия. Неумолимо растет.
-
- Уже с Приветом
- Posts: 34164
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Websocket server и database pool connection?
Спасибо логика ясна.Boriskin wrote:Не очень понятно, почему каждый вебсокет должен иметь свой собственный коннекшн к базе.
Начать можно с очереди (когда все вебсокеты шарят один и тот же коннекшн к базе), когда это станет затыкаться - сделать pool из 100 коннектов к базе, и для нового вебсокета брать свободный коннекшн к базе из этого пула.
В Java когда я открываю сервер енд поинт @ServerEndpoint походу открывает отдельный поток и коннекшин там не шарится толком. Городить огород с синхронизацией я не хочу. Просто заранее хочется подумать над решением если сделать сервер высокой нагрузки.
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 18906
- Joined: 30 Aug 2001 09:01
- Location: 3rd planet
Re: Websocket server и database pool connection?
А какая нагрузка понимается под высокой? 100, 1000, 10к в секунду?
Тонкая настройка и тюнинг на пределе возможностей железа/софта - тема интересная, но обычно раскладываемая по стандартным полкам: затыкается база - расширяем/меняем/фармим базу; сервак физически не выдерживает нагрузку - мильтиплицируем сервак и втыкаем перед ним load balancer и так далее.
Тонкая настройка и тюнинг на пределе возможностей железа/софта - тема интересная, но обычно раскладываемая по стандартным полкам: затыкается база - расширяем/меняем/фармим базу; сервак физически не выдерживает нагрузку - мильтиплицируем сервак и втыкаем перед ним load balancer и так далее.
Тупизна как Энтропия. Неумолимо растет.
-
- Уже с Приветом
- Posts: 34164
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Websocket server и database pool connection?
Я пока не решил, но если еще потащить и видиосигнал то должно интересно получитсяBoriskin wrote:А какая нагрузка понимается под высокой? 100, 1000, 10к в секунду?
Тонкая настройка и тюнинг на пределе возможностей железа/софта - тема интересная, но обычно раскладываемая по стандартным полкам: затыкается база - расширяем/меняем/фармим базу; сервак физически не выдерживает нагрузку - мильтиплицируем сервак и втыкаем перед ним load balancer и так далее.
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 4827
- Joined: 15 May 2001 09:01
Re: Websocket server и database pool connection?
Сервер на одного клиента должен тратить меньше своих ресурсов, чем клиент. Это один из принципов устойчивой работы сервера. Нарушение его открывает дырку для атак DoS.
Предложенное решение этот принцип не соблюдает.Соединение к базе в общем случае - это много больше ресурсов, чем http-соединение. Тут логично буферить данные для базы на сервере - и вставлять их в базу одной транзакцией по получении серии целиком.
Да, если записывать надо не структурированные данные, а BLOBы - подумайте: может Вам нужен молоток, а не микроскоп реляционная база данных?
Предложенное решение этот принцип не соблюдает.Соединение к базе в общем случае - это много больше ресурсов, чем http-соединение. Тут логично буферить данные для базы на сервере - и вставлять их в базу одной транзакцией по получении серии целиком.
Да, если записывать надо не структурированные данные, а BLOBы - подумайте: может Вам нужен молоток, а не микроскоп реляционная база данных?
-
- Уже с Приветом
- Posts: 34164
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Websocket server и database pool connection?
Кормилец, спасибо огромное я еще за Велосираптор не расплатился. На самом деле реляционная база просто под руку попалась и для моделиврования она как бы даже получше выглядит чем та же Кассандра тем более в нашем облаке пока Кассандра не планируется. Так что Постгрес это вынужденное решение на сегодняшний день. Видео стриминг я походу если буду делать то в БЛОБ стор типо А3, но это я даже пока еще не придумал нужно ли это вообще.helg wrote:Сервер на одного клиента должен тратить меньше своих ресурсов, чем клиент. Это один из принципов устойчивой работы сервера. Нарушение его открывает дырку для атак DoS.
Предложенное решение этот принцип не соблюдает.Соединение к базе в общем случае - это много больше ресурсов, чем http-соединение. Тут логично буферить данные для базы на сервере - и вставлять их в базу одной транзакцией по получении серии целиком.
Да, если записывать надо не структурированные данные, а BLOBы - подумайте: может Вам нужен молоток, а не микроскоп реляционная база данных?
Про серии там походу само ляжет если выдергивать из очереди все что в очереди есть честно деля очередь на количество консьюмеров. С учетом того что я стал большим фанатом кеша на Редисе вцелом сервак должен заработать в реальном времени очень убедительно.
Завтра буду искать библиотеки трехмерной интерполяции для моделей.
Если у кого есть ссылки под рукой для явы киньте в топик.
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 514
- Joined: 07 Dec 2001 10:01
- Location: toronto
Re: Websocket server и database pool connection?
Помнится, когда надо было сделать примерно то же самое, у нас просто взяли готовый код с Photon server и приладили это хозяйство куда-то в облако. Ну или можно их готовой инфраструктурой пользоваться, за какую-то там копеечку.Sergunka wrote: Завтра буду искать библиотеки трехмерной интерполяции для моделей.
Но вообще если разговор ведётся о трёхмерной интерполяции (что это такое конкретно?) о размещении на сервере "тяжёлых" задач, то это может влететь в серьёзную копеечку. Я бы сначала перерыл все возможности проделывать это на клиенте.
Потому что имею очень забавный опыт по поводу серьёзного рендеринга на сервере и выдачей результатов клиентам.