Соединение за сеанс или мультиплексирование нескольких сеансов через одно соединение - PullRequest
1 голос
/ 03 января 2012

При проектировании архитектуры клиент / сервер, есть ли преимущество в мультиплексировании нескольких соединений из одного процесса на удаленный сервер (т. Е. Совместное использование одного соединения) по сравнению с открытием одного соединения на поток / сеанс в клиенте (как это обычно делается, когда подключение к memcached или серверам баз данных.)

Я знаю, что с каждым соединением связаны некоторые издержки (например, если на сервере 50000 открытых соединений, которые занимают много оперативной памяти), это было одной из основных причин, по которым Facebook сделал UDP-патч для memcached. Но я не ожидаю, что где-нибудь рядом с этим числом. Может быть, не более 10000. Существует также экономия на установлении соединения tcp / ip и выполнении авторизации, но сейчас я бы предпочел оставить авторизацию для программного обеспечения брандмауэра, как это делает memcached.

Есть ли причины для реализации мультиплексирования соединений в клиент-серверном приложении tcp / ip с соединениями менее 10 КБ?

Редактировать - Подробности :

Это для сервера базы данных / клиента, над которым я работаю. Я думаю, что Informix и Oracle на самом деле допускают мультиплексирование сеансов через одно соединение TCP / IP. В документации Informix говорится, что вы можете получить улучшение производительности для многопоточных клиентов (без упоминания о многопоточных клиентах, возможно, это не поточно-ориентированная реализация).

1 Ответ

1 голос
/ 03 января 2012

есть ли преимущество в мультиплексировании нескольких соединений по сравнению с открытием одного соединения на поток / сеанс

Да, хотя это зависит от реализации симплекса. Вы, вероятно, знаете о проблемах с брандмауэром, например, FTP, SIP и др., Особенно когда шифрование используется частично. Это то, что влияет на решение, использовать ли несколько или только одно соединение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...