|
トピックとキューの最大の違いは、トピックがブロードキャストの形で、すべてのオンラインリスニングクライアントに新しいメッセージが届いたことを通知し、監視されていないクライアントはメッセージを受け取らないことです。 一方、キューは複数のリスニングクライアントのいずれかにピアツーピア方式で通知します。
2 トピックメソッドとキューメソッド間のメッセージ処理効率の比較 リスニングクライアントの同時実行数を増やすことで、リスニングクライアントの同時実行数の増加によってトピックのメッセージプッシュが大幅に減少するかどうかを確認します。 測定された結果から、1人のサブスクライバーと100人のサブスクライバーを前提にトピックメソッドで送信されるメッセージの送受信効率に有意な差はありませんが、500人のサブスクライバー(スレッド)の同時実行を前提とすると効率差は明らかです(500スレッドの同時実行により、私のマシンのCPU使用率は70〜90%に達しているため、ローカルテストによるパフォーマンスボトルネックなのか、トピックメッセージ送信方式のパフォーマンスボトルネックなのか確認できません)。 その結果、効率が大幅に低下します。 1人のサブスクライバーと100人のサブスクライバーの前提下では、トピックメソッドとキューモードで送信されるメッセージの送受信効率に有意な差はありませんが、500人の加入者同時進行を前提とすると、トピックモードの効率はキューよりも有意に劣ります。 キュー方式で送信されるメッセージの送受信効率は、1人の加入者、100人の加入者、500人の加入者という前提下でも大きく変わりません。 トピック測定データ:
| 送信者が送信したメッセージの総数
| すべての加入者が受信したメッセージの総数
| メッセージの送受信にかかる平均時間
| シングルサブスクライバー
| 100
| 100
| 101ms
| 100人の加入者
| 100
| 10000
| 103ms
| 500人の加入者
| 100
| 50000
| 14162ms
|
キュー測定データ:
| 送信者が送信したメッセージの総数
| すべての加入者が受信したメッセージの総数
| メッセージの送受信にかかる平均時間
| シングルサブスクライバー
| 100
| 100
| 96ms
| 100人の加入者
| 100
| 100
| 96ms
| 500人の加入者
| 100
| 100
| 100ms
|
|