1

過去数日間、NATS および NATS ストリーミング サーバーでいくつかの POC を行ってきました。NATSストリーミングサーバーと同じようにJavaクライアントを作成し、NATSサーバーと一緒にクラスター化されたNATSストリーミングサーバーとの間でメッセージを発行/購読することから始めました。guidsNATS ストリーミングは、ストリーミング サーバーがパブリッシャーからメッセージを受信したときに確認応答を提供するという非常に優れた機能です。AckHandlerを登録して次のように使用することで、これを達成しました。

guid[0] = sc.publish("produceQueue", payload, new AckHandler() {
                @Override
                public void onAck(String nuid, Exception ex) {
                    LOGGER.debug("Received ACK for guid: {}", nuid);
                }

                System.out.flush();
                latch.countDown();
        }
    });

guidしかし、NATS サーバー (ストリーミングではない) を見始めたとき、メッセージが正常に発行されたことを示す確認応答を提供できるような AckHandlers (またはその他のもの) を見つけることができませんでした。

NATS ストリーミング サーバーには、私が探している多くの機能が組み込まれています。たとえば、message acknowledgements(max_ageメッセージの TTL)durable subscriptionsなどです。一方、NATS サーバーはクラスタリング機能を提供しますが、NATS ストリーミングが提供する他の機能を見つけることができませんでした (ドキュメントで見逃していない限り)。

NATS と NATS ストリーミング機能の概要を 1 つの表にまとめて参照するという未解決の問題があることは知っていますが、現時点ではまだ解決されていません。

メッセージが NATS サーバーに公開されると、NATS サーバーは確認応答を提供しますか? それとも、サブスクライバーの 1 人がサブスクライブしているメッセージの確認ですか?

4

1 に答える 1