SlideShare a Scribd company logo
Submit Search
Upload
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Report
Share
Yahoo!デベロッパーネットワーク
Public Relations
Follow
•
10 likes
•
24,317 views
1
of
49
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
•
10 likes
•
24,317 views
Report
Share
Download Now
Download to read offline
Technology
JJUG ナイトセミナー 「メッセージングミドルウェア特集」のRabbitMQの発表資料です。 https://jjug.doorkeeper.jp/events/65028
Read more
Yahoo!デベロッパーネットワーク
Public Relations
Follow
Recommended
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料) by
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
11.8K views
•
63 slides
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー by
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
37K views
•
53 slides
Dockerからcontainerdへの移行 by
Dockerからcontainerdへの移行
Akihiro Suda
7.5K views
•
36 slides
ストリーム処理を支えるキューイングシステムの選び方 by
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
40.2K views
•
42 slides
Serverless時代のJavaについて by
Serverless時代のJavaについて
Amazon Web Services Japan
12.9K views
•
90 slides
本当は恐ろしい分散システムの話 by
本当は恐ろしい分散システムの話
Kumazaki Hiroki
686K views
•
70 slides
More Related Content
What's hot
Javaのログ出力: 道具と考え方 by
Javaのログ出力: 道具と考え方
Taku Miyakawa
74.3K views
•
67 slides
分散システムについて語らせてくれ by
分散システムについて語らせてくれ
Kumazaki Hiroki
119.4K views
•
45 slides
エンジニアの個人ブランディングと技術組織 by
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
23.3K views
•
40 slides
Dockerからcontainerdへの移行 by
Dockerからcontainerdへの移行
Kohei Tokunaga
16.6K views
•
36 slides
Redisの特徴と活用方法について by
Redisの特徴と活用方法について
Yuji Otani
101.5K views
•
65 slides
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52 by
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo!デベロッパーネットワーク
11.3K views
•
90 slides
What's hot
(20)
Javaのログ出力: 道具と考え方 by Taku Miyakawa
Javaのログ出力: 道具と考え方
Taku Miyakawa
•
74.3K views
分散システムについて語らせてくれ by Kumazaki Hiroki
分散システムについて語らせてくれ
Kumazaki Hiroki
•
119.4K views
エンジニアの個人ブランディングと技術組織 by Takafumi ONAKA
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
•
23.3K views
Dockerからcontainerdへの移行 by Kohei Tokunaga
Dockerからcontainerdへの移行
Kohei Tokunaga
•
16.6K views
Redisの特徴と活用方法について by Yuji Otani
Redisの特徴と活用方法について
Yuji Otani
•
101.5K views
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52 by Yahoo!デベロッパーネットワーク
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo!デベロッパーネットワーク
•
11.3K views
分散トレーシング技術について(Open tracingやjaeger) by NTT Communications Technology Development
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
•
23.3K views
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善 by Ito Takayuki
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
Ito Takayuki
•
528 views
世界一わかりやすいClean Architecture by Atsushi Nakamura
世界一わかりやすいClean Architecture
Atsushi Nakamura
•
47.1K views
BuildKitの概要と最近の機能 by Kohei Tokunaga
BuildKitの概要と最近の機能
Kohei Tokunaga
•
4.6K views
Dockerfile を書くためのベストプラクティス解説編 by Masahito Zembutsu
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
•
84.4K views
例外設計における大罪 by Takuto Wada
例外設計における大罪
Takuto Wada
•
68.5K views
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス by Amazon Web Services Japan
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
•
56.6K views
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp by Yahoo!デベロッパーネットワーク
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
•
13.3K views
Linux女子部 systemd徹底入門 by Etsuji Nakai
Linux女子部 systemd徹底入門
Etsuji Nakai
•
137.9K views
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな by Amazon Web Services Japan
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
Amazon Web Services Japan
•
5.6K views
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤 by Amazon Web Services Japan
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Amazon Web Services Japan
•
5.1K views
DockerとKubernetesをかけめぐる by Kohei Tokunaga
DockerとKubernetesをかけめぐる
Kohei Tokunaga
•
3.6K views
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理 by NTT DATA Technology & Innovation
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
NTT DATA Technology & Innovation
•
12.9K views
AWSのログ管理ベストプラクティス by Akihiro Kuwano
AWSのログ管理ベストプラクティス
Akihiro Kuwano
•
77.2K views
Viewers also liked
RabbitMQ by
RabbitMQ
Masahito Ikuta
7.4K views
•
144 slides
MQTTとAMQPと.NET by
MQTTとAMQPと.NET
terurou
39.8K views
•
41 slides
Jenkins 2.0 Pipeline & Blue Ocean by
Jenkins 2.0 Pipeline & Blue Ocean
Akihiko Horiuchi
11.5K views
•
22 slides
メッセージキュー「Pulsar」の紹介 @OSC_20171007 by
メッセージキュー「Pulsar」の紹介 @OSC_20171007
Nozomi Kurihara
1.1K views
•
63 slides
Ansibleで始めるインフラ構築自動化 by
Ansibleで始めるインフラ構築自動化
dcubeio
56.1K views
•
63 slides
Jenkins 2.0 最新事情 〜Make Jenkins Great Again〜 by
Jenkins 2.0 最新事情 〜Make Jenkins Great Again〜
Jumpei Miyata
7.4K views
•
92 slides
Viewers also liked
(6)
RabbitMQ by Masahito Ikuta
RabbitMQ
Masahito Ikuta
•
7.4K views
MQTTとAMQPと.NET by terurou
MQTTとAMQPと.NET
terurou
•
39.8K views
Jenkins 2.0 Pipeline & Blue Ocean by Akihiko Horiuchi
Jenkins 2.0 Pipeline & Blue Ocean
Akihiko Horiuchi
•
11.5K views
メッセージキュー「Pulsar」の紹介 @OSC_20171007 by Nozomi Kurihara
メッセージキュー「Pulsar」の紹介 @OSC_20171007
Nozomi Kurihara
•
1.1K views
Ansibleで始めるインフラ構築自動化 by dcubeio
Ansibleで始めるインフラ構築自動化
dcubeio
•
56.1K views
Jenkins 2.0 最新事情 〜Make Jenkins Great Again〜 by Jumpei Miyata
Jenkins 2.0 最新事情 〜Make Jenkins Great Again〜
Jumpei Miyata
•
7.4K views
Similar to 実運用して分かったRabbit MQの良いところ・気をつけること #jjug
僕とヤフーと時々Teradata #prestodb by
僕とヤフーと時々Teradata #prestodb
Yahoo!デベロッパーネットワーク
2.3K views
•
47 slides
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2 by
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
Yahoo!デベロッパーネットワーク
8.4K views
•
64 slides
Hive on Tezのベストプラクティス by
Hive on Tezのベストプラクティス
Yahoo!デベロッパーネットワーク
3.5K views
•
40 slides
LLVM overview 20110122 by
LLVM overview 20110122
nothingcosmos
2.8K views
•
32 slides
組み込み入門 by
組み込み入門
Yuki Suga
1.4K views
•
84 slides
組み込み入門 by
組み込み入門
Yuki Suga
7.4K views
•
84 slides
Similar to 実運用して分かったRabbit MQの良いところ・気をつけること #jjug
(20)
僕とヤフーと時々Teradata #prestodb by Yahoo!デベロッパーネットワーク
僕とヤフーと時々Teradata #prestodb
Yahoo!デベロッパーネットワーク
•
2.3K views
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2 by Yahoo!デベロッパーネットワーク
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
Yahoo!デベロッパーネットワーク
•
8.4K views
Hive on Tezのベストプラクティス by Yahoo!デベロッパーネットワーク
Hive on Tezのベストプラクティス
Yahoo!デベロッパーネットワーク
•
3.5K views
LLVM overview 20110122 by nothingcosmos
LLVM overview 20110122
nothingcosmos
•
2.8K views
組み込み入門 by Yuki Suga
組み込み入門
Yuki Suga
•
1.4K views
組み込み入門 by Yuki Suga
組み込み入門
Yuki Suga
•
7.4K views
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築 by CROOZ, inc.
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築
CROOZ, inc.
•
50.1K views
HeapStats: Introduction and Technical Preview by Yuji Kubota
HeapStats: Introduction and Technical Preview
Yuji Kubota
•
2.7K views
System Center Operations Managerによる仮想環境の高度な管理 by junichi anno
System Center Operations Managerによる仮想環境の高度な管理
junichi anno
•
1.6K views
Gitと出会って人生変わった テックヒルズ2013-03-22 by Shota Umeda
Gitと出会って人生変わった テックヒルズ2013-03-22
Shota Umeda
•
5.6K views
エンジニアという職業について by Hisatoshi Kikumoto
エンジニアという職業について
Hisatoshi Kikumoto
•
2.5K views
Lagopus Project (Open Source Conference) by Tomoya Hibi
Lagopus Project (Open Source Conference)
Tomoya Hibi
•
217 views
JSNAPyとPyEZで作る次世代ネットワークオペレーションの可能性 by Taiji Tsuchiya
JSNAPyとPyEZで作る次世代ネットワークオペレーションの可能性
Taiji Tsuchiya
•
3.2K views
多言語を一つの処理系でハイパフォーマンスに実行するGraalPythonの紹介 by Tamakoshi Hironori
多言語を一つの処理系でハイパフォーマンスに実行するGraalPythonの紹介
Tamakoshi Hironori
•
829 views
全部入り!WGPで高速JavaScript+HML5体験 by AdvancedTechNight
全部入り!WGPで高速JavaScript+HML5体験
AdvancedTechNight
•
1.8K views
泥臭い運用から、プログラマブルインフラ構築(に行きたい) by Akihiro Kuwano
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano
•
4K views
Riakを利用したパーソナライズ事例 by Yahoo!デベロッパーネットワーク
Riakを利用したパーソナライズ事例
Yahoo!デベロッパーネットワーク
•
7K views
オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介 by Kodai Terashima
オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介
Kodai Terashima
•
4.7K views
【Interop Tokyo 2015】最新セキュリティサーベイからみるトレンドと解決策 by Juniper Networks (日本)
【Interop Tokyo 2015】最新セキュリティサーベイからみるトレンドと解決策
Juniper Networks (日本)
•
2.7K views
YJTC18 A-1 大規模サーバの戦略 by Yahoo!デベロッパーネットワーク
YJTC18 A-1 大規模サーバの戦略
Yahoo!デベロッパーネットワーク
•
3.3K views
More from Yahoo!デベロッパーネットワーク
ゼロから始める転移学習 by
ゼロから始める転移学習
Yahoo!デベロッパーネットワーク
13.1K views
•
132 slides
継続的なモデルモニタリングを実現するKubernetes Operator by
継続的なモデルモニタリングを実現するKubernetes Operator
Yahoo!デベロッパーネットワーク
4.9K views
•
35 slides
ヤフーでは開発迅速性と品質のバランスをどう取ってるか by
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
Yahoo!デベロッパーネットワーク
1.2K views
•
24 slides
オンプレML基盤on Kubernetes パネルディスカッション by
オンプレML基盤on Kubernetes パネルディスカッション
Yahoo!デベロッパーネットワーク
2K views
•
18 slides
LakeTahoe by
LakeTahoe
Yahoo!デベロッパーネットワーク
1.7K views
•
28 slides
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜 by
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
Yahoo!デベロッパーネットワーク
1.7K views
•
35 slides
More from Yahoo!デベロッパーネットワーク
(20)
ゼロから始める転移学習 by Yahoo!デベロッパーネットワーク
ゼロから始める転移学習
Yahoo!デベロッパーネットワーク
•
13.1K views
継続的なモデルモニタリングを実現するKubernetes Operator by Yahoo!デベロッパーネットワーク
継続的なモデルモニタリングを実現するKubernetes Operator
Yahoo!デベロッパーネットワーク
•
4.9K views
ヤフーでは開発迅速性と品質のバランスをどう取ってるか by Yahoo!デベロッパーネットワーク
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
Yahoo!デベロッパーネットワーク
•
1.2K views
オンプレML基盤on Kubernetes パネルディスカッション by Yahoo!デベロッパーネットワーク
オンプレML基盤on Kubernetes パネルディスカッション
Yahoo!デベロッパーネットワーク
•
2K views
LakeTahoe by Yahoo!デベロッパーネットワーク
LakeTahoe
Yahoo!デベロッパーネットワーク
•
1.7K views
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜 by Yahoo!デベロッパーネットワーク
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
Yahoo!デベロッパーネットワーク
•
1.7K views
Persistent-memory-native Database High-availability Feature by Yahoo!デベロッパーネットワーク
Persistent-memory-native Database High-availability Feature
Yahoo!デベロッパーネットワーク
•
5.8K views
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2 by Yahoo!デベロッパーネットワーク
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
Yahoo!デベロッパーネットワーク
•
7.8K views
eコマースと実店舗の相互利益を目指したデザイン #yjtc by Yahoo!デベロッパーネットワーク
eコマースと実店舗の相互利益を目指したデザイン #yjtc
Yahoo!デベロッパーネットワーク
•
2.2K views
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc by Yahoo!デベロッパーネットワーク
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
Yahoo!デベロッパーネットワーク
•
1.9K views
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc by Yahoo!デベロッパーネットワーク
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo!デベロッパーネットワーク
•
2.2K views
ビッグデータから人々のムードを捉える #yjtc by Yahoo!デベロッパーネットワーク
ビッグデータから人々のムードを捉える #yjtc
Yahoo!デベロッパーネットワーク
•
1.8K views
サイエンス領域におけるMLOpsの取り組み #yjtc by Yahoo!デベロッパーネットワーク
サイエンス領域におけるMLOpsの取り組み #yjtc
Yahoo!デベロッパーネットワーク
•
2.1K views
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc by Yahoo!デベロッパーネットワーク
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
Yahoo!デベロッパーネットワーク
•
2.1K views
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc by Yahoo!デベロッパーネットワーク
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo!デベロッパーネットワーク
•
2.3K views
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc by Yahoo!デベロッパーネットワーク
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
Yahoo!デベロッパーネットワーク
•
1.9K views
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc by Yahoo!デベロッパーネットワーク
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
Yahoo!デベロッパーネットワーク
•
1.9K views
モブデザインによる多職種チームのコミュニケーション改善 #yjtc by Yahoo!デベロッパーネットワーク
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
Yahoo!デベロッパーネットワーク
•
2.2K views
「新しいおうち探し」のためのAIアシスト検索 #yjtc by Yahoo!デベロッパーネットワーク
「新しいおうち探し」のためのAIアシスト検索 #yjtc
Yahoo!デベロッパーネットワーク
•
2.1K views
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc by Yahoo!デベロッパーネットワーク
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
Yahoo!デベロッパーネットワーク
•
2K views
Recently uploaded
JJUG CCC.pptx by
JJUG CCC.pptx
Kanta Sasaki
6 views
•
14 slides
Web3 Career_クレデン資料 .pdf by
Web3 Career_クレデン資料 .pdf
nanamatsuo
14 views
•
9 slides
SNMPセキュリティ超入門 by
SNMPセキュリティ超入門
mkoda
175 views
•
15 slides
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化 by
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
Knowledge & Experience
8 views
•
34 slides
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
13 views
•
38 slides
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
NTT DATA Technology & Innovation
73 views
•
42 slides
Recently uploaded
(11)
JJUG CCC.pptx by Kanta Sasaki
JJUG CCC.pptx
Kanta Sasaki
•
6 views
Web3 Career_クレデン資料 .pdf by nanamatsuo
Web3 Career_クレデン資料 .pdf
nanamatsuo
•
14 views
SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門
mkoda
•
175 views
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化 by Knowledge & Experience
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
Knowledge & Experience
•
8 views
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
•
13 views
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
NTT DATA Technology & Innovation
•
73 views
さくらのひやおろし2023 by 法林浩之
さくらのひやおろし2023
法林浩之
•
91 views
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development site
Atomu Hidaka
•
71 views
SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdf
icebreaker4
•
172 views
01Booster Studio ご紹介資料 by ssusere7a2172
01Booster Studio ご紹介資料
ssusere7a2172
•
300 views
The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.
•
41 views
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
1.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 祖父江 翔 実運用して分かったRabbitMQの 良いところ・気をつけること 2017年9月27日
2.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 自己紹介 祖父江 翔(そぶえ しょう) マーケティングソリューションズカンパニー開発本部 新卒入社7年目 配属されてからずっと広告関連の開発 入稿→アカウント→開発基盤 2
3.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 本日の内容 • Rabbit MQとは • 広告システム内でのRabbit MQ • 導入前の課題 • 動機 • 良いところ • 気をつけること • 構成 • プロビジョニング • 保守・運用 • まとめ 3
4.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . RabbitMQとは
5.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . RabbitMQ RabbitMQ is the most widely deployed open source message broker. With more than 35,000 production deployments of RabbitMQ world-wide at small startups and large enterprises, RabbitMQ is the most popular open source message broker. RabbitMQ is lightweight and easy to deploy on premises and in the cloud. It supports multiple messaging protocols. RabbitMQ can be deployed in distributed and federated configurations to meet high-scale, high-availability requirements. 5 RabbitMQ - Messaging that just works, https://www.rabbitmq.com/ トップページより引用
6.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 要はRabbitMQとは • オープンソースのメッセージブローカー • 軽量でデプロイをオンプレミスでも クラウドでも利用可能 • 複数のメッセージプロトコル対応 • スタンドアローンでもクラスタでも構築可能 6
7.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 多言語サポート • 公式で用意されているのは Erlang, Java, C#のみ • Ruby, Python, PHPなど提供 7 Clients & Developer Tools, https://www.rabbitmq.com/devtools.html
8.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . PluginやAPI • Pluginが豊富 • 基本機能以外の付け足しが可能 • プロトコルや認証機能の追加が可能 • 管理画面の導入で運用負荷の軽減も可能 • APIが用意されている • リソースやトラフィックの監視が可能 8 Plugins, https://www.rabbitmq.com/plugins.html
9.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . Management Plugin 9
10.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 広告システム内での Rabbit MQ
11.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 広告システム 11 FE BEサーバ群 広告配信システム 広告主が出稿 配信面 非同期化部分
12.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . RabbitMQ導入前の課題 • ブローカーのないキュー管理の仕組みを利用 • 接続の管理が面倒 • 接続設定の修正が職人芸(気軽にできない) • ProducerとConsumerを気軽に追加できない 12
13.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 導入前(設定つらい…) 13 BE APIサーバ 配信システム連携バッチ
14.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . キュー管理の仕組みに求めたこと • PHPとJavaで同時に運用できること • 耐障害性があること • ConsumerやProducerを容易に追加できること • スループットが高いこと • 広告入稿のリクエストに耐えられること • 処理単位でルーティングができること 14
15.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . RabbitMQを採用 • AMQPで動作する • クライアントライブラリがある • JavaでもPHPでも動作するため、並行期間を設けられる • クラスタを容易に構築できる • ブローカーのスケールアウトができる • ProducerとConsumerが容易に追加できる • トピックとキーでルーティングが可能 15
16.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 広告システム 16 FE BEサーバ群 広告配信システム 広告主が出稿 配信面
17.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . BEサーバ群の構成 17 BE APIサーバ RabbitMQクラスタ (3台構成) 配信システム連携バッチ
18.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 良いところ
19.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 言語が混在しても問題なく動作 • JavaからPHPへメッセージの受け渡し • 並行運用しても問題なく動作 19
20.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 耐障害性、クライアント設定 • クラスタのノードが1台ダウンしても サービス継続 • クライアントはRabbitMQクラスタを 接続先にすればいい 20
21.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 高いスループット • VM3台で1クラスタの構成 • vCPU: 8 • Mem: 16G • Disc: 120G • 1000万msg/dayをConsumerが処理 21
22.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 気をつけること
23.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 構成
24.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . LBを使った構成の罠
25.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 複数ノード構成なのでLBを配備してみた • HTTPサーバみたいに LB経由でバランシングする構成に 25 BE APIサーバ RabbitMQクラスタ LB
26.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . メッセージが見つからない • システム内で整合性が取れない • ただ、何が消えたのかわからない • リカバリ頑張る、運用でカバー 26
27.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . LBを入れてリッチな構成にしたことが仇 • LBがセッション維持しない設定(変更不可) • LBがセッションを定期的に破棄していることが発覚 • JavaのRabbitMQクライアントで LBを使わなくてもクラスタを考慮した接続や 障害時の接続のリカバリが実装されていた 27
28.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . LBいらない • ノードを全部列挙する 28 BE APIサーバ RabbitMQクラスタ Host1,Host2,Host3
29.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . プロビジョニング
30.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . クラスタ止まった
31.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . クラスタが応答しなくなった 大量のメッセージがあると応答しない PublishもConsumeもできない状態 処理が遅延してシステムが止まるような事態に… 31
32.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 原因その1: ディスクI/O メモリ上で扱わず すべてディスクに書き込む設定 (デフォルト) 設定変更してメモリで扱うように 32 信頼性よりパフォーマンスを重視した設定 ※マスタ1台のみディスク、スレーブ2台をメモリ
33.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . ただし、通常はディスク推奨 →通常はディスクのみ、メモリは特殊ケース 33 Clustering Guide: https://www.rabbitmq.com/clustering.html A node can be a disk node or a RAM node. (Note: disk and disc are used interchangeably). In most cases you want all your nodes to be disk nodes; RAM nodes are a special case that can be used to improve the performance clusters with high queue, exchange, or binding churn. When in doubt, use disk nodes only. Clustering Guideより引用
34.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 原因その2:トラッフィク統計の設定 • Message ratesの設定(rates_mode) • 管理プラグインを入れるとデフォルトBasicモード • メッセージの転送レートを表示するための設定 • メッセージの流量を観測するには有用な設定 34 Management Plugin: https://www.rabbitmq.com/management.html
35.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . Message ratesの設定あり 35
36.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . Message ratesの設定なし 36
37.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 高スループット環境では無効にするべき • このオプションを無効にした途端に スループットが向上 • メトリック監視とパフォーマンスはトレードオフ • 公式でも 37 Alternatively, the message rates can be disabled altogether. This can help get the best possible performance out of a CPU-bound server. Management Plugin: https://www.rabbitmq.com/management.html Management Pluginより引用
38.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 保守・運用
39.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 無停止で バージョンアップする
40.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . サービス停止するわけにいかない • 24時間絶え間なく広告入稿のリクエスト • ミドルウェアのバージョンアップで サービス停止できない 40
41.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 切り替え Step1 41 広告配信システム FE Consumer 旧RabbitMQクラスタ BE
42.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 切り替え Step2 42 広告配信システム FE Consumer 旧RabbitMQクラスタ BE 新RabbitMQクラスタ
43.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 切り替え Step3 43 広告配信システム FE Consumer 旧RabbitMQクラスタ BE 新RabbitMQクラスタ メッセージを 捌き切る
44.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 切り替え Step4 44 広告配信システム FE 旧RabbitMQクラスタ BE 新RabbitMQクラスタ Consumer
45.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . ネットワーク パーティション
46.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . ネットワーク障害! • ある日、ネットワーク障害発生 • 管理画面開くと… 46
47.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 再起動するしかない 47 • 公式のドキュメントによると… Clustering and Network Partitions: https://www.rabbitmq.com/partitions.html It may be simpler to stop the whole cluster and start it again; if so make sure that the first node you start is from the trusted partition. Clustering and Network Partitionsより引用
48.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . まとめ
49.
Co p yrig
ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . まとめ • 良いところ • 高スループット • 耐障害性があり、クライアント設定はシンプル • 多言語対応していて、混在でも並行運用可 • 気をつけること • 特に高スループットが要求される場合は プロビジョニングに注意 • 公式ドキュメントは読み込むべし 49