2017-10-29 4 views
0

ハードウェアとのTCPソケット通信にSpring統合を使用します。 クライアントは、メッセージを一意に識別するためにシーケンス番号を送信します。 私の要件は、これらのシーケンス番号をソケットメッセージの一部として保存し、反復しないシーケンス番号に対してそれらのシーケンス番号を検証することです。 私はIdempotentReceiverに行って、私が欲しいもののように聞こえる。 しかし、予期しないサービスのシャットダウンの前に、それを保存し、最新のシーケンス番号を取得するためにメモリキャッシュを使用するための耐久性のある高速なメカニズムが必要です。TCPメッセージ - 耐久性のある高速ソリューションのヒント?

ありがとうございます!

+0

この質問はプログラミングに関するものではありません! – Xenolion

答えて

0

あなたは冪等受信機のためのPropertiesPersistingMetadataStoreを使用することができます。

PropertiesPersistingMetadataStoreは、プロパティファイルとPropertiesPersisterによって支えられています。

デフォルトでは、アプリケーションコンテキストが正常に閉じられたときだけ状態を持続します。それはFlushableを実装していますので、あなたはいつでも状態を永続化でき、flush()を呼び出すことができます。

詳細については、JavaDocsを参照してください。

+0

私は 'RedisMetadataStore'のような、このようなアプリケーションのためにもっと頑強なものを提案します。メモリ内のマップ全体がフラッシュされるたびに書き出されるため、プロパティストアは時間の経過とともに減速します。 –

+0

ArtemとGaryに感謝します。 PropertiesPersistingMetadataStoreの例がありますか? また、HazelCastを使用するとキャッシュに役立つと思いますか? –

関連する問題