Poco SocketReactor Масштабируемость - PullRequest
2 голосов
/ 18 мая 2010

Я написал прокси-сервер для Linux с использованием Poco, но с тех пор изучал различные подходы к достижению масштабируемости сервера TCP / IP. Мне понадобится сервер для обработки постоянных соединений (не HTTP-трафика) с верхним пределом около 250 одновременных соединений. Каждое соединение обычно использует около 5-10 Кбит / с, и решающее значение имеет максимальная задержка при обработке трафика.

В нынешнем виде я использую Poco SocketReactor, который использует модель Reactor с вызовом select (), однако у меня было прочтение проблемы C10K, а также несколько других ресурсов, и кажется, что использование этого подхода может не быть лучшей идеей Я считаю, что в библиотеках Poco есть тестовая реализация, которая использует poll (), так что это может быть вариантом для улучшения ситуации.

Есть ли у кого-нибудь опыт использования Poco SocketReactor, и знаете ли вы, насколько хорошо он может масштабироваться для моего сценария? Если это не будет хорошо масштабироваться, предложения по альтернативам будут оценены.

1 Ответ

0 голосов
/ 25 февраля 2013

В Windows Poco использует select (), однако в Linux / BSD / OSX он будет использовать наилучшую возможную реализацию из:

  • select ()
  • poll ()
  • epoll ()
  • / dev / poll
...