そんな mq で大丈夫か? - janog | japan network … (activemq) stomp (newtmq) kafka how mq...
TRANSCRIPT
そんな MQ で大丈夫か?ーより良い MQ の使い所を考えるー
大山 裕泰 (株式会社 DMM.com Labo) 伊東 宏起 (さくらインターネット株式会社)
浅野 航平 (株式会社ワークスアプリケーションズ)
JANOG38/day3
はじめに
セッションの目的▸ ユースケースに適した MQ ソリューションの勘所を掴む
▸ MQ 技術について興味を持っていただく
2
はじめに
全体セッション概要▸ 前提 (MessageQueue) 技術の共有
MQ がどういうもので、何故必要なのかについて紹介
▸ MQ の運用手法について共有ネットワーク機器の運用で利用されている事例 (伊東さん)
ERP システムで利用されている事例 (浅野さん)
3
はじめに
議論のポイント▸ 紹介する利用事例について、
他の MQ や MQ 以外のソリューションは無いのか?
▸ 今まで別のソリューションを使っているケースにおいて、MQ が使えないか?
4
自己紹介
大山 裕泰 (OHYAMA HIROYASU) / SOFTWARE ENGINEER
▸ 職歴Ariel Networks (現 Works Applications) > GREE > DMM.com Labo
▸ 登壇歴JANOG33 ゴチャゴチャネットワークの可視化・OAM ~みんなどうやってるの?~
JANOG34 DCネットワークの新時代? ―ホワイトボックススイッチの利用可否―
5
SO, WHAT IS MQ ?
6
7
▸ プロセス同士の Message Passing をサポートする仕組み- Queuing モデル
- Pub/Sub モデル
前提技術の共有
WHAT IS MQ ?
PROCESS A
BROKER
PROCESS B
PUBLISHER SUBSCRIBER B
SUBSCRIBER A
SUBSCRIBER C
BROKER
8
▸ プロセス同士の Message Passing をサポートする仕組み- Queuing モデル
プロセス間で非同期なデータ転送をサポート (両プロセスが同時に起動していない場合の Message Passing を成立させる)
前提技術の共有
WHAT IS MQ ?
PROCESS A PROCESS BBROKER
▸ プロセス同士の Message Passing をサポートする仕組み- Pub/Sub モデル
“トピック” を共有する複数プロセス間データ転送をサポート(Subscriber の存在を認知さずにデータ配送を実現させる)
9前提技術の共有
WHAT IS MQ ?
PUBLISHER SUBSCRIBER B
SUBSCRIBER A
SUBSCRIBER C
BROKER
WHY MQ ?
10
もし MQ が無かったら…11
前提技術の共有
WHY MQ ?
SERVICE A SERVICE B
SERVICE E SERVICE D
REQUEST
SERVICE C
▸ MQ がない世界
12
前提技術の共有
WHY MQ ?
SERVICE A SERVICE BREQUEST
SERVICE E SERVICE D SERVICE C
DATAREQUEST ”REQUEST ”
13
▸ MQ がない世界
前提技術の共有
WHY MQ ?
SERVICE A SERVICE BREQUEST
SERVICE E SERVICE D SERVICE C
DATA
IF THIS IS STOPPED...
WHAT SHOULD IT DO ..?
REQUEST ”REQUEST ”
14
▸ MQ がない世界
前提技術の共有
WHY MQ ?
SERVICE A SERVICE BREQUEST
SERVICE E SERVICE D SERVICE C
DATA
SERVICE F
A NEW SERVICE IS APPEARED !!
REQUEST ”REQUEST ” WHAT SHOULD IT DO ..??
15
▸ MQ がない世界
MQ がある世界
16
前提技術の共有
WHY MQ ?
SERVICE A SERVICE B
MQ
SERVICE C
▸ MQ がある世界
SERVICE E SERVICE D
REQUEST REQUEST
17
前提技術の共有
WHY MQ ?
SERVICE A SERVICE B
MQ
SERVICE E SERVICE D SERVICE C
▸ MQ がある世界
DATA
REQUEST ”REQUEST ”
REQUEST REQUEST
REQUEST ”
18
前提技術の共有
WHY MQ ?
SERVICE A SERVICE B
MQ
SERVICE E SERVICE D SERVICE C
▸ MQ がある世界
19
DATA
REQUEST REQUEST
REQUEST ”
IF THIS IS STOPPED...
REQUEST ”REQUEST ”
OK, NO PROBLEM
前提技術の共有
WHY MQ ?
SERVICE A SERVICE B
MQ
SERVICE E SERVICE D SERVICE C
▸ MQ がある世界
20
DATA
REQUEST ”REQUEST ”
REQUEST REQUEST
REQUEST ”
SERVICE F
REQUEST ”
A NEW SERVICE IS APPEARED !!
OK, NO PROBLEM
前提技術の共有
WHY MQ ?
▸ 大規模分散システムのモデルを単純化できる - システムを High Available にできる- システムを Scalable にできる
21
OVERVIEW OF MQ
22
前提技術の共有
OVERVIEW
▸ 各種プロトコルと実装について
23
Queuing Pub/Sub
AMQP (RabbitMQ) ◯ ◯
MQTT (ActiveMQ) ❌ ◯
STOMP (NewtMQ) ◯ △
Kafka ◯ ◯
HOW MQ USE ?
24