NSQのGolangメッセージキュー

NSQ

NSQは、一日あたりのメッセージ数十億を扱うことができる大規模な操作のために設計された分散リアルタイムメッセージングプラットフォームです。

これは、分散型と分散型のトポロジをサポートフォールトトレランスと高可用性における単一障害点を促進していない、かつ信頼性の高いメッセージ配信の保証を提供します。

長所と短所
長所:
1、非常に簡単に展開するには、依存任意の文脈なしに、バイナリ実行ファイル
2、軽すぎない設定パラメータ、必要性だけの簡単な構成が直接使用することができ
、外出先で書かれた3、高いパフォーマンスを( )
4、失われたメッセージが存在しない場合には
短所:
1、メッセージ・シーケンス
2は、ノード間でのメッセージのないコピーが存在しない
3、認証は

シーンメッセージキュー

シーンからの紹介

非同期実行

データベースに正常に登録情報の後、登録したメールを送信し、同時にSMSの登録操作を送信します。そして、実行されたすべてのタスクの後に、クライアントに情報を返します。シリアルモードと比べて、パラレルモードは、効率を向上させることができ、実行時間を減少させます。
パラレル:

非同期モード:

デカップリングの応用

シーン記述:ユーザの注文後、注文システムは、在庫システムに通知する必要があります。

伝統的なアプローチがある:発注在庫システムのシステムコールインタフェース。以下に示すように:

伝統的な方法は次の欠点があります
在庫システムへのアクセスの失敗を想定し、1を、受注作成に失敗し、その結果、在庫注文を減らすために失敗
オーバーオーダーシステムインベントリシステムに結合された2は、

それでは、どのように上記の欠点を解決するには?メッセージキューの導入を必要とし、以下に示すように、メッセージ・キュー・アーキテクチャが導入されます。

  • 単一のユーザーの後、データの永続性のための注文処理システム、およびメッセージキューにメッセージを書き込み、オーダー作成戻っ成功:オーダーシステム
  • 在庫システム:プル/プッシュモードを使用して、注文の在庫情報、インベントリ操作の横に単一の情報システムを取得します。

フローカット豊

シナリオ:スパイク活動、通常ので、あまりにも多くのトラフィックの、トラフィックの急増につながるには、アプリケーションがハングアップします。この問題を解決するために、一般的な必要性は、フロントエンドアプリケーションでのメッセージキューを追加します。

1、可以控制参与活动的人数;
2、可以缓解短时间内高流量对应用的巨大压力;
流量削锋处理方式系统图如下:

  • 服务器在接收到用户请求后,首先写入消息队列。这时如果消息队列中消息数量超过最大数量,则直接拒绝用户请求或返回跳转到错误页面;
  • 秒杀业务根据秒杀规则读取消息队列中的请求信息,进行后续处理。

おすすめ

転載: www.cnblogs.com/jasonminghao/p/12387558.html