Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
MQ(メッセージキュー)入門
Search
HIRA
June 25, 2019
Technology
0
760
MQ(メッセージキュー)入門
2019.6.25 社内勉強会発表資料
2022.5.21 SlideShareから移行
HIRA
June 25, 2019
Tweet
Share
More Decks by HIRA
See All by HIRA
脱VM!リモートコンテナによる開発
hira
0
910
AWS CloudFormationによる Infrastructure as Codeの実現
hira
0
190
マイクロサービス化に向けて
hira
0
160
CI(継続的インテグレーション)
hira
0
89
Other Decks in Technology
See All in Technology
re:Invent2025 3つの Frontier Agents を紹介 / introducing-3-frontier-agents
tomoki10
0
410
Bedrock AgentCore Memoryの新機能 (Episode) を試してみた / try Bedrock AgentCore Memory Episodic functionarity
hoshi7_n
2
1.8k
Strands Agents × インタリーブ思考 で変わるAIエージェント設計 / Strands Agents x Interleaved Thinking AI Agents
takanorig
5
2k
Entity Framework Core におけるIN句クエリ最適化について
htkym
0
120
たまに起きる外部サービスの障害に備えたり備えなかったりする話
egmc
0
410
Amazon Quick Suite で始める手軽な AI エージェント
shimy
1
1.8k
Authlete で実装する MCP OAuth 認可サーバー #CIMD の実装を添えて
watahani
0
170
ハッカソンから社内プロダクトへ AIエージェント ko☆shi 開発で学んだ4つの重要要素
leveragestech
0
130
Introduce marp-ai-slide-generator
itarutomy
0
110
202512_AIoT.pdf
iotcomjpadmin
0
140
JEDAI認定プログラム JEDAI Order 2026 エントリーのご案内 / JEDAI Order 2026 Entry
databricksjapan
0
180
まだ間に合う! Agentic AI on AWSの現在地をやさしく一挙おさらい
minorun365
17
2.7k
Featured
See All Featured
BBQ
matthewcrist
89
9.9k
Reality Check: Gamification 10 Years Later
codingconduct
0
1.9k
Crafting Experiences
bethany
0
22
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
400
A better future with KSS
kneath
240
18k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
28
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
60
38k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
130
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
57
37k
Transcript
MQ(メッセージキュー)入門 平田憲司 2019.6.25 クラウド・マイクロサービス勉強会(第2回)
自己紹介 平田憲司 主な担当:アーキテクチャ設計、基盤構築 https://qiita.com/kj_hira Qiita クラウド・マイクロサービス勉強(第二回)
アジェンダ 1. MQとは? 2. MQの特徴 3. MQミドルウェア 4. 事例紹介 5.
困ったこと クラウド・マイクロサービス勉強(第二回)
1.MQとは? 2. MQの特徴 3. MQミドルウェア 4. 事例紹介 5. 困ったこと クラウド・マイクロサービス勉強(第二回)
MQとは? メッセージキュー。非同期型通信プロトコル。 システム間でメッセージのやりとりを行う際に利用する。 主に、マイクロサービスアーキテクチャや分散処理システムの非同期通信に おいて利用される。 とても歴史のある技術。 クラウド・マイクロサービス勉強(第二回)
メッセージキューを使わない場合の例 MQとは? Aさんは、Bさんに直接仕事を依頼する。 Bさんが忙しいときは、Aさんは待っていないといけない。 Aさん Bさん クラウド・マイクロサービス勉強(第二回)
メッセージキューを使った場合の例 MQとは? Aさんは、机に仕事の依頼物を置いておく。Bさんは都合の良いタ イミングで机から依頼物を受け取る。 Bさんが忙しいときでも、Aさんは待つ必要が無い。 Aさん Bさん 机 クラウド・マイクロサービス勉強(第二回)
MQのメリット① 柔軟に非同期連携できる 受信側が送信側の都合に合わせなくて良い。 送信側は好きなタイミングで好きな量を送り、受信側は好きなタイミングで好 きな量を受信できる。 送信側 受信側 MQ クラウド・マイクロサービス勉強(第二回)
MQのメリット② 障害に強い 受信側のシステムが停止しても、送信側に影響しない。 送信側はキューに送信し続けられる。 クラウドとオンプレのネットワーク障害の際に役立つ。 (注意:送信側の環境にMQを用意する必要がある) 送信側 受信側 MQ クラウド・マイクロサービス勉強(第二回)
MQのメリット③ システム間の依存関係を排除できる 非同期連携することができるため、送信側と受信側の依存関係を排除できる。 マイクロサービス化で必要となるシステム間の疎結合化が実現できる。 送信側 受信側 MQ クラウド・マイクロサービス勉強(第二回)
1. MQとは? 2.MQの特徴 3. MQミドルウェア 4. 事例紹介 5. 困ったこと クラウド・マイクロサービス勉強(第二回)
MQの特徴 • Pub/Subメッセージ • FIFO • 遅延キュー • 優先順位 •
ロック • DLQ(デッドレターキュー) クラウド・マイクロサービス勉強(第二回)
MQの特徴 Pub/Subメッセージ 1つのメッセージを複数の受け手に送信でき、かつ並列に処理させられる。 ファンアウト設計パターンを適用できる。 参考:Fanoutパターン http://aws.clouddesignpattern.org/index.php/CDP:Fanout%E3%83%91%E3%82%BF%E3%83 %BC%E3%83%B3 サムネイル生成 メタデータスキャン 画像認識
トピック MQ MQ MQ 送信側 publisher subscriber クラウド・マイクロサービス勉強(第二回)
MQ MQの特徴 FIFO(First In First Out) MQの設定で送信した順で受信されるようにできる。 デフォルトでは、順不同であることが多い。 送信側 受信側
5 4 3 2 1 クラウド・マイクロサービス勉強(第二回)
MQの特徴 遅延キュー メッセージの配信を指定の時間分遅らせることができる。 例えば、送信元の処理が完了した頃に実行してほしい場合などに利用 クラウド・マイクロサービス勉強(第二回)
MQの特徴 優先順位 キューに対し、優先度を設定できる。 例えば、一般ユーザーよりプレミアム(有料会員)ユーザーの処理を優先させ たい場合などに活用できる 4 2 1 5 3
一般会員 有料会員 クラウド・マイクロサービス勉強(第二回)
MQの特徴 メッセージのロック 受信したメッセージが処理されている間、他からメッセージを同時に処理され ることを防ぐためロックすることができる。 受信側A 受信側B クラウド・マイクロサービス勉強(第二回)
MQの特徴 DLQ(デッドレターキュー) 規定回数受信に失敗した場合、メッセージを退避させる。 受信側 DLQ 退避したキューはリトライ処理によって後で処理する。 クラウド・マイクロサービス勉強(第二回)
1. MQとは? 2. MQの特徴 3.MQミドルウェア 4. 事例紹介 5. 困ったこと クラウド・マイクロサービス勉強(第二回)
代表的なMQミドルウェア • ActiveMQ (Apache) • RabbitMQ (Pvotal) • Amazon SQS
(AWS) など その他、多くのミドルウェアがある。 クラウド・マイクロサービス勉強(第二回)
1. MQとは? 2. MQの特徴 3. MQミドルウェア 4.事例紹介 5. 困ったこと クラウド・マイクロサービス勉強(第二回)
オンプレ 事例紹介① - クラウドとオンプレのデータ連携 連携元 MQ クラウド 連携先 ETL クラウド・マイクロサービス勉強(第二回)
事例紹介② - 画像OCR変換API API(受付) OCR処理 MQ ストレージ DB 画像 クラウド・マイクロサービス勉強(第二回)
API Gateway Lambda SQS API Gateway Lambda 変換リクエスト 結果リクエスト S3
EC2 画像 CSV DynamoDB 履歴情報 変換結果 非同期 ポーリング キュー情報 ストレージ 事例紹介② - 画像OCR変換API (AWSアーキテクチャ例) クラウド・マイクロサービス勉強(第二回)
1. MQとは? 2. MQの特徴 3. MQミドルウェア 4. 事例紹介 5.困ったこと クラウド・マイクロサービス勉強(第二回)
困ったこと 順序保証が必要なケース DLQに入ったデータと同じ更新対象のデータが処理されるような場合。 後続データが先に処理されてしまい、失敗したデータをリトライしてしまうと巻き戻ることに。 対応方法としては、タイムスタンプ(更新日時)も合わせて持たせ、更新対象のデータ と比較して処理するか判定させた。 クラウド・マイクロサービス勉強(第二回)
困ったこと 並列処理の完了を監視する必要があるケース 各処理が完了したかDBなどでステータス管理する必要がある。 処理A 処理C 処理B MQ MQ MQ 他に良い方法があればぜひ教えてください
クラウド・マイクロサービス勉強(第二回)
まとめ • システム間で非同期連携する際に有効な通信方式の1つ • システム間の依存関係を排除でき障害にも強く、マイクロサービス化において必要な技術 クラウド・マイクロサービス勉強(第二回)