Submit Search
Asynchronous Messaging入門
9 likes
4,045 views
Tatsuaki Sakai
クラウドデザインパターン勉強会(2014/7/30)セッション資料
Technology
Read more
1 of 44
Download now
Downloaded 40 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
More Related Content
What's hot
(15)
PDF
20130319勉強会
Akira Yoshiyama
PDF
CDP総選挙 2013
Kieko Sakurai
PPTX
これがCassandra
Takehiro Torigaki
PDF
PHPで大規模ブラウザゲームを開発してわかったこと
Kentaro Matsui
DOC
cassandra調査レポート
Akihiro Kuwano
PDF
Zabbix+group replication
bri nger
PDF
やりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまで
Daisuke Masubuchi
PDF
Cloudian update (Japanese:日本語)
CLOUDIAN KK
PPTX
Moot2013 moca ver0.3
科 黄
PDF
Cloudian nosql casestudy_20120318
CLOUDIAN KK
PDF
Azure Cosmos DB で始める Java + NoSQL 開発
Oshitari_kochi
PDF
Node.js で SPDYのベンチマーク体験サイトを作りました
shigeki_ohtsu
PDF
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Recruit Technologies
PDF
Nosqlの基礎知識(2013年7月講義資料)
CLOUDIAN KK
PDF
cassandra 100 node cluster admin operation
oranie Narut
20130319勉強会
Akira Yoshiyama
CDP総選挙 2013
Kieko Sakurai
これがCassandra
Takehiro Torigaki
PHPで大規模ブラウザゲームを開発してわかったこと
Kentaro Matsui
cassandra調査レポート
Akihiro Kuwano
Zabbix+group replication
bri nger
やりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまで
Daisuke Masubuchi
Cloudian update (Japanese:日本語)
CLOUDIAN KK
Moot2013 moca ver0.3
科 黄
Cloudian nosql casestudy_20120318
CLOUDIAN KK
Azure Cosmos DB で始める Java + NoSQL 開発
Oshitari_kochi
Node.js で SPDYのベンチマーク体験サイトを作りました
shigeki_ohtsu
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Recruit Technologies
Nosqlの基礎知識(2013年7月講義資料)
CLOUDIAN KK
cassandra 100 node cluster admin operation
oranie Narut
Similar to Asynchronous Messaging入門
(20)
PDF
20111215 12 aws-meister-sqs_sns_sdb-public
Amazon Web Services Japan
PDF
デザインパターンから見た AWS と Azure
Sunao Tomita
PDF
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
Trainocate Japan, Ltd.
PDF
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SORACOM, INC
PPTX
20121221 AWS re:Invent 凱旋報告
真吾 吉田
PDF
Azure reliability v0.2.21.0630
Ayumu Inaba
PDF
非エンジニアのための「今さら聞けない」AWS講座資料
NHN テコラス株式会社
PDF
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
Naoki (Neo) SATO
PPTX
Azure Antenna AI 概要
Miho Yamamoto
PPTX
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
GoAzure
PDF
[Microsoft Ignite 2020] CON130 ハイライト振り返り - Japan Session
日本マイクロソフト株式会社
PDF
CloudStack Overview(OSC2012Kansai@Kyoto)
Satoshi Shimazaki
PPTX
クラウドデザイン パターンに見るクラウドファーストなアプリケーション設計 Data Management編
Takekazu Omi
PPTX
Azure インフラの信頼性とガバナンス
Daisuke Masubuchi
PDF
AWS re:Invent2017で見た AWSの強さとは
NTT Communications Technology Development
PDF
20200414 Advanced Features in Amazon Elasticsearch Service
Amazon Web Services Japan
PDF
[de:code 2017] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう
Naoki (Neo) SATO
PDF
[DI04] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう
de:code 2017
PDF
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
Sunao Tomita
PDF
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...
Suguru Ito
20111215 12 aws-meister-sqs_sns_sdb-public
Amazon Web Services Japan
デザインパターンから見た AWS と Azure
Sunao Tomita
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
Trainocate Japan, Ltd.
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SORACOM, INC
20121221 AWS re:Invent 凱旋報告
真吾 吉田
Azure reliability v0.2.21.0630
Ayumu Inaba
非エンジニアのための「今さら聞けない」AWS講座資料
NHN テコラス株式会社
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
Naoki (Neo) SATO
Azure Antenna AI 概要
Miho Yamamoto
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
GoAzure
[Microsoft Ignite 2020] CON130 ハイライト振り返り - Japan Session
日本マイクロソフト株式会社
CloudStack Overview(OSC2012Kansai@Kyoto)
Satoshi Shimazaki
クラウドデザイン パターンに見るクラウドファーストなアプリケーション設計 Data Management編
Takekazu Omi
Azure インフラの信頼性とガバナンス
Daisuke Masubuchi
AWS re:Invent2017で見た AWSの強さとは
NTT Communications Technology Development
20200414 Advanced Features in Amazon Elasticsearch Service
Amazon Web Services Japan
[de:code 2017] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう
Naoki (Neo) SATO
[DI04] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう
de:code 2017
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
Sunao Tomita
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...
Suguru Ito
Ad
More from Tatsuaki Sakai
(7)
PDF
オトナのService Fabric~マイクロサービス編
Tatsuaki Sakai
PDF
Asynchronous Messaging入門(第4回実施分)
Tatsuaki Sakai
PDF
JAZUG 3周年LT
Tatsuaki Sakai
PDF
Vsugday2012 winter lt_sakai
Tatsuaki Sakai
PDF
Windows Azure AppFabric 第2章
Tatsuaki Sakai
PPTX
最新!Windows Azure Platformアプリケーション開発
Tatsuaki Sakai
PPTX
Vsugday2010 summer lt
Tatsuaki Sakai
オトナのService Fabric~マイクロサービス編
Tatsuaki Sakai
Asynchronous Messaging入門(第4回実施分)
Tatsuaki Sakai
JAZUG 3周年LT
Tatsuaki Sakai
Vsugday2012 winter lt_sakai
Tatsuaki Sakai
Windows Azure AppFabric 第2章
Tatsuaki Sakai
最新!Windows Azure Platformアプリケーション開発
Tatsuaki Sakai
Vsugday2010 summer lt
Tatsuaki Sakai
Ad
Recently uploaded
(10)
PDF
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
PDF
ABC2025S LT講演「世界の窓から Androidこんにちは2025」アプリ自動生成の将来?ロボティクスの夢再び?
嶋 是一 (Yoshikazu SHIMA)
PDF
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
PDF
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
PDF
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
PDF
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
PDF
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
PDF
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
PDF
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
ABC2025S LT講演「世界の窓から Androidこんにちは2025」アプリ自動生成の将来?ロボティクスの夢再び?
嶋 是一 (Yoshikazu SHIMA)
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
Asynchronous Messaging入門
1.
Asynchronous Messaging入門 株式会社 ランドコンピュータ 酒井
達明 JAZUGアドバイザー Microsoft MVP – Microsoft Azure Microsoft Regional Director
2.
クラウドデザインパターン こちらを想像した人、、、、素直に挙手をお願いします。 本シリーズは右側の本の内容を解説するセミナーです。
3.
AWSクラウドデザインパターン http://aws.clouddesignpattern.org/images/a/ac/Cdp-overview-org.png
4.
パターンの分類 • AWS – 基本 –
可用性を向上 – 動的コンテンツを処理 – 静的コンテンツを処理 – データをアップロード – リレーショナル データベース – 運用保守 – ネットワーク • Azure – 設計と実装 – 可用性 – データ管理 – パフォーマンスと スケーラビリティ – メッセージング – 回復性 – 管理と監視 – セキュリティ 5
5.
Azureのクラウドデザインパターンは何が違う • サービスの組合せパターンではなくアプリケーションのアーキテクチャに 言及 • クラウド上でアプリケーションを最適に実行するためのノウハウが満載 •
実際の事例等で実証済みのパターンが網羅 • サンプルコードの紹介によりインプリメントを例示 • 24のパターンと10のガイダンスから構成
6.
パターンとガイダンスについて • まずは「ガイダンス」から読んでください! • ガイダンスにはパターン成り立ちの基本的な考え方が網羅 •
書籍中では10項目のガイダンスが紹介 • Asynchronous Messaging • Autoscaling • Caching • Compute Partitioning • Data Consistency • Data Partitioning • Data Replication and Synchronization • Instrumentation and Telemetry • Multiple Datacenter Deployment • Service Metering
7.
各パターンの構成 • 課題と背景 – パターンが必要とされる課題と、その課題の持つ背景を解説 •
解決策 – パターンがどのように課題を解決するかを解説 • 問題と検討事項 – パターン適用時に必要となる検討事項や制約などを解説 • いつこのパターンを使うか – パターン適用が有効なケースを解説 • 例 – パターン実現のための実装例の解説とサンプルコードの掲載 • 関連するパターンとガイダンス • 追加情報
8.
Asynchronous = 非同期
9.
非同期のソリューション • 非同期のパラダイムは以前から – メインフレームにおける順序制御 –
EDIなどアプリケーション間連携 – サービス指向(SOA)におけるサービス統合
10.
ロングトランザクションの実現 フライトF2の 座席を予約 フライトF1 の座席をキ ャンセル フライトF2の 座席を予約 フライトF3の 座席を予約 ホテルH1の 部屋を予約 ホテルH2の 部屋を予約 フライトF2 の座席を キャンセル フライトF3 の座席を キャンセル ホテルH1 の部屋を キャンセル ホテルH2 の部屋を キャンセル 旅行プラン作成の操作手順 旅行プランをキャンセルする補正トランザクション 長時間トランザク ションの各手順の 逆向き操作を記録 逆向きの操作に対する ビジネスルールに適用 される補正ロジック 補正ロジック補正ロジック補正ロジック 補正ロジック 補正ロジック
11.
クラウドにおける非同期 • 従来のパラダイムが、従来以上の規模で発生 • 適切なスケーリングによるスループット確保 •
インターネットを介した環境下における耐障害性向上 • etc...
12.
密結合モデルの問題点 • 同期型の密結合モデル – 負荷集中による オーバーヘッド増大 –
単一障害点(SFP)の存在に よる信頼性の低下 – スケールアウトのメリット が不十分
13.
スケールメリットの問題 • クラウドサービスの持つ スケールメリットを活か せない – 無意味なインスタンス 分割とオーバーヘッド の作りこみ –
特定インスタンスへの 負荷集中によるスルー プットと信頼性の低下
14.
非同期化による負荷平準化 Webロール
15.
メッセージキューを使ったメッセージの送受信 • 送受信操作をサポートするバッファ • 合意されたフォーマットでメッセージを作成
16.
複数送受信者間でのメッセージキューの共有 • 単一のキューを複数の送受信者で共有 • スケールアウトされた送信者&受信者間でメッセージ処理が可能
17.
Microsoft Azureのメッセージキュー • Queueストレージ •
64KB以下のテキストメッセージを送受信 • 格納されたメッセージの生存期間は7日間 • キューの最大サイズは200TB • 作成可能なキューの数に制限なし • トランザクションサポートなし
18.
Queueストレージのエラーハンドリング Complete! 一定時間 非表示 一定時間経過後、 再度参照可能に
19.
Microsoft Azureのメッセージキュー • Service
Bus Queue • 256KB以下のメッセージを送受信 • 格納されたメッセージは永続化される • キューの最大サイズは5GB • パーティション分割時におけるキューの最大サイズは80GB(5×16) • 作成可能なキュー数は最大10,000/名前空間 (パーティション分割キューは最大100) • ローカルトランザクションをサポート
20.
QueueストレージとService Bus Queue の比較(一例) 比較条件
Microsoft Azure キュー Service Bus キュー 順序の保証 × ○ 先入れ先出し (FIFO) 配信保証 At-Least-Once At-Least-Once At-Most-Once トランザクションのサ ポート × ○ (ローカル トランザクションを使用) 受信動作 非ブロッキング ブロッキング (タイムアウトあり/なし) 非ブロッキング (.NET マネージ API のみを使用) 受信モード Peek & Lease Peek & Lock Receive & Delete 排他アクセス モード リース ベース ロック ベース リース/ロックの期間 30 秒 (既定) 7 日 (最大) 60 秒 (既定) リース/ロックの粒度 メッセージ レベル キュー レベル 一括受信 ○ メッセージ数 (最大 32) を明示的に指定) ○ (プレフェッチ プロパティを有効 orトランザクションを使用) 一括送信 × ○ (トランザクションまたはクライアント側のバッチ処理を使用) http://msdn.microsoft.com/ja-jp/library/hh767287.aspx
21.
Microsoft Azureのメッセージキュー • Service
Bus Topic / Subscription Subscription B 受信者 Topic送信者 Subscription C Subscription D Subscription A
22.
基本的なキューのパターン • 一方向メッセージング 送信者 受信者
23.
基本的なキューのパターン • リクエスト/レスポンスメッセージング 送信者A 送信者B 送信者A専用のレスポンスキュー 送信者B専用のレスポンスキュー 共有メッセージキュー 受信者
24.
基本的なキューのパターン • ブロードキャストメッセージング 受信者B用の Subscription 受信者A用の Subscription 受信者A 受信者B Topic送信者
25.
非同期メッセージングのシナリオ • ワークロードの分散 時間の掛かる処理を バックエンドで実行 時間の掛かる処理を 分離し応答性を向上
26.
非同期メッセージングのシナリオ • 時間的な分離 7:00~23:30受付毎日24時間 申込可能
27.
非同期メッセージングのシナリオ • 負荷分散 複数で 分散処理
28.
非同期メッセージングのシナリオ • 負荷平準化 ※「Queue-based Load
Leveling」パターンを参照
29.
非同期メッセージングのシナリオ • クロスプラットフォームの統合 オンプレミス Microsoft Azure
30.
非同期メッセージングのシナリオ • 遅延処理 ex.60分に1度起動して リクエスト処理
31.
非同期メッセージングのシナリオ • 高信頼性メッセージング 障害が発生しても 処理の継続が可能
32.
非同期メッセージングのシナリオ • 回復性のあるメッセージ処理 他の受信者による読 み込みをブロック ※キューにメッセージのロック機能があること • Azure
Service Bus キューにはPeek/Lockモードが存在 • AzureキューストレージはメッセージのPeekが可能
33.
非同期メッセージングのシナリオ • ブロックされない受信者 ロック中において 他の受信者による Peek(覗き見)を許可
34.
Scheduler Agent supervisorパターン
35.
実装に関する検討事項 • メッセージの順序性 – メッセージの順序性は必ずしも保証されない –
AzureではService Bus Queueのみ順序性を保証 – Priority Queueパターンでは、特定のメッセージが優先 配信されることを保証するメカニズムを提供
36.
Priority Queueパターン コンシュマー アプリケーション 3 2 2 1 11 33 優先度1のメッセージに対応するメッセージキュー 優先度2のメッセージに対応するメッセージキュー 優先度3のメッセージに対応するメッセージキュー
37.
実装に関する検討事項 • メッセージのグループ化 – 理想的にはすべてのメッセージは独立すべき –
要件上の制約で複数のメッセージをグループ化する場合 • 大容量のメッセージを分割する必要がある場合 • 複数の独立したメッセージをセットで利用する必要がある場合 – Service Bus QueueではSession IDが利用可能 • プロパティを指定 • 関連するメッセージをセッションに配置 • 同一Session IDを持つメッセージはロックされ他ユーザからの 参照をブロック
38.
実装に関する検討事項 • 冪(べき)等性 – 同じメッセージが複数回配信される可能性がある •
処理の大半が完了しているタイミングでの障害発生等 • 同じ処理を繰り返しても同じ結果が得られるように – 冪等性を実現するためのアイディア例 • メッセージにユニークなIDを付与 • メッセージ処理開始時点で状態ストアへ処理状態を問い合わせ • 存在しない場合に当該メッセージIDを「処理中」として記録 • 既に処理中である場合、処理中止 or 補正トランザクション実行 • 処理完了時に状態ストアをクリア
39.
実装に関する検討事項 • 反復メッセージ – 同じメッセージが複数回送信される事象の回避 •
送信者がメッセージ送信後の処理で失敗した場合など – Azure Service Busキューの重複除去機能 • メッセージに固有のIDを付与 • ポストされたメッセージIDのリストを記録 • リストを走査し、重複メッセージのポストを排除
40.
実装に関する検討事項 • ポイズンメッセージ – 受信者の処理が失敗するようなメッセージ •
不正なフォーマット • 想定外の情報を含む – Azure Service Busキューでのポイズンメッセージ検出 • メッセージ受信回数をカウント • 受信回数が閾値を超えた場合にメッセージをキューから削除
41.
実装に関する検討事項 • メッセージの有効期限 – 長期間残存するメッセージの扱い •
処理に無関係な場合も • 適宜削除すべき – Azure ストレージキューは最大7日間の期限 – Azure Service Busキューは無期限 • メッセージ属性に有効期限を設定 • 有効期限切れのメッセージは配信不能キューへ移動
42.
実装に関する検討事項 • メッセージのスケジューリング – メッセージが指定日時まで処理されないよう制限 –
AzureストレージおよびAzure Service Busキューには メッセージ有効化の日時指定が可能 • 送信時に有効にする日時を指定 • 指定時間になるまで非表示 • アクセス可能な日時以降は直ちに取得可能 • 但し、Azureストレージは最大7日以内
43.
関連するパターンとガイダンス • Autoscalingパターン • Circuit
Breakerパターン • Competing Consumersパターン • Priority Queueパターン • Queue-Based Load Levelingパターン • Retryパターン • Scheduler Agent supervisorパターン
Download