66

何千もの UDP 接続 (約 100,000 セッション) をサポートする必要がある新しいサーバーを設計しています。どちらを使用するかについての意見や提案はありますか?

4

3 に答える 3

46

答えは、Linux を使用している場合は epoll、FreeBSD または Mac OS X を使用している場合は kqueue、Windows を使用している場合は i/o 完了ポートです。

あなたが(ほぼ確実に)調査したいいくつかの追加事項は次のとおりです。

  • 負荷分散技術
  • マルチスレッドネットワーキング
  • データベースのアーキテクチャ
  • 完全なハッシュ テーブル

さらに、TCP とは対照的に、UDP には「接続」がないことに注意することが重要です。また、ネットワークベースのソリューションのデバッグは困難な場合があるため、小規模から始めて大規模にスケールすることも最善の方法です。

于 2010-11-05T21:58:06.123 に答える
18

Linux: epoll FreeBSD: kqueue Windows: ??

これを抽象化できる libevent や libev などのラッパー ライブラリがあります。

于 2010-10-28T04:48:44.400 に答える