5

ステートレスである必要があるアプリケーションで、処理されたメッセージの数を表すカウンターを使用するために推奨されるパターンを知りたいです。

たとえば、アプリケーションが複数のサーバーにデプロイされているアーキテクチャでは、永続的な情報 (セッションなど) を格納するためにデータベースが使用されます。ただし、このような情報は、メッセージ カウンターのように同時更新に公開されません。単一インスタンス アプリケーションではシングルトンを使用できますが、ここではそうではありません。

そのようなカウンターを実装するためのあなたの提案は何ですか? カウンターを使用するのは悪い設計ですか?

4

3 に答える 3

0

この非常に抽象化されたタスクを実行するためのパターンはないと思います。また:

単一インスタンス アプリケーションではシングルトンを使用できますが、ここではそうではありません。

シングルトンを使用しても、マルチスレッド システムでのデータの安全性は保証されません。いくつかの同期プリミティブが必要です。非常に単純なのはクリティカル セクションです。

すべてのアプリケーションで何らかのカウンターを更新する必要がある場合は、この「カウンター」管理をマイクロサービスにリファクタリングし、マイクロサービス内のクリティカル セクションを使用してリソースを更新するのが合理的です。この場合、特定の瞬間ごとに、スレッド更新カウンターが 1 つだけであることが保証されます。

于 2015-07-01T14:58:38.103 に答える