Масштабируемая структура сервера в С++

Я хочу написать серверное приложение на С++, предназначенное для обработки десятков тысяч клиентов одновременно. Он должен работать под Windows и Linux. Я искал рамки и библиотеки и столкнулся с Boost Asio, который кажется очень зрелой и широко используемой альтернативой. Мне просто неприятно обертывать голову вокруг нитей/потоков, главным образом из-за миллионов шаблонов. Мой фон в основном в C, поэтому на самом деле я не привык к шаблону беспорядка, что Boost в целом, похоже, полон. Я попытался найти кого-то, кто разработал относительно тонкую обертку вокруг Boost Asio, которая позаботится о аспекте нитей/синхронизации, используя пряди, связывание и т.п., Но не смогла найти кого-то еще, кто может сделать это в моем бюджете (2 или 300 долларов США).

Может ли кто-нибудь из вас рекомендовать любые другие библиотеки, которые масштабируются, а также Boost Asio (например, с IOCP на Windows и epoll на Linux и т.д.) или источник, где я могу найти опытных разработчиков Boost, которые ищут более мелкие вакансии?

Большое спасибо за любую помощь.

С уважением,

Филипп Беннефолл

Ответ 2

Попробуйте libevent для размера. Весь смысл этой проблемы заключается в решении проблемы C10K. Я бы сказал, что это, вероятно, более легкий, чем импульс.

Ответ 3

ACE - это структура, которую вы ищете. Даже повышение Asio - это всего лишь реализация шаблона Proactor, который был представлен Дугласом Шмидтом. Он наиболее известен как автор POSA Vol.2 и создатель структуры ACE.

Библиотека Boost.Asio предлагает бок о бок поддержку синхронных и асинхронные операции... на основе шаблона проектирования Proactor [POSA2].

Хотя это межплатформенная сетевая среда С++ и использует шаблон, используется только простой шаблон. (или совсем нет)

Мой фон в основном в C тоже, и мне не нравится массив шаблонов шаблонов Boost. Однако ACE не был таким.