RocketMQ の実戦
RocketMQ の実際の使用について何が学べるでしょうか?
- RocketMQ アプリケーション シナリオ
- RocketMQプロジェクトにおける一般的な問題
- RocketMQの一般的なソリューション
- 本番環境で RocketMQ を使用する方法
- RocketMQ を使用する理由
- パフォーマンスの最適化のためにRocketMQを使用する方法
ECビジネスのクローズドループ知識の解説
ここでは、ユーザーが電子商取引 APP で商品を購入するための完全なビジネス プロセスについて説明します。
優れた電子商取引システムには、マーケティング システム、商品システム、フルフィルメント システム、取引システム、在庫システム、支払いシステムが含まれることがよくあります。
- 製品を購入するには、ユーザーはまず製品をショッピング カートに追加し、製品を選択して注文を送信します。
- 注文を送信すると、在庫システムによって在庫がロックされます。
- 取引システムは注文をデータベースに書き込み、支払いシステムはサードパーティの支払いプラットフォームに対して前払いアクションを開始して支払い明細を生成します。
- そして、ユーザーに支払い操作を実行するよう通知し、ユーザーは支払いリクエストを開始し、サードパーティの支払いプラットフォームに支払います。
- 支払いが成功すると、支払いシステムは [Payment Successful] メッセージを MQ に送信し、取引システムは [Payment Successful] メッセージを消費します。消費中に、フルフィルメント システムは商品の出荷とユーザーが商品を受け取った後の操作を通知します。
マーケティング システムでは、別のビジネス シナリオとして、プロモーション活動を開始してユーザーにプッシュすることが挙げられます。
マーケティングシステムの技術・エンジニアリング体制
マーケティングシステムでは、マーケティングメッセージは定期的に配信システムに送信され、xxljobを使用して実行されます。 全体的なプロセスは次のとおりです。
xxljob を使用する理由
マーケティングのスケジュールされたプッシュ タスクの 1 つのコピーがデータベースに保存されるため、複数のプッシュ システムが同じプッシュ タスクをプルする可能性があります。これには、xxljob 分散タスク スケジューリング プラットフォームを使用する必要があります。
配信システムでは、テキスト メッセージや電子メールなどの情報をユーザーにプッシュするためにサードパーティの配信プラットフォームを呼び出す必要がありますが、サードパーティの配信プラットフォームによるプッシュの頻度と量は制限されなければなりません。配信システムでのユーザーへのプッシュは非常に大きいため、2 つのシステム間の同時実行性のギャップを均衡させるために、RocketMQ が非同期プッシュを実行するために導入されます。
まず、多数のプッシュ メッセージをRocketMQにロードし、サードパーティの配送プラットフォームの速度に応じて消費します。
ここでは、スケジュールされたプッシュ タスクを実行するために xxljob も導入されています。ユーザーへのプッシュがスケジュールされているため、これらのスケジュールされたタスクはデータベースに格納され、ユーザーにプッシュされるスケジュールされたタスクの量も非常に大きくなります。ユーザーが数千万人いる場合は、複数のプッシュ システムを導入する必要があります。これにより、ユーザーのプッシュ速度が大幅に向上することができます。したがって、xxljob は分散スケジューリングを実行するために使用され、各プッシュ システムがプッシュ タスクの一部を担当します。