Поиск шаблонов для создания пула соединений TCP для высокопроизводительного обмена сообщениями - PullRequest
3 голосов
/ 14 мая 2010

Я создаю новое клиент-серверное приложение на C # и ожидаю довольно высокую скорость соединений. Это заставило меня задуматься о пулах соединений с базой данных, которые помогают снизить затраты на создание и размещение соединений между клиентом и базой данных.

Я хотел бы создать аналогичную возможность для своего приложения и не смог найти хороших примеров того, как применить этот шаблон. Мне действительно нужно раскручивать экземпляр TcpClient каждый раз, когда я хочу отправить сообщение на сервер и получить сообщение о получении? Ожидается, что каждое соединение будет транспортировать от 1 до 5 КБ, при этом каждое из них будет получать ответное сообщение размером 1 КБ.

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

1 Ответ

0 голосов
/ 22 июня 2011

Представление пула соединений - это своего рода оптимизация. Преждевременная оптимизация может быть плохо.

Я бы порекомендовал вам начать разработку, не вводя пул соединений. Когда код клиента и сервера достаточно стабилен, вы можете создавать нагрузочные тесты и обнаруживать проблемы с производительностью.

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

Если данные от клиента отправляются не так часто, вам может даже не понадобиться пул соединений.

...