問題タブ [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.
java - ルーター/ディーラー プロキシがメッセージを配信しない
私は分散アプリケーションに取り組んでいます。ネットワークは ZMQ (jeromq) に基づいています。私のアーキテクチャは次のとおりです。
- したがって、私の受信ワーカーは、メッセージをリッスンしてキューに入れる別のスレッドで実行されています。
- 処理ワーカーはキューからメッセージを取得し、何らかの処理を行ってからクライアントに送り返します (処理ワーカーはプロキシ バックエンドに接続されます)。
クライアントがメッセージを送信すると、それは受信ワーカーによって受信され、キューに入れられ、処理ワーカーはそれを受け取り、何らかの処理を行って返信し、クライアントは応答を受信してから別の要求を送信します。その要求はそうではありません受信ワーカーによって受信されますが、クライアントによって送信されます。基本的に、最初の「ラウンド」のみが機能します。ここで何が欠けていますか?!
java - ZeroMQ、inproc: transport を pub/sub メッセージング パターンと共に使用できますか
シナリオ :
イベント ドリブン メカニズムをZeroMQ
(具体的には)評価していました。jeroMq
アプリケーションは、複数のサービス (パブリッシャーとサブスクライバーの両方がサービス) が同じ jvm または個別のノードに存在できる場所に分散されます。これは、デプロイメント アーキテクチャによって異なります。
観察
遊んでみるために、 jero mq (バージョン:0.3.5) を使用して、 transport としてpub
/sub
パターンを作成しました。inproc:
- スレッドの公開は公開できます (公開されているように見えますが、少なくともエラーはありません)
- 別のスレッドにあるサブスクライバーは何も受信していません。
質問
/inproc:
と一緒に使用できますか?pub
sub
グーグルを試してみましたが、具体的なもの、洞察を見つけることができませんでしたか?
pub
/ sub
withのコードサンプルinproc:
jero mq (バージョン:0.3.5) を使用したインプロセス pub サブの作業コード サンプルは、後でこの投稿にアクセスする人にとって役立ちます。A
1 つのパブリッシャーがトピックおよびを公開しB
、2 人のサブスクライバーがA
および をB
別々に受け取る
apache-camel - Apache camel: ZeroMQ サーバーへの接続
ZeroMQ
apache を使用してサーバーに接続しようとしていますcamel
。camel-zeromq
プロジェクトが提供するコンポーネントを使用していますが、これにはシステムにネイティブ ライブラリをcamel-extra
事前にインストールする必要があるようです。ZeroMQ
誰かがcamel-zeromq
コンポーネントを使用する方法を知っていますか?つまり、これらのネイティブ ライブラリをインストールする必要はありませんか?
これはなかなかありえないことだと思います。
そうだとすれば:
これらのライブラリをシステムに直接インストールするのを避けるために、何らかの方法でこれらのライブラリをプロジェクトに追加することは可能ですか?
このコンポーネントのもう 1 つの欠点camel
は、あまり頻繁に更新されていないように見えることです。jeromq
ライブラリを使用してクライアントをサーバーに接続しました。これらのライブラリを使用するキャメルルートを作成する方法を知っている人はいますか?
誰かが私にアドバイスを教えてくれれば幸いです。私が直面しているこの問題を解決するための最良のアプローチを見つけようとして、ちょっと行き詰まっています。
zeromq - キューを ZeroMQ PUB/SUB に接続する方法
次の点を考慮してください。
- 3 つの論理サービスのセット:
S1
、S2
およびS3
- 各サービスの 2 つのインスタンスが実行されているため、次のプロセスが
S1P1
あります。S1P2
S2P1
S2P2
S3P1
S3P2
ZeroMQ
単一のプロセスで実行され、すべてのサービス プロセスから到達可能なブローカー
論理サービス、たとえば は、論理サービスおよびにとって重要なS1
メッセージを発行します。各論理サービスの 1 つのプロセスのみが を受信する必要があるため、 ととしましょう。M1
S2
S3
M1
S2P1
S3P2
私は次のことを試しましたが、成功しませんでした:
- ブローカー スレッド 1 は
XSUB/XPUB
プロキシを実行しています - ブローカー スレッド 2 は、ソケットに接続され、すべてにサブスクライブされた
ROUTER/DEALER
プロキシを実行しています (logical の場合) 。ROUTER
XPUB
S1
- ブローカー スレッド 3 は、ソケットに接続され、すべてにサブスクライブされた
ROUTER/DEALER
プロキシを実行しています (logical の場合) 。ROUTER
XPUB
S2
- ブローカ スレッド 4 は、XPUB ソケットに接続され、すべてにサブスクライブされた
ROUTER/DEALER
プロキシを実行しています (論理 の場合) 。ROUTER
S3
- 各論理サービス プロセスは
REP
、ブローカーDEALER
ソケットに接続されたソケット スレッドを実行しています。
XSUB/XPUB
プロキシはパブリッシュ/サブスクライブのセマンティクスを提供し、プロキシによって送信されるメッセージのソケットROUTER/DEALER
間に競合が発生すると考えました。REP
XSUB/XPUB
ZeroMQ
これを達成するためにソケットを組み合わせるにはどうすればよいですか?
アップデート1
「成功せずに」が役に立たないことはわかっています。さまざまな構成を試してみましたが、さまざまなエラーが発生しました。私が試した最新の構成は次のとおりです。
(XSUB proxy=> XPUB) => (SUB copyLoop=> REQ) => (ROUTER proxy=> DEALER) => REP
copyLoop は次のようになります。
私が得る例外は次のとおりです。
JeroMQ 0.3.4、Oracle Java 8 JVM、および Windows 7 を実行しています。
json - ZeroMQ を使用したプロセス間通信: 大きな配列の転送
Scala プロセス (JeroMQ) と C プロセス (ZeroMQ) の間の通信を確立する必要があります。Scala プロセスは、大きな配列を送信する必要があります (配列ごとに 1 億の float)。これは最初に JSON 文字列に変換されます。以下に示すように、メモリの問題が発生しています。
1 億 float は 762 MB に相当します。シリアル化された JSON 文字列が巨大になっているように見えます。はいの場合、このサイズのデータを転送する最善の方法は何ですか?
java - java.lang.ClassNotFoundException: Windows サービスを開始しようとすると、org.zeromq.ZContext が発生する
私が作成した基本的な Maven Java アプリがあり、ZeroMQ の完全な Java 実装である JeroMQ に依存しています。この Java アプリを Windows サービスとしてラップする必要もあるため、Apache Commons Daemon を使用することにしました。具体的には、次の優れた例に従いました。 .com/node/234 Java コードは次のようになります。
次に、チュートリアルで提案されているように、次のフォルダー構造を作成しました。
次に、bin ディレクトリに移動し、次のコマンドを発行してサービスをインストールしました。
Windows サービスで確認できるため、インストールは正常に機能します。しかし、そこから起動しようとすると、「Windows はローカル コンピューターで SubscriberACD を起動できません」というエラーが表示されます。
エラー ログを確認したところ、次のエントリが表示されました。
JeroMQ は現在、私の Maven Dependencies の下の jar であることは注目に値します。POM.xml ファイルから構成しました。
問題は、サービスが Maven Dependencies の下にある JeroMQ jar にアクセスできないことだと思います。私の仮定は、クラス ファイルに依存関係が含まれていないということです。だから私が試したのは、プロジェクト全体を jar としてエクスポートし、その赤ちゃんを下に置いていたE:\SubscriberACD\classes\
ので、私の構造は次のようになります。
ただし、それで問題は解決しませんでした。誰でもこれに光を当てることができますか?