電子商取引や新規小売の分野では、特典の発行は、特定のユーザーに対して特定の運用活動が行われるシナリオに適用できます。 技術的には、これらのシナリオでデータベースとキャッシュデータの間の強い一貫性を確保することは困難です。 この問題を解決するために、Alibaba Cloud ApsaraMQ for RocketMQが特典の発行を提供しています。 このトピックでは、eコマースのシナリオを例として使用して、特典発行ソリューションの背景、アーキテクチャ、および利点を説明します。
背景
eコマースプラットフォームが特定のユーザーのマーケティング活動を実行することを決定すると、さまざまなユーザーグループに基づいてさまざまなマーケティングポリシーを設定します。
- ユーザースクリーニング: ビジネス要件に基づいて、新しいユーザーやメンバーなど、さまざまなユーザーに特典を発行するための特定の基準を設定します。
- 特典タイプ: 赤い封筒、ポイント、クーポンが含まれます。
- 収集コスト: 割引クーポンを収集するためにメンバーポイントを消費するなど、特典を収集するためのコストを設定します。
- 時間管理: 特典発行のタイミングを設定します。たとえば、午前10時に新しいユーザーに100クーポンを発行します。
- インベントリ: 特典の数が十分であるかどうか、およびターゲットユーザーの数と一致するかどうかを判断します。
運用データは、データベースに書き込まれた後、技術ポリシーに変換され、さらにキャッシュに書き込まれ、ユーザ発行リンクデータ、すなわちルールに変換される。 これらのルールを満たすユーザーのみが、対応する特典を受け取ることができます。
課題
ユーザーは、対応するキャッシュデータにアクセスして特典を収集できます。 これにより、効率的なユーザーアクセスが保証され、データベースへの負荷が軽減されます。 ただし、これは新しい問題につながります。
- 過剰なルールは、キャッシュに書き込まれる過剰なデータベースデータをもたらし、さらに、下流のキャッシュに大きな圧力をもたらす。 しかし、そのようなケースはまれです。
- データベースデータはキャッシュに一度だけ書き込まれます。 このため、ネットワークジッタ等によりデータの書き込みに失敗した場合、データの更新が遅延する。 たとえば、当初は在庫を100,000の特典に設定する必要がありますが、運用ポリシーで数値が10に変更されているとします。 データが時間内に同期されない場合、ダウンストリームに通知できず、資本損失が発生します。
アーキテクチャ
ApsaraMQ for RocketMQは再試行メカニズムを提供し、メッセージが失われるのを防ぎます。 したがって、特典発行ソリューションは、データベースとキャッシュされたデータ間の強い一貫性を保証できます。 具体的には、データベースとキャッシュの間でApsaraMQ for RocketMQが使用されます。 次の図はアーキテクチャを示しています。

利点
ApsaraMQ for RocketMQには、次の利点があります。
- 非常に高いデータスループットをサポートします。
- 大量のメッセージの蓄積をサポートし、ダウンストリームアプリケーションに対するトラフィックピークの影響を軽減します。
- データベースとキャッシュ間の実装が簡素化され、コード開発の作業負荷が大幅に軽減されます。 ApsaraMQ for RocketMQがないと、実装は非常に複雑になります。
- これにより、ユーザーはメッセージをリアルタイムで送信およびサブスクライブでき、再試行機能を提供します。これにより、メッセージの紛失を防ぎ、メッセージの一貫性を確保できます。
詳細情報
ApsaraMQ For RocketMQの機能の詳細については、「メッセージの再試行」をご参照ください。