問題タブ [apollo]

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.

0 投票する
2 に答える
2947 参照

apache - MQTT から AMQP/STOMP への変換

私はこれらのプロトコルに不慣れで、Apache Apollo や RabbitMQ などのメッセージ ブローカーの調査を始めたばかりです。したがって、ブローカーはパブリッシャーから MQTT メッセージを受け取ります。そして、それをAMQP(できれば)またはSTOMPプロトコルに変換してWebサーバーに送信したいと思います。しかし、私はこれまでそうすることができませんでした。RabbitMQ を調べて、MQTT プラグインを有効にしようとしましたが、ロードしてもサーバーを起動できません。誰かが私をここに導くことができるかどうか疑問に思っていましたか? 役立つ API はありますか? そして、私はRabbitMQについて非常に混乱しています。ストンプ、管理ユーティリティなど、他のプラグインを簡単にロードできました。

0 投票する
1 に答える
321 参照

jms - Apache Apollo MQ の動的宛先

Apache Apollo MQ で宛先を承認する方法はありますか?

私が望むのは、1) ユーザーが共有トピックにのみ書き込み、読み取りをサーバー/管理者に制限できるようにすることです。このトピックは、サーバーにメッセージを送信することです。2) ユーザーは自分のプライベート トピックから読み取ることができますが、サーバー/管理者以外の誰もそれに書き込むことはできません。

例えば:

さて、興味深い部分です。これは、動的トピックで機能する必要があります。ユーザーの名前は事前にわかりません。

カスタム BrokerFilter を使用して Apache ActiveMQ でこれを動作させましたが、Apollo で行う方法がわかりません。

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

0 投票する
0 に答える
198 参照

mqtt - Apache Apollo MQTT に再接続した後にメッセージが失われるのはなぜですか?

Apollo v1.7.1 をインストールし、Paho Go クライアントを使用して、ある接続から公開し、別の接続から購読しています。サブスクライバーを新しいクライアント ID に接続するか、サブスクライバーを既存のクライアント ID に接続してクリーン フラグを true に設定すると、すべて正常に機能します。

ただし、clientid を再利用しようとしているサブスクライバーを false のクリーン フラグで接続すると、サブスクライバーはパブリッシャーから送信されたメッセージのほとんどを失い始めます。一部のメッセージは送信されますが、ほとんどは送信されません。

Apollo がパブリッシャーからメッセージを受信して​​いることを HTML コンソールから確認できます。サブスクライバーにメッセージを送信するタイミングもわかりますが、すべてのメッセージを送信していない理由がわかりません。

Apollo に問題があるのでしょうか、それともクライアントが何か問題を起こしているのでしょうか?

0 投票する
1 に答える
544 参照

java - メッセージ駆動型 Bean を使用して、トピック apache apollo からメッセージを取得します

メッセージ駆動型 Bean(MDB) を使用して、グラスフィッシュのリソース アダプター activeMq 5.10 を介してトピック Apache apollo からメッセージを取得する Java アプリを作成します。apache ActiveMQ を使用すると正常に動作しますが、apache apollo では動作しません。mqtt を使用してトピック a のメッセージを送信し、mqtt を使用してそのトピックをリッスンし、メッセージを取得します。しかし、MDB を使用してリッスンすると、メッセージを取得できません。apollo コンソール、タブの仮想ホスト -> トピックが表示されます。メッセージの送受信に使用するトピックをクリックします。そのトピックにはコンシューマーとプロデューサーがあり、「エンキュー: 2 アイテム / 2.72 kb」ですが、コンシューマーは「Transfers = 0」です。Apollo で MDB を操作する方法がわかりません。

apollo.xml

メッセージを発行するコード:

MDB :

0 投票する
2 に答える
4498 参照

java - QoS = 1 で MQTT が非常に遅くなるのはなぜですか?

WiFi と MQTT プロトコルを介してロボットの群れを制御するアプリケーションを作成しようとしています。私のアプリケーションにとって十分に速いかどうかを測定するために、いくつかのテストを実行しました。平均 25 ~ 30 ミリ秒以内の制御ループ (PC からロボットへのメッセージの往復) が必要です。

2 台のマシンで実行される Paho Java クライアントを使用してアプリケーションを作成しました。topic1 でメッセージを受信すると、topic2 にパブリッシュします。Topic2 は 2 番目のマシンによってサブスクライブされ、次にトピック 1 にパブリッシュされます。

すべてのパブリッシングとサブスクライブが QoS 0 で行われた場合、ループ時間は平均で約 12 ミリ秒でした。ただし、ロボットに送信されたコマンドが常に宛先に到達することを保証するために、QoS 1 を使用したいと考えています。ループ時間をテストしたところ、平均で約 250ms でした。

時間の増加の原因は何ですか?私の理解では、送信エラーがなければ、交換されたパケット数は QoS1 で 2 倍になります (メッセージごとにブローカーからクライアントに送信される PUBACK があります。http://www.hivemq.com/mqtt-essentials-part-6 を参照してください)。 -mqtt-サービス品質レベル/ )。

この時間をどうにか短縮できないか?Mosquitto と Apache Apollo ブローカーを試しましたが、どちらも同じ結果を再現しました。

編集:

テスト手順を少し変更しました。現在、同じマシン上で実行されている mqtt クライアントの 2 つのインスタンスがあります。1 つはパブリッシャーとして、2 番目はサブスクライバーとして。パブリッシャーは、次のように 10 ミリ秒間隔で 1000 メッセージを送信します。

サブスクライバーはメッセージを待って時間を測定します:

ブローカー (デフォルト構成の mosquitto) は、同じローカル ネットワーク内の別のマシンで実行されます。私が達成した結果は、以前よりもさらに奇妙です。現在、QoS 1 のメッセージがサブスクライバに到達するのに約 8 ~ 9 ミリ秒かかります。QoS 2 では約 20ms です。ただし、QoS 0 では、平均を取得します。100ms から 250ms まで!エラーはテスト メソッドのどこかにあると思いますが、どこにあるのかわかりません。

0 投票する
1 に答える
60 参照

jms - クライアントから Apache Apollo に入ってくるメッセージを Java にフィードする方法は?

JMS (Java Messaging Service) と呼ばれるものを使用しますか? 基本的に、クライアントからメッセージ バスに送信されたすべてのメッセージを、Java に適した形式で照合して、これらのメッセージを使用していくつかのバックエンド タスクを実行する必要があります。

0 投票する
1 に答える
434 参照

activemq - Apache Apollo はフェイルオーバーをサポートしていますか?

進行中のプロジェクトにメッセージ キュー システムを使用しようとしていますが、現在は複数のアプリケーションを相互接続するためにカスタム (かつ壊れやすい) メッセージ サブシステムに依存しています。私のシステムでは、pub/sub パターンと queue パターンの両方が頻繁に使用されています。

Apache Apollo は、私が検討しているメッセージ キュー システムの 1 つですが、(たとえば) Apollo サーバーの障害を処理する方法に関する情報が見つかりません。Apollo でフェイルオーバーをサポートする方法はありますか?

0 投票する
1 に答える
235 参照

c - クライアントが mqtt ブローカーとの接続を切断した後のポートの解放

私は apollo ブローカーと mosquitto C クライアント ライブラリを使用しています。メッセージの発行に成功したら、mosquitto_disconnect(mosq) 関数を使用してクライアントを切断します。クライアントがブローカーとの接続に使用したポートがまだ空いていないようです。クライアントが ac プログラムでブローカーとの接続に使用したポートを手動で解放する方法はありますか?