問題タブ [amqp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rabbitmq - AMQP/ZeroMQ/RabbitMQ を使用する理由
独自のライブラリを作成するのとは対照的です。
ここでは、自己分割サーバー プールとなるプロジェクトに取り組んでいます。1 つのセクションが重くなりすぎると、マネージャーはそれを分割し、別のプロセスとして別のマシンに配置します。また、これが影響を与えるすべての接続済みクライアントに、新しいサーバーに接続するように警告します。
サーバー間およびプロセス間通信に ZeroMQ を使用することに興味があります。私のパートナーは自分でロールすることを好みます。この質問に答えるコミュニティを探しています。
私自身かなり初心者のプログラマーで、メッセージング キューについて学んだばかりです。私がググって読んだように、誰もがあらゆる種類のメッセージキューを使用しているようですが、なぜですか? 独自のライブラリを作成するよりも優れている点は何ですか? なぜそれらはとても一般的で、なぜそんなにたくさんあるのですか?
php - 複数のコンシューマ 1 つのキュー
RabbitMQ で複数のコンシューマーが 1 つのキューを共有することは可能ですか? 現在、このphpライブラリを使用してRabbitMQを操作していますが、消費者スクリプトの2つの同一のインスタンスが実行されていますが、渡されたメッセージに応答するのは1つだけです...
python - セロリのチュートリアルに従おうとすると、RabbitMQは「アクセスが拒否されました。ユーザーのログインが拒否されました」というエラーが表示されます。
セロリのチュートリアルに従おうとしていますが、実行すると問題が発生しpython manage.py celerydます。RabbitMQサーバー(開発ボックスの仮想マシンにインストールされている)では、ユーザーがログインできません。
Django管理コンソールで次のように表示されます。
これはrabbit.log、RabbitMQサーバー上のファイルに表示されます。
ユーザー、権限、仮想ホストの情報を再確認しましたが、すべて一致しているようです。ヘルプのトラブルシューティングは大歓迎です。
更新:@asksolのアドバイスに従って、次のトレースバックを取得します。
delphi - Delphi で HTTP を使用せずに SOAP リクエストを作成して処理するにはどうすればよいですか?
SOAP over JMS、SOAP over AMQPまたはSOAP over SMTPを実装する場合など、THTTPRio を使用せずに Delphi でプレーンな SOAP リクエストを作成および処理する方法を示す推奨される方法/チュートリアルはありますか?
簡略化されたコード例:
このコードは、引数 Arg1 および Arg2 を使用した「Add」メソッド呼び出しの SOAP メッセージを含む XML を生成します。
このコードは、SOAP 要求 XML を受け取り、メソッドを呼び出します。メソッド呼び出しの結果は SOAP 応答としてラップされ、クライアントに送信する準備が整います。
performance - 低遅延で大規模なメッセージキュー
Facebookアプリケーションとクラウドコンピューティングの時代に、大規模なマルチプレイヤーゲームについて少し考え直しています。
既存のオープンプロトコルの上に何かを構築することになっていて、問題の範囲を特定するために、1,000,000人の同時プレーヤーにサービスを提供したいとします。
各プレーヤーに着信メッセージキュー(チャットなど)があり、平均してもう1つの着信メッセージキュー(ギルド、ゾーン、インスタンス、オークションなど)があるとすると、2,000,000のキューがあります。プレーヤーは一度に1〜10個のキューをリッスンします。各キューには、平均して1秒あたり1つのメッセージが含まれますが、特定のキューでは、レートがはるかに高く、リスナーの数が多くなります(たとえば、レベルインスタンスの「エンティティロケーション」キュー)。システムキューの待ち時間が100ミリ秒以下であると仮定しましょう。これは、軽度のアクション指向のゲームでは問題ありません(ただし、QuakeやUnreal Tournamentなどのゲームでは問題ありません)。
他のシステムから、単一の1Uまたはブレードボックスで10,000人のユーザーにサービスを提供することは、合理的な期待であることがわかっています(物理シミュレーションなど、他に費用のかかるものがないことを前提としています)。
したがって、クライアントが接続ゲートウェイに接続し、接続ゲートウェイがメッセージキューサーバーに接続するクロスバークラスターシステムでは、100個のゲートウェイマシンでゲートウェイごとに10,000ユーザーを取得し、100個のキューマシンでキューサーバーごとに20,000個のメッセージキューを取得します。繰り返しますが、一般的なスコーピングのためだけです。各MQマシンの接続数はごくわずかで、各ゲートウェイと通信するには約100です。ゲートウェイの接続数はかなり多くなります。クライアントの場合は10,100+すべてのキューサーバーへの接続です。(これに加えて、ゲームワールドシミュレーションサーバーなどの接続をいくつか追加しますが、今はそれを分離しておくようにしています)
これを最初から構築したくない場合は、既存のメッセージングおよび/またはキューイングインフラストラクチャを使用する必要があります。私が見つけることができる2つのオープンプロトコルはAMQPとXMPPです。XMPPの使用目的は、このゲームシステムに必要なものに少し似ていますが、オーバーヘッドは非常に顕著です(XML、詳細なプレゼンスデータ、およびその上に構築する必要のある他のさまざまなチャネル)。AMQPの実際のデータモデルは上記で説明したものに近いですが、すべてのユーザーは大規模なエンタープライズタイプの企業のようであり、ワークロードはリアルタイムのゲーム更新ではなくワークフローに関連しているようです。
誰かがこれらのテクノロジーまたはその実装について、あなたが共有できる日中の経験を持っていますか?
python - タスクを実行する前にカスタム初期化関数を呼び出すようにCeleryを設定するにはどうすればよいですか?
Djangoプロジェクトがあり、Celeryを使用してバックグラウンド処理用のタスクを送信しようとしています(http://ask.github.com/celery/introduction.html)。CeleryはDjangoとうまく統合されており、カスタムタスクを送信して結果を返すことができました。
唯一の問題は、デーモンプロセスでカスタム初期化を実行する正しい方法が見つからないことです。タスクの処理を開始する前に、大量のメモリをロードする高価な関数を呼び出す必要があり、その関数を毎回呼び出す余裕はありません。
誰かが以前にこの問題を抱えたことはありますか?Celeryのソースコードを変更せずに回避する方法はありますか?
ありがとう
.net - AMQPプロダクションの準備はできていますか?
AMQPを使用して、1つはC#で記述され、もう1つはPythonで記述された2つのサービスに参加したいと思います。1秒あたりにかなりの量のメッセージが表示されると予想しています。
- 本番環境に対応しているAMQPブローカーはありますか?
- Pythonと.netのバインディングは十分ですか?
python - メッセージキューに接続されている複数のコンシューマーとプロデューサー、AMQPでそれは可能ですか?
テキストをOCRできるプロセスのファームを作成したいと思います。複数のOCRプロセスによって読み取られるメッセージの単一のキューを使用することを考えました。
私はそれを確実にしたいと思います:
- キュー内の各メッセージは最終的に処理されます
- 仕事は多かれ少なかれ均等に分配されます
- 画像は1つのOCRプロセスによってのみ解析されます
- OCRプロセスは一度に複数のメッセージを取得しません(他の無料のOCRプロセスがメッセージを処理できるようにするため)。
AMQPを使用してそれを行うことは可能ですか?
pythonとrabbitmqを使用する予定です
java - スタンドアロン Apache Qpid (amqp) Junit テストの例
スタンドアロンのjunitテストでApache Qpidを使用した例はありますか?
理想的には、テスト内でメッセージを送受信できるキューをオンザフライで作成できるようにしたいと考えています。そのため、テスト内で QPid をテストしていません。そのために統合テストを使用しますが、サービスの負荷をモックアウトする必要があるメッセージを処理するメソッドをテストするのに非常に役立ちます。
python - AMQPのPythonクライアントでbasic.returnでlistenを使用する方法
メッセージがキューに配信されたことを確認したいのですが。
そのために、basic_publishに必須のパラメータを追加しています。basic.returnメッセージが正常に配信されなかった場合、メッセージを受信するには他に何をすべきですか?
メッセージが正常に配信されると関数が永久にハングchannel.wait()するため、リッスンに使用できません。(タイムアウトはありません)一方。電話をかけないと、メッセージが配信されなくても、は空のままになります。basic.returnwait()channel.wait()channel.returned_messages
py-amqplibバージョン0.6を使用しています。
どんな解決策も歓迎します。