Я разрабатываю новый сервер, который должен поддерживать тысячи UDP-соединений (где-то около 100 000 сеансов). Любой ввод или предложения, по которым можно использовать?
Выберите vs poll vs epoll
Ответ 1
Автор CURL написал замечательную статью о опросе vs выбрать библиотеки событий.
Ответ 2
Ответ: epoll, если вы используете Linux, kqueue, если вы используете FreeBSD или Mac OS X, и порты завершения ввода/вывода, если вы находитесь в Windows.
Некоторые дополнительные вещи, которые вы (почти наверняка) хотите исследовать, следующие:
- Методы балансировки нагрузки
- Многопоточная сеть
- Архитектура базы данных
- Идеальные хеш-таблицы
Кроме того, важно отметить, что UDP не имеет "соединений", а не TCP. Было бы также в ваших интересах начать небольшие и масштабные масштабы, поскольку отладка сетевых решений может быть сложной задачей.
Ответ 3
Linux: epoll
FreeBSD: kqueue
Windows:??
Существуют библиотеки-обертки, такие как libevent и libev, которые могут абстрагировать это для вас.