質問

マルチユーザーオンラインゲームプロジェクト向けのこれらのテクノロジースイート..プロジェクト要件:1。いつでも2K-5Kユーザーを処理できます。 2. iPhoneおよびAndroid用のクライアントライブラリ(ネイティブ、JavaScriptなし)。 3. Microsoft Windowsのクライアントライブラリ(最も重要)、Mac OS XおよびLinuxの場合もあります。 4.特にMOD開発のための優れたドキュメント5.プロジェクトはオープンソースではありません。したがって、適切なライセンスを持つライブラリのみを使用できます。

ErlangとJavaでもプログラムできます。プログラミング言語は問題ではありません。

私は、Openfire、Tigase、Ejabberd、Rabbitmqなどのサーバーテクノロジーをフォローしていました。すべて私のプロジェクトには良いですが、私のニーズ、AMQP、またはXMPPにどんなスイートについてもっと知りたいと思います。

リアルタイムのオンラインゲームに特別に提供するAMQP。 XMPPよりも優れたオプションですか?

役に立ちましたか?

解決

Linden Labs(Second Life)の人々は、読むべき多くのメッセージングシステムを徹底的に比較しました。

http://wiki.secondlife.com/wiki/message_queue_evaluation_notes

価値のあることについては、プロジェクトでZeromQを使用していますが、ユースケースに応じてブローカーノードが必要ないため、本当に興味深いです。

他のヒント

XMPPとAMQPの重要な違いは、バイナリコンテンツです。 AMQPはバイナリデータを正常に処理し、XMPPはXML向けに設計されているようです。個人的にはオンラインゲームでは、メッセージのフォーマットと解析にGoogleプロトコルバッファーを使用し、非常に小さなバイナリフットプリントを使用して、AMQPを使用してそれらのメッセージを配信する傾向があります。

ただし、どのAMQPサーバーを使用したいかを検討してください。過去にAMQPサーバーにRabbitMQを使用して噛まれました。 Rabbitmqには、フロー制御機能がまったくありません。そのため、クライアントがサーバーを消費できるよりも速くメッセージを送信している場合、サーバー上のバッファーがいっぱいになり、サーバーを爆破できます。 Rabbitmqのより最近のバージョンは非常に粗い方法でフロー制御を実装しています:彼らは停止します すべて メモリが解消されるまで、システム内の消費者。

Zeromqを試したことはありません。おそらく、私がrabbitmqを使用してきたものの方が良いでしょう...

5Kユーザーは自分の動作についてあまり教えてくれませんが、すべてが同じ10秒のウィンドウ内で1つのリクエストを提出した場合、毎秒500〜1000のリクエストを検討するとしましょう。

比較的低いラップトップでアクティブ/MQを実行していましたが、1秒あたり300のリクエストを簡単に処理しているので、ここで喜んでお勧めします。ブローカーのクラスターをセットアップして、水平方向のスケーラビリティを実現することもできます。 HTTPプロトコル(STOMP)またはそのネイティブバイナリプロトコルを使用できます。 C/C ++、Java、JavaScriptなどのクライアントAPIライブラリもたくさんあります。最初のものがあります AMQPサポート.

あなたは永続的な要件については言及しませんでしたが、私は再び私はほとんどのRDBMSSで十分だと思っていたでしょう。とはいえ、ドキュメント指向のビッグテーブルタイプのデータベースの一部は、水平方向のスケーリングの観点から面白く見えます。

また、Apache Camelは非常にパフォーマンスが高いことがわかりました。強くお勧めします。キャメルは、ロジックレイヤーを実装するために使用されます。

'これが役立つことを願っています。

XMPPはテキストゲームで使用できます。 http://gamerunes.com

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top