1

一部のリソースへの高速アクセスが必要なリアルタイム アプリケーションを作成しています。リレーショナル データベースと redis を使用しています。リソースを安全に保管するためにリレーショナル データベースを使用し、同じリソースにすばやくアクセスするために redis を使用しています。

私が直面している問題は、これら 2 つのストア間の一貫性を維持するためのコードが非常に複雑になることです。両方に書き込みが行われているかどうかを確認する必要があり、それらのいずれかが失敗した場合は、機能した方を元に戻します。

書き込みが特定のトピックに送信される kafka のようなものを使用し、それぞれのデータベースに書き込むさまざまなコンシューマー (SQLConsumer と RedisConsumer) を使用することを考えました。このようにして、コンシューマーは無期限に再試行し、結果整合性を実現します。理想的には、書き込みが成功するまでメッセージはコミットされません。

これは一般的/正しいアプローチですか? アーキテクチャを改善できる他の方法はありますか?

4

0 に答える 0