Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Yahoo!デベロッパーネットワーク
PDF, PPTX
25,300 views
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
JJUG ナイトセミナー 「メッセージングミドルウェア特集」のRabbitMQの発表資料です。 https://jjug.doorkeeper.jp/events/65028
Technology
◦
Read more
10
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 49
2
/ 49
3
/ 49
4
/ 49
5
/ 49
6
/ 49
7
/ 49
8
/ 49
9
/ 49
10
/ 49
11
/ 49
12
/ 49
13
/ 49
14
/ 49
Most read
15
/ 49
16
/ 49
Most read
17
/ 49
18
/ 49
19
/ 49
20
/ 49
21
/ 49
22
/ 49
23
/ 49
24
/ 49
25
/ 49
26
/ 49
27
/ 49
Most read
28
/ 49
29
/ 49
30
/ 49
31
/ 49
32
/ 49
33
/ 49
34
/ 49
35
/ 49
36
/ 49
37
/ 49
38
/ 49
39
/ 49
40
/ 49
41
/ 49
42
/ 49
43
/ 49
44
/ 49
45
/ 49
46
/ 49
47
/ 49
48
/ 49
49
/ 49
More Related Content
PDF
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
by
Yahoo!デベロッパーネットワーク
PDF
Dockerfile を書くためのベストプラクティス解説編
by
Masahito Zembutsu
PDF
ネットワーク ゲームにおけるTCPとUDPの使い分け
by
モノビット エンジン
PDF
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
by
Hiro H.
PDF
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
by
NTT DATA OSS Professional Services
PPTX
本当は恐ろしい分散システムの話
by
Kumazaki Hiroki
PDF
分散トレーシング技術について(Open tracingやjaeger)
by
NTT Communications Technology Development
PDF
ストリーム処理を支えるキューイングシステムの選び方
by
Yoshiyasu SAEKI
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
by
Yahoo!デベロッパーネットワーク
Dockerfile を書くためのベストプラクティス解説編
by
Masahito Zembutsu
ネットワーク ゲームにおけるTCPとUDPの使い分け
by
モノビット エンジン
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
by
Hiro H.
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
by
NTT DATA OSS Professional Services
本当は恐ろしい分散システムの話
by
Kumazaki Hiroki
分散トレーシング技術について(Open tracingやjaeger)
by
NTT Communications Technology Development
ストリーム処理を支えるキューイングシステムの選び方
by
Yoshiyasu SAEKI
What's hot
PDF
HTTP/2 入門
by
Yahoo!デベロッパーネットワーク
PDF
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
by
Preferred Networks
PDF
Spring Boot × Vue.jsでSPAを作る
by
Go Miyasaka
PDF
PostgreSQL 15の新機能を徹底解説
by
Masahiko Sawada
PPTX
Dockerからcontainerdへの移行
by
Akihiro Suda
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PDF
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
by
NTT DATA Technology & Innovation
PDF
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
by
NTT DATA Technology & Innovation
PPTX
MongoDBが遅いときの切り分け方法
by
Tetsutaro Watanabe
PPTX
テストコードの DRY と DAMP
by
Yusuke Kagata
PDF
Fluentdのお勧めシステム構成パターン
by
Kentaro Yoshida
PDF
Dockerイメージの理解とコンテナのライフサイクル
by
Masahito Zembutsu
ODP
Guide To AGPL
by
Mikiya Okuno
PPTX
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
by
NTT DATA Technology & Innovation
PDF
コンテナの作り方「Dockerは裏方で何をしているのか?」
by
Masahito Zembutsu
PDF
TLS, HTTP/2演習
by
shigeki_ohtsu
PDF
AlmaLinux と Rocky Linux の誕生経緯&比較
by
beyond Co., Ltd.
PDF
コンテナ未経験新人が学ぶコンテナ技術入門
by
Kohei Tokunaga
PPTX
Redisの特徴と活用方法について
by
Yuji Otani
PDF
インフラエンジニアの綺麗で優しい手順書の書き方
by
Shohei Koyama
HTTP/2 入門
by
Yahoo!デベロッパーネットワーク
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
by
Preferred Networks
Spring Boot × Vue.jsでSPAを作る
by
Go Miyasaka
PostgreSQL 15の新機能を徹底解説
by
Masahiko Sawada
Dockerからcontainerdへの移行
by
Akihiro Suda
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
by
NTT DATA Technology & Innovation
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
by
NTT DATA Technology & Innovation
MongoDBが遅いときの切り分け方法
by
Tetsutaro Watanabe
テストコードの DRY と DAMP
by
Yusuke Kagata
Fluentdのお勧めシステム構成パターン
by
Kentaro Yoshida
Dockerイメージの理解とコンテナのライフサイクル
by
Masahito Zembutsu
Guide To AGPL
by
Mikiya Okuno
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
by
NTT DATA Technology & Innovation
コンテナの作り方「Dockerは裏方で何をしているのか?」
by
Masahito Zembutsu
TLS, HTTP/2演習
by
shigeki_ohtsu
AlmaLinux と Rocky Linux の誕生経緯&比較
by
beyond Co., Ltd.
コンテナ未経験新人が学ぶコンテナ技術入門
by
Kohei Tokunaga
Redisの特徴と活用方法について
by
Yuji Otani
インフラエンジニアの綺麗で優しい手順書の書き方
by
Shohei Koyama
Viewers also liked
PDF
MQTTとAMQPと.NET
by
terurou
PDF
Ansibleで始めるインフラ構築自動化
by
dcubeio
PDF
Jenkins 2.0 Pipeline & Blue Ocean
by
Akihiko Horiuchi
PDF
メッセージキュー「Pulsar」の紹介 @OSC_20171007
by
Nozomi Kurihara
PDF
Jenkins 2.0 最新事情 〜Make Jenkins Great Again〜
by
Jumpei Miyata
PDF
RabbitMQ
by
Masahito Ikuta
MQTTとAMQPと.NET
by
terurou
Ansibleで始めるインフラ構築自動化
by
dcubeio
Jenkins 2.0 Pipeline & Blue Ocean
by
Akihiko Horiuchi
メッセージキュー「Pulsar」の紹介 @OSC_20171007
by
Nozomi Kurihara
Jenkins 2.0 最新事情 〜Make Jenkins Great Again〜
by
Jumpei Miyata
RabbitMQ
by
Masahito Ikuta
Similar to 実運用して分かったRabbit MQの良いところ・気をつけること #jjug
PDF
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
by
Yahoo!デベロッパーネットワーク
PDF
ヤフー発のメッセージキュー「Pulsar」のご紹介
by
Yahoo!デベロッパーネットワーク
PDF
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
by
Hibino Hisashi
PDF
Ethernetの受信処理
by
Takuya ASADA
PDF
20210317 AWS Black Belt Online Seminar Amazon MQ
by
Amazon Web Services Japan
PDF
RabbitMQ can scale out!!(jp ops-workshop-3)
by
NTT Communications Technology Development
PDF
Spring AMQP × RabbitMQ
by
Keisuke Nishitani
PDF
Kyoto Tycoon Guide in Japanese
by
Mikio Hirabayashi
PDF
CEDEC 2015 IoT向け汎用protocol MQTTのリアルタイムゲーム通信利用と実装、そして未来へ…
by
Drecom Co., Ltd.
PPTX
Unityで使うRabbitMQ
by
Masatoshi Itoh
PDF
OpenStack Ops Mid-Cycle Meetup & Project Team Gathering出張報告
by
NTT Communications Technology Development
PPT
vFabricを触ろう
by
土岐 孝平
PDF
GIO-APIを支えるAPIプラットフォーム
by
IIJ
PPTX
自作仮想化基盤 「n0stack」の紹介
by
Takeshi Take
PPTX
NSQ-Centric Architecture (GoCon Autumn 2014)
by
guregu
PDF
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118
by
Nozomi Kurihara
PDF
Google APP Engine vs リアルタイムウェブ
by
Hagiwara takayuki
PDF
UnicastWS vol.1
by
Unicast Inc.
PDF
Developers Summit 2014 Summer 【B-4】LMQでお手軽分散システム開発
by
Developers Summit
PPTX
非同期といえばMQ
by
Seiji Tonouchi
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
by
Yahoo!デベロッパーネットワーク
ヤフー発のメッセージキュー「Pulsar」のご紹介
by
Yahoo!デベロッパーネットワーク
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
by
Hibino Hisashi
Ethernetの受信処理
by
Takuya ASADA
20210317 AWS Black Belt Online Seminar Amazon MQ
by
Amazon Web Services Japan
RabbitMQ can scale out!!(jp ops-workshop-3)
by
NTT Communications Technology Development
Spring AMQP × RabbitMQ
by
Keisuke Nishitani
Kyoto Tycoon Guide in Japanese
by
Mikio Hirabayashi
CEDEC 2015 IoT向け汎用protocol MQTTのリアルタイムゲーム通信利用と実装、そして未来へ…
by
Drecom Co., Ltd.
Unityで使うRabbitMQ
by
Masatoshi Itoh
OpenStack Ops Mid-Cycle Meetup & Project Team Gathering出張報告
by
NTT Communications Technology Development
vFabricを触ろう
by
土岐 孝平
GIO-APIを支えるAPIプラットフォーム
by
IIJ
自作仮想化基盤 「n0stack」の紹介
by
Takeshi Take
NSQ-Centric Architecture (GoCon Autumn 2014)
by
guregu
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118
by
Nozomi Kurihara
Google APP Engine vs リアルタイムウェブ
by
Hagiwara takayuki
UnicastWS vol.1
by
Unicast Inc.
Developers Summit 2014 Summer 【B-4】LMQでお手軽分散システム開発
by
Developers Summit
非同期といえばMQ
by
Seiji Tonouchi
More from Yahoo!デベロッパーネットワーク
PDF
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
ゼロから始める転移学習
by
Yahoo!デベロッパーネットワーク
PDF
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
by
Yahoo!デベロッパーネットワーク
PDF
LakeTahoe
by
Yahoo!デベロッパーネットワーク
PDF
継続的なモデルモニタリングを実現するKubernetes Operator
by
Yahoo!デベロッパーネットワーク
PDF
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
by
Yahoo!デベロッパーネットワーク
PDF
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
by
Yahoo!デベロッパーネットワーク
PDF
サイエンス領域におけるMLOpsの取り組み #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
「新しいおうち探し」のためのAIアシスト検索 #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
Persistent-memory-native Database High-availability Feature
by
Yahoo!デベロッパーネットワーク
PDF
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
ビッグデータから人々のムードを捉える #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
オンプレML基盤on Kubernetes パネルディスカッション
by
Yahoo!デベロッパーネットワーク
PDF
eコマースと実店舗の相互利益を目指したデザイン #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
by
Yahoo!デベロッパーネットワーク
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
by
Yahoo!デベロッパーネットワーク
ゼロから始める転移学習
by
Yahoo!デベロッパーネットワーク
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
by
Yahoo!デベロッパーネットワーク
LakeTahoe
by
Yahoo!デベロッパーネットワーク
継続的なモデルモニタリングを実現するKubernetes Operator
by
Yahoo!デベロッパーネットワーク
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
by
Yahoo!デベロッパーネットワーク
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
by
Yahoo!デベロッパーネットワーク
サイエンス領域におけるMLOpsの取り組み #yjtc
by
Yahoo!デベロッパーネットワーク
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
by
Yahoo!デベロッパーネットワーク
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
by
Yahoo!デベロッパーネットワーク
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
by
Yahoo!デベロッパーネットワーク
「新しいおうち探し」のためのAIアシスト検索 #yjtc
by
Yahoo!デベロッパーネットワーク
Persistent-memory-native Database High-availability Feature
by
Yahoo!デベロッパーネットワーク
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
by
Yahoo!デベロッパーネットワーク
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
by
Yahoo!デベロッパーネットワーク
ビッグデータから人々のムードを捉える #yjtc
by
Yahoo!デベロッパーネットワーク
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
by
Yahoo!デベロッパーネットワーク
オンプレML基盤on Kubernetes パネルディスカッション
by
Yahoo!デベロッパーネットワーク
eコマースと実店舗の相互利益を目指したデザイン #yjtc
by
Yahoo!デベロッパーネットワーク
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
by
Yahoo!デベロッパーネットワーク
実運用して分かった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
Download