問題タブ [jeromq]
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.
benchmarking - この JeroMQ (ZeroMQ ポート) ベンチマークが非常に遅いのはなぜですか?
私が見つけたこのライブラリを使用したいと思います。これは、zeromq の純粋な Java ポート (ラッパーではない) です。私はそれをテストしようとしていますが、いくつかの良い数値を主張していますが、私が実行しているテストはかなり悪い結果を示しており、ローカルで実行されています (クライアントと同じマシンで提供しています)。私はそれが私が間違っていることだと確信しています。約かかります。この 10.000 メッセージのループを実行するのに5 秒かかります。
私がしたことは、Hello world の例を取り上げて、一時停止と sysout を削除しただけです。コードは次のとおりです。
サーバー:
クライアント:
このコードを修正して、適切な数値を取得することは可能ですか?
messaging - JeroMqがメッセージをドロップする–防ぐ方法は?
次の「helloworld」jeromqPUSH -PULLクライアントとサーバーがあります。最高水準点の値を設定して初めて、メッセージをドロップせずに送信できます。
0Mqのドキュメントによると、最高水準点に達すると、PUBソケットのみがメッセージをドロップします。PUSH-PULLソケットを使用しているのに、メッセージがドロップされるのはなぜですか?
HWMはシステムの動的なプロパティであるように思われるので、このhello worldの例ではメッセージのドロップを解決できましたが、実際の状況でメッセージをドロップしないようにjeromqを頼りにできるでしょうか。
zeromq - jeromqの制作準備はできていますか?
私は過去に、jzmq
ライブラリを介してJVMアプリケーションでZeroMQを使用しました。一部のサービスがJVMに実装されている新しいプロジェクトでzeromqを使用することを計画しています。zeromqの純粋なJava実装であるjeromqを発見しました。これは、zeromq 3.xを追跡していて、を処理する際の頭痛の種を取り除くため、主に使用したいと思いjzmq
ます。ただし、レポページからは本番環境に対応しているかどうかわかりません。jeromq
制作の経験はありますか?
java - jeromq: コンテキストのクローズに失敗しました
編集:自分で解決しました。以下を参照してください(ただし、ここでバグに遭遇したかどうかはわかりません)
以下の単純な hello-world 要求と応答の例を使用すると、プログラムの最後でコンテキストを閉じることができません。単にハングするctx.close()
か、次の例外をスローします。
いずれにせよ、プログラムは停止しません。
コードは次のとおりです (ソケットを作成するスレッド内で両方のソケットが閉じられていることに注意してください)。
編集:解決しました
socket.close()
それは機能しないことが判明し、それctx.destroySocket(socket)
だけで十分です (ソケットも閉じます)。したがって、削除socket.close()
すると問題が解決します。これはバグですか?
java - zeromq - Tomcat からのログ記録時に IOException を処理する
申し訳ありませんが、私はJavaに比較的慣れていません。zeromq (jeromq) を使用して Java アプリケーションから Logstash にログを送信するためのライブラリを作成しています。
私のテスト サーバーの 1 つは、Tomcat で実行されているビジー状態の Jenkins マスターです。私のライブラリ「Logit」( https://github.com/stuart-warren/logit ) は、(いくつかの基本的な負荷分散のために) Logstash エンドポイントの構成済みリストに JSON 形式のログ (JUL) をスプレーします。速度。
残念ながら、数日後に例外が発生します。Tomcat/Jenkins は引き続き動作し、通常のファイルにログを書き込みますが、Logit はネットワーク経由でメッセージを送信しなくなります。
テスト用の 6 ノードの Cassandra クラスターから同じバージョンのライブラリ ログを使用しています (log4j)。
私の質問は、メッセージを送信するときに上記のような例外をどのように処理すればよいですか? https://github.com/stuart-warren/logit/blob/master/src/main/java/com/stuartwarren/logit/zmq/ZmqTransport.java#L115 .
ソケット/コンテキストを閉じて再度開く必要がありますか、それとも Jeromq ライブラリで処理する必要がありますか? おそらくTomcatはこれらをスローする可能性が高く、JULアペンダーで処理する必要がありますか?
ありがとう。
zeromq - zeromq (jeromq) を使用したルーティング ファイル
zmq に「ファイル ディスパッチャー」を実装しようとしています (実際には jeromq、jni は避けたいと思います)。
必要なのは、着信ファイルをプロセッサに負荷分散することです。
- 各ファイルは 1 つのプロセッサのみで処理されます
- ファイルは潜在的に大きいため、ファイル転送を管理する必要があります
理想的にはhttps://github.com/zeromq/filemqのようなものが欲しいのですが、
- パブリッシュ/サブスクライブではなく、プッシュ/プル動作を使用する
- ディスクに書き込むのではなく、受信したファイルを処理できる
私の考えは、taskvent/tasksink と asyncsrv のサンプルを組み合わせて使用することです。
クライアント側:
- 処理するファイルを通知する 1 つの PULL ソケット
- (非同期) ファイル転送チャンクごとに処理する 1 つの DEALER ソケット
サーバ側:
- 着信ファイル (名前) をディスパッチするための 1 つの PUSH ソケット
- ファイル要求を処理するための 1 つの ROUTER ソケット
- クライアントのファイル転送を管理し、インプロセス プロキシ経由でルーターに接続されている数人の DEALER ワーカー
私の最初の質問は次のとおりです。これは正しい方法のように思えますか? もっと簡単なものはありますか?
2 番目の質問は、現在の実装が実際のファイル データの送信でスタックしてしまうことです。
- クライアントはサーバーから通知を受け、リクエストを発行します。
- サーバーワーカーはリクエストを取得し、応答をインプロセスキューに書き戻しますが、応答はサーバーから送信されないようで (wireshark では表示されません)、クライアントは応答を待っている poller.poll でスタックします。
ソケットがいっぱいになってデータがドロップするという問題ではありません。一度に送信される非常に小さなファイルから始めています。
洞察はありますか?
ありがとう!
==================
ラフィアンのアドバイスに従って、コードを簡素化し、プッシュ/プルの余分なソケットを削除しました (あなたがそれを言うのは理にかなっています)。
「機能していない」ソケットが残っています!
これが私の現在のコードです。今のところ範囲外の多くの欠陥があります (クライアント ID、次のチャンクなど)。
今のところ、私は両方の男がそのシーケンスでお互いに大雑把に話しているようにしようとしています.
サーバ
/li>クライアント
/li>