問題タブ [nsq]

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 投票する
1 に答える
2714 参照

docker - nsq が nsqlookupd に接続してメッセージを消費できない

docker-compose.yml以下のように、docker-compose を使用して nsq を実行しようとしました。

nsq クライアントgo-nsqを使用してメッセージを生成および消費しています。メッセージは nsqd に直接接続して消費できますが、nsqlookupd に接続して消費することはできません。

nsqlookup インスタンスに接続できます。

ソースコードのリンク:

https://gist.github.com/liuzxc/1baf85cff7db8dee8c26b8707fc48799

環境:

これについて何か考えはありますか?

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

ruby-on-rails - Ruby nsq 新しいメッセージをリッスンする方法

私のセットアップは次のとおりです: 1 つのマイクロサービスは、要求を受け取り、メッセージをキュー (nsq) に書き込みます。2 つ目のマイクロサービスは、キュー内のメッセージを読み取り、それらに基づいて何かを実行する必要があります。

Ruby on Rails の nsq コンセプトは初めてです。ここから nsq をインストールしました: http://nsq.io/overview/quick_start.html。メッセージのプッシュを容易にするために、この gem も使用しました: https://github.com/wistia/nsq-ruby

メッセージをキューに入れることができました。この部分は簡単でした。

質問:

2 番目のマイクロサービスで常にリッスンして、何かがいつプッシュされたのかを把握して、それを消費できるようにするにはどうすればよいですか?

これは私がメッセージをプッシュする方法です:

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

java - NSQ でメッセージが遅れたのはなぜですか? 意外ですね……

私は自分のプロジェクトで NSQ を mq として使用しました。Java プロデューサーは NSQ へのメッセージを生成し、コンシューマーに送信します。しかし、奇妙なことに、コンシューマーは常に数秒後にメッセージを取得します。なぜそれが起こったのかを説明する方法がわかりません。これがテスト結果です。時間に注意してください。どちらも同じトピックを消費します。Java の結果:

情報 | jvm 1 | 2018/07/11 17:22:01 | Msg receive:{"did":"XSQ000200000005","msg":{"id":"5560","type":1,"content":"ZBINh6CBsLw7k2xjr1wslSjY+5QavEgYU6AzzLZn0lOgON9ZYHnNP4UJVUGB+/SpsxZQnrWR9PlULzpSP/p9l9t8wiAwj8qhznRaT8jeyx1/EUrDE0oXJB8GxWaLJUICCbC92j4BMA2HU8vgcfDOp9nSy1KFafi9zgFiCf9Igqo="}}

情報 | jvm 1 | 2018/07/11 17:22:11 | Msg receive:{"did":"XSQ000200000005","msg":{"id":"5560","type":1,"content":"ZBINh6CBsLw7k2xjr1wslSjY+5QavEgYU6AzzLZn0lOgON9ZYHnNP4UJVUGB+/SpsxZQnrWR9PlULzpSP/p9l9t8wiAwj8qhznRaT8jeyx1/EUrDE0oXJB8GxWaLJUICCbC92j4BMA2HU8vgcfDOp9nSy1KFafi9zgFiCf9Igqo="}}

情報 | jvm 1 | 2018/07/11 17:23:21 | Msg receive:{"did":"XSQ000200000005","msg":{"id":"5560","type":1,"content":"ZBINh6CBsLw7k2xjr1wslSjY+5QavEgYU6AzzLZn0lOgON9ZYHnNP4UJVUGB+/SpsxZQnrWR9PlULzpSP/p9l9t8wiAwj8qhznRaT8jeyx1/EUrDE0oXJB8GxWaLJUICCbC92j4BMA2HU8vgcfDOp9nSy1KFafi9zgFiCf9Igqo="}}

情報 | jvm 1 | 2018/07/11 17:25:31 | Msg receive:{"did":"XSQ000200000005","msg":{"id":"5560","type":1,"content":"ZBINh6CBsLw7k2xjr1wslSjY+5QavEgYU6AzzLZn0lOgON9ZYHnNP4UJVUGB+/SpsxZQnrWR9PlULzpSP/p9l9t8wiAwj8qhznRaT8jeyx1/EUrDE0oXJB8GxWaLJUICCbC92j4BMA2HU8vgcfDOp9nSy1KFafi9zgFiCf9Igqo="}}

行く結果:

2018-07-11 17:22:03 broker.go DEBUG タイプ 1 の msg 5560 を XSQ000200000005 に送信する準備ができました

2018-07-11 17:22:28 broker.go DEBUG タイプ 1 の msg 5560 を XSQ000200000005 に送信する準備ができました

2018-07-11 17:23:21 broker.go DEBUG タイプ 1 の msg 5560 を XSQ000200000005 に送信する準備ができました

2018-07-11 17:25:38 broker.go DEBUG タイプ 1 のメッセージ 5560 を XSQ000200000005 に送信する準備ができました

ビジネス上の理由だけで、他のエラーは無視してください。

これが私のゴーコンシューマーです:

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

go - NSQ 再キューイング ハーフ メッセージ

Idsタイプの配列がありint64ます。これは、公開しようとしている Nsq メッセージです。

コンシューマーでは、各 Id を 1 つずつ取得し、データストアから Id に基づいて情報を取得しています。

そのため、フェッチ中に CreateObject メソッドがエラーを返す場合があるため、(エラーが発生している) msg​​ を再キューイングしてそのケースを処理し、再試行できるようにします。

それで、これはこれを行う正しい方法ですか?この場合の欠点はありますか?再発行した方が良いですか?