13

何万ものクライアントを同時に処理することを目的としたサーバーアプリケーションをC++で作成しようとしています。WindowsとLinuxで実行する必要があります。私はフレームワークとライブラリを探していて、Boost Asioに出くわしました。これは、非常に成熟していて広く使用されている代替手段のようです。主に何百万ものテンプレートが原因で、ストランド/スレッドプールに頭を巻くのに苦労しています。私のバックグラウンドは主にCであるため、Boostが一般的にいっぱいになっているように見えるテンプレートの混乱にはあまり慣れていません。ストランドやバインドなどを使用してスレッド化/同期化の側面を処理するBoostAsioの周りに比較的薄いラッパーを開発する人を見つけようとしましたが、私の予算内でそれを実行できる人をまだ見つけることができませんでした(2または300米ドル)。

Boost Asio(たとえば、WindowsのIOCPやLinuxのepollなど)と同様に拡張可能な他のライブラリ、またはより小さなフリーランスの仕事を探している熟練したBoost開発者を見つけることができるソースをお勧めしますか?

助けてくれてありがとう。

敬具、

フィリップ・ベネフォール

4

4 に答える 4

11

私が知っているベスト4の選択肢

私はzeromqが本当に好きです..しかしlibuvは面白そうです..(libevとlibeventもとてもいいです)

于 2011-07-15T15:48:15.373 に答える
4

ACEはあなたが探しているフレームワークです。Boost Asioでさえ、DouglasC.Schmidtによって導入されたProactorパターンの単なる実装です。彼はPOSAVol.2の作者であり、ACEフレームワークの作成者として最もよく知られています。

Boost.Asioライブラリは、Proactorデザインパターン[POSA2]に基づいて、同期操作と非同期操作を並べてサポートします。

クロスプラットフォームのC++ネットワークフレームワークであり、テンプレートを使用しますが、単純なテンプレートのみが使用されます。(またはまったくない)

私のバックグラウンドも主にCで、Boostの大規模なテンプレートプログラミングスタイルは好きではありません。しかし、ACEはそのようではありませんでした。

于 2011-07-22T18:33:49.690 に答える
3

サイズについてはlibeventを試してください。その全体的な存在理由は、C10K問題に対処することです。おそらくブーストよりも軽量だと思います。

于 2011-07-15T00:18:23.483 に答える
0

PulsarServerFrameworkをお試しください。主な利点は、イベントループに基づく非同期I / Oを使用するlibuvネットワークライブラリ(node.jsで使用)上に構築されていることです。

  1. 完全にスケーラブルです。ユーザーベースが増えるにつれて、サーバーを追加するだけで済みます。

  2. サーバーファームで動作するように設計されています。

  3. 高度に構成可能で使いやすい

現在、Windowsx64サーバー用に構築されています。

于 2018-07-04T06:33:55.660 に答える