問題タブ [nats-streaming-server]
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 - NATS 永続メッセージ Java クライアント
NATS Streaming Server を Java クライアントと組み合わせて使用した経験のある人はいますか? 具体的には、加入者がオフラインのときに送信される Java クライアントを使用してメッセージを取得する方法がわかりません。
Go クライアントを使用して、メッセージをパブリッシュし、後でサブスクリプションを追加して、パブリッシュされたすべてのメッセージを取得できることを確認できます。これは NATS Streaming Getting Startedドキュメントにあり、宣伝どおりに機能します。
いくつかのメッセージを公開します。パブリケーションごとに結果を取得する必要があります。
サブスクライバー クライアントを実行します。--all フラグを使用して、発行されたすべてのメッセージを受信します。
NATS Java clientを使用してこれを実行しようとしています。類似のメソッド呼び出しが見つからないだけなのか、それともその機能が Java クライアントに存在しないのか、私にはわかりません。
これが私が試したことです
これにより、出力が得られます
nats.io - Nats どのパターンを使用するか
クラスター化されたマイクロサービス アーキテクチャを使用する場合に使用するパターンをマイクロサービスアーキテクチャの依存関係で質問しました 。
ポイントツーポイントが機能するはずであるという回答を受け取りましたが、読むと: https : //nats.io/documentation/concepts/nats-req-rep/応答する 1 つのサブスクライバーになります。これは、Inventory マイクロサービスがサブスクライブする update-inventory-event をトリガーする注文イベントを配置する場合には機能しません (リンクの例のように)。つまり、在庫が同じ回数だけ更新されるため、クラスター化された環境では機能しませんマイクロサービス インスタンスの量。
Nats を使用してこのシナリオを解決するにはどうすればよいですか?
前もって感謝します!
nats.io - NATS パブリッシュ/サブスクライブ確認
過去数日間、NATS および NATS ストリーミング サーバーでいくつかの POC を行ってきました。NATSストリーミングサーバーと同じようにJavaクライアントを作成し、NATSサーバーと一緒にクラスター化されたNATSストリーミングサーバーとの間でメッセージを発行/購読することから始めました。guids
NATS ストリーミングは、ストリーミング サーバーがパブリッシャーからメッセージを受信したときに確認応答を提供するという非常に優れた機能です。AckHandler
を登録して次のように使用することで、これを達成しました。
guid
しかし、NATS サーバー (ストリーミングではない) を見始めたとき、メッセージが正常に発行されたことを示す確認応答を提供できるような AckHandlers (またはその他のもの) を見つけることができませんでした。
NATS ストリーミング サーバーには、私が探している多くの機能が組み込まれています。たとえば、message acknowledgements
(max_age
メッセージの TTL)durable subscriptions
などです。一方、NATS サーバーはクラスタリング機能を提供しますが、NATS ストリーミングが提供する他の機能を見つけることができませんでした (ドキュメントで見逃していない限り)。
NATS と NATS ストリーミング機能の概要を 1 つの表にまとめて参照するという未解決の問題があることは知っていますが、現時点ではまだ解決されていません。
メッセージが NATS サーバーに公開されると、NATS サーバーは確認応答を提供しますか? それとも、サブスクライバーの 1 人がサブスクライブしているメッセージの確認ですか?
message-queue - NATS - マイクロサービス アーキテクチャで発行されたイベントに対してアクションを実行するサブスクライバーは 1 つだけです
私は NATS を初めて使用し、 https ://nats.io/documentation/concepts/nats-messaging/ のすべての例を読みました。
私は、マイクロサービス-Y (MSY) で、他のマイクロサービス-X (MSX) から公開された情報を保存する必要がある Microservciarchitecture にいます。MSY の 2 ~ 10 のインスタンスがあるため、MSX で変更が行われ、MSX インスタンスがイベントを公開すると、必要なイベントが発行されます。 MSY の 1 つのインスタンスのみが情報を保存する必要があるため、すべてのインスタンスが同じデータを保存するわけではありません。Request-Repy: https://nats.io/documentation/concepts/nats-req-rep/を読み ましたが、すべてのインスタンスがポイントツーポイントであってもメッセージを受信 (および処理) しているようです。返信は、返信が最も速い 1 つのインスタンスに対してのみ処理されます。
これは正しいですか、それとも例を誤解していますか? MSY の 1 つのインスタンスが特定のメッセージを処理する必要がある場合 (データベースにデータを保存する必要がある場合)、これを実現するにはどうすればよいですか?