4

ネイティブCソケットAPIはaccept()、特定のリモートソケットにバインドされている新しいソケット記述子を返します。スレッドを作成し、ソケットを渡してポイントツーポイントを確立できるので、それは良いことです。インターネットを介したスレッド間接続の方が優れています。そして、それがまさに私が望んでいることです。クライアントからの1つのスレッドを、サーバー上の宛先スレッドに接続する必要があります。したがって、非同期操作でさえも、ワーカープールや負荷分散は必要ありません。サーバースレッドは履歴を保存します。ZeroMQは素晴らしいように見えますが、私が理解している限り、受け入れ時にソケットを分割しません。

ZerMQとのこのような同期スレッド間接続を確立する方法はありますか?

4

2 に答える 2

5

特定のソリューション(ソケットをスレッドに渡す)をより広範な問題(スケーラブルなサーバーを作成する方法)に複製する方法を求めています。

「ソケットごとに1つのスレッド」の設計は、HTTPなどの要求/応答である1つのパターンでのみ機能します。一方、非常に大量のユースケースは、データ配布(パブリッシュ/サブスクライブ)またはタスク配布(パイプライン)です。どちらも1対1のモデルには適合しません。

新しいツールを学習して「このツールは私の古いツールと同じように機能する」と尋ねるのはよくあるエラーですが、そのような良い結果は得られません。代わりに、時間をかけて実際にツールがどのように機能するかを学び、その知識を使用して問題とその最善の解決策を再考してください。

于 2012-11-25T06:59:10.033 に答える
0

Zmqがこのマルチ接続を処理すると思いました。スレッドコールバック関数内で接続を処理することにより、スレッド間の通信を作成することを好みます。これは、メインのzmq接続が別のスレッドで作成されることを意味します。これにより、スレッド内で個別の接続制御を行うことができます。

于 2012-11-23T20:02:12.707 に答える