cloud design pattern #4 compensating consumers_エンジニア勉強会20140917
DESCRIPTION
2014/9/12 エスキュービズム社内勉強会時に使用した資料になります。TRANSCRIPT
Copyright © 2014 by S-cubism Technology Inc. All rights reserved.Copyright © 2014 by S-cubism Technology Inc. All rights reserved.
Cloud Design Pattern#4 Compensating Consumers
2014/9/12
http://azure.microsoft.com/ja-jp/
Copyright © 2014 by S-cubism Technology Inc. All rights reserved.
カテゴリ
可用性
データ管理
設計および実装
メッセージング
管理および監視
パフォーマンスおよびスケーラビリティ
回復性
セキュリティ
Copyright © 2014 by S-cubism Technology Inc. All rights reserved.
概要
非同期処理の交通整理
同時実行している複数のコンシューマが、受信したメッセージを同一のメッセージングチャネルで処理することを可能とする。
システムが複数のメッセージを並行して処理できるようにし、スループットの最適化、スケーラビリティと可用性の改善、負荷分散を実現します。
Copyright © 2014 by S-cubism Technology Inc. All rights reserved.
概要
http://msdn.microsoft.com/en-us/library/dn600223.aspx
Copyright © 2014 by S-cubism Technology Inc. All rights reserved.
いつ使うか
・タスクが独立して、並行して実行可能な処理系
・タスクの作業量(時間)が変動しやすく、スケーラブルなソリューションが必要なとき
・可用性を高めたいとき(at least onceを保証したい)
Copyright © 2014 by S-cubism Technology Inc. All rights reserved.
例:レポーティングサービスの場合
ECサイトの結構がっつりな分析レポートを出力する機能の場合。
出力ボタンをポチると、登録してあるメールアドレスに対してレポートが添付されて送付されてくる。という仕組み。
Copyright © 2014 by S-cubism Technology Inc. All rights reserved.
構成/動作
フォーム Web APP
(Front)
Web APP
(Back)
DB
Message
Queue
Reporting
Task
①click!click!click!!!
③put messages
(id=1)
④get messages
(id=1)
②insert data
(id=1)⑤select data
(id=1)
⑥send mail w/ reports
http://blog-imgs-31.fc2.com/h/i/m/himastime/kumukumu1.jpg
Copyright © 2014 by S-cubism Technology Inc. All rights reserved.
構成/動作
フォーム Web APP
(Front)
Web APP
(Back)
DB
Message
Queue
Reporting
Task
①click!click!click!!!
③put messages
(id=1)
④get messages
(id=1)
②insert data
(id=1)⑤select data
(id=1)
⑥send mail w/ reports
レスポンス待たなくて良い!
フロントへ負荷の影響がない!
http://blog-imgs-31.fc2.com/h/i/m/himastime/kumukumu1.jpg
Copyright © 2014 by S-cubism Technology Inc. All rights reserved.
サービスプロバイダ
Service Bus Queue
メッセージキュー
Amazon SQShttp://aws.amazon.com/jp/sqs/
http://azure.microsoft.com/ja-
jp/documentation/services/service-bus/
http://cloud.nifty.com/service/mq.htm
Copyright © 2014 by S-cubism Technology Inc. All rights reserved.
補足
考え方と実装は、割と前からある
クラウドが普及する
→ 分散システムにさらにスポットが当たる
→ クラウド環境での実装が求められる
→ 汎用的だし、PaaSで作っちゃう
→ あざーす(ユーザ)
http://www.rabbitmq.com/
Copyright © 2014 by S-cubism Technology Inc. All rights reserved.
留意事項
1.順序保証はサービスによって異なる厳密なFIFOでなかったりする。
2.メッセージキュー自体のスケーリングを意識するPaaSで担保されてる?
3.タスクの処理結果に対する設計が必要プロセスが別なので。
メールなのか、ajaxで監視するのか。
Copyright © 2014 by S-cubism Technology Inc. All rights reserved.
まとめ
非同期処理の交通整理
同時実行している複数のコンシューマが、受信したメッセージを同一のメッセージングチャネルで処理することを可能とする。
システムが複数のメッセージを並行して処理できるようにし、スループットの最適化、スケーラビリティと可用性の改善、負荷分散を実現します。