Submit Search
Upload
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
•
19 likes
•
13,654 views
matsu_chara
Follow
@matsu_chara 2016/5/31 Apache Kafka Meetup Japan #1 at Yahoo! JAPAN
Read less
Read more
Technology
Report
Share
Report
Share
1 of 39
Download now
Download to read offline
Recommended
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
NTT DATA OSS Professional Services
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
貴志 上坂
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
[C16] インメモリ分散KVSの弱点。一貫性が崩れる原因と、それを克服する技術とは? by Taichi Umeda
[C16] インメモリ分散KVSの弱点。一貫性が崩れる原因と、それを克服する技術とは? by Taichi Umeda
Insight Technology, Inc.
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
Yahoo!デベロッパーネットワーク
Recommended
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
NTT DATA OSS Professional Services
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
貴志 上坂
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
[C16] インメモリ分散KVSの弱点。一貫性が崩れる原因と、それを克服する技術とは? by Taichi Umeda
[C16] インメモリ分散KVSの弱点。一貫性が崩れる原因と、それを克服する技術とは? by Taichi Umeda
Insight Technology, Inc.
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
Yahoo!デベロッパーネットワーク
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
NTT DATA Technology & Innovation
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
Takanori Suzuki
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
Amazon Web Services Japan
KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較
Yoshiyasu SAEKI
AWSで作る分析基盤
AWSで作る分析基盤
Yu Otsubo
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Yahoo!デベロッパーネットワーク
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Web Services Japan
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
AWS Black Belt Online Seminar Amazon Aurora
AWS Black Belt Online Seminar Amazon Aurora
Amazon Web Services Japan
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
AWS BlackBelt AWS上でのDDoS対策
AWS BlackBelt AWS上でのDDoS対策
Amazon Web Services Japan
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
貴志 上坂
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sql
Yutuki r
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Noritaka Sekiyama
リクルートライフスタイルの考えるストリームデータの活かし方(Hadoop Spark Conference2016)
リクルートライフスタイルの考えるストリームデータの活かし方(Hadoop Spark Conference2016)
Atsushi Kurumada
Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本
Sotaro Kimura
More Related Content
What's hot
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
NTT DATA Technology & Innovation
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
Takanori Suzuki
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
Amazon Web Services Japan
KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較
Yoshiyasu SAEKI
AWSで作る分析基盤
AWSで作る分析基盤
Yu Otsubo
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Yahoo!デベロッパーネットワーク
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Web Services Japan
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
AWS Black Belt Online Seminar Amazon Aurora
AWS Black Belt Online Seminar Amazon Aurora
Amazon Web Services Japan
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
AWS BlackBelt AWS上でのDDoS対策
AWS BlackBelt AWS上でのDDoS対策
Amazon Web Services Japan
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
貴志 上坂
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sql
Yutuki r
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Noritaka Sekiyama
What's hot
(20)
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較
AWSで作る分析基盤
AWSで作る分析基盤
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
AWS Black Belt Online Seminar Amazon Aurora
AWS Black Belt Online Seminar Amazon Aurora
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
AWS BlackBelt AWS上でのDDoS対策
AWS BlackBelt AWS上でのDDoS対策
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sql
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Viewers also liked
リクルートライフスタイルの考えるストリームデータの活かし方(Hadoop Spark Conference2016)
リクルートライフスタイルの考えるストリームデータの活かし方(Hadoop Spark Conference2016)
Atsushi Kurumada
Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本
Sotaro Kimura
Treasure Data and AWS - Developers.io 2015
Treasure Data and AWS - Developers.io 2015
N Masahiro
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Yoshimura Soichiro
Kafkaによるリアルタイム処理
Kafkaによるリアルタイム処理
Naoki Yanai
Fluentd v0.12 master guide
Fluentd v0.12 master guide
N Masahiro
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
日本Javaユーザーグループ
Top 5 Deep Learning and AI Stories - October 6, 2017
Top 5 Deep Learning and AI Stories - October 6, 2017
NVIDIA
Viewers also liked
(8)
リクルートライフスタイルの考えるストリームデータの活かし方(Hadoop Spark Conference2016)
リクルートライフスタイルの考えるストリームデータの活かし方(Hadoop Spark Conference2016)
Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本
Treasure Data and AWS - Developers.io 2015
Treasure Data and AWS - Developers.io 2015
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Kafkaによるリアルタイム処理
Kafkaによるリアルタイム処理
Fluentd v0.12 master guide
Fluentd v0.12 master guide
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Top 5 Deep Learning and AI Stories - October 6, 2017
Top 5 Deep Learning and AI Stories - October 6, 2017
Similar to Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
スキーマつきストリーム データ処理基盤、 Confluent Platformとは?
スキーマつきストリーム データ処理基盤、 Confluent Platformとは?
Sotaro Kimura
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
Sotaro Kimura
Reactive Kafka with Akka Streams
Reactive Kafka with Akka Streams
scalaconfjp
Kafka vs Pulsar @KafkaMeetup_20180316
Kafka vs Pulsar @KafkaMeetup_20180316
Nozomi Kurihara
Akka meetup 2014_sep
Akka meetup 2014_sep
masahitojp
恐るべきApache, Web勉強会@福岡
恐るべきApache, Web勉強会@福岡
Aya Komuro
MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月
MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月
Takashi Someda
噛み砕いてKafka Streams #kafkajp
噛み砕いてKafka Streams #kafkajp
Yahoo!デベロッパーネットワーク
Kafka logをオブジェクトストレージに連携する方法まとめ
Kafka logをオブジェクトストレージに連携する方法まとめ
Keigo Suda
並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門
Yoshimura Soichiro
Mackerelによる 簡単サーバー管理入門と発展形
Mackerelによる 簡単サーバー管理入門と発展形
Shinji Tanaka
chat bot framework for Java8
chat bot framework for Java8
masahitojp
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
Junichi Noda
Kafka Streamsによるスケーラブルで非環境依存なストリーム/バッチ処理アーキテクチャ
Kafka Streamsによるスケーラブルで非環境依存なストリーム/バッチ処理アーキテクチャ
Kazuki Ogiwara
Jjug springセッション
Jjug springセッション
Yuichi Hasegawa
Cloud Foundry Container-to-Container Networking
Cloud Foundry Container-to-Container Networking
Kazuto Kusama
Apache Kafkaでの大量データ処理がKubernetesで簡単にできて嬉しかった話
Apache Kafkaでの大量データ処理がKubernetesで簡単にできて嬉しかった話
MicroAd, Inc.(Engineer)
とりあえず使えるSBT
とりあえず使えるSBT
Kiyotaka Kunihira
Scalaの現状と課題
Scalaの現状と課題
Kota Mizushima
Apache EventMesh を使ってみた
Apache EventMesh を使ってみた
Yoshiyasu SAEKI
Similar to Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
(20)
スキーマつきストリーム データ処理基盤、 Confluent Platformとは?
スキーマつきストリーム データ処理基盤、 Confluent Platformとは?
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
Reactive Kafka with Akka Streams
Reactive Kafka with Akka Streams
Kafka vs Pulsar @KafkaMeetup_20180316
Kafka vs Pulsar @KafkaMeetup_20180316
Akka meetup 2014_sep
Akka meetup 2014_sep
恐るべきApache, Web勉強会@福岡
恐るべきApache, Web勉強会@福岡
MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月
MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月
噛み砕いてKafka Streams #kafkajp
噛み砕いてKafka Streams #kafkajp
Kafka logをオブジェクトストレージに連携する方法まとめ
Kafka logをオブジェクトストレージに連携する方法まとめ
並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門
Mackerelによる 簡単サーバー管理入門と発展形
Mackerelによる 簡単サーバー管理入門と発展形
chat bot framework for Java8
chat bot framework for Java8
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
Kafka Streamsによるスケーラブルで非環境依存なストリーム/バッチ処理アーキテクチャ
Kafka Streamsによるスケーラブルで非環境依存なストリーム/バッチ処理アーキテクチャ
Jjug springセッション
Jjug springセッション
Cloud Foundry Container-to-Container Networking
Cloud Foundry Container-to-Container Networking
Apache Kafkaでの大量データ処理がKubernetesで簡単にできて嬉しかった話
Apache Kafkaでの大量データ処理がKubernetesで簡単にできて嬉しかった話
とりあえず使えるSBT
とりあえず使えるSBT
Scalaの現状と課題
Scalaの現状と課題
Apache EventMesh を使ってみた
Apache EventMesh を使ってみた
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
1.
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集 @matsu_chara 2016/5/31 Apache
Kafka Meetup Japan #1 at Yahoo! JAPAN
2.
今日のスライド http://www.slideshare.net/matsu_chara/kafka-part2
3.
part1のスライド http://xuwei-k.github.io/slides/kafka-matsuri/#1
4.
自己紹介 • @matsu_chara • Ponylang非公式エバンジェリスト活動 •
Scala新卒研修用テキスト
5.
話すこと • Kafkaを使ったイベントハブについて • イベントハブとしてのKafka •
現在のシステム構成 • Kafkaの設定 • Kafka運用時辛かった事例 • TopicとPartition数増大による性能劣化 • FullGC発生によるPublish失敗 • Raidコントローラエラー発生事件
6.
• 利用用途の違いでKafkaのチューニングは どう変わるのか • 運用・性能面で困ったことを共有 話すこと
7.
Kafkaを使ったEventHubについて
8.
よくあるKafkaの使われ方 • ユーザーアクティビティログ・メトリクスの集約 => availability重視 •
イベントハブ(受け取ったデータをロストしないこと が最重要) => durabilityを重視
9.
よくあるKafkaの使われ方 • ユーザーアクティビティログ・メトリクスの集約 => availability重視 •
イベントハブ(受け取ったデータをロストしないこと が最重要) => durabilityを重視
10.
イベントハブとしてのKafka • 社内システム連携・メッセージングのための基盤
11.
イベントハブとしてのKafka • 社内システム連携・メッセージングのための基盤 サービス ニコ動/ニコ生とか Publisher 別システム 別サービスなど Subscriber
12.
イベントハブとしてのKafka • Publisherが直接1:Nで配信するのは大変 • 様々な温かみが生まれた歴史… •
各種サービスから情報を集約したいチームが出てきた 時に対応するコスト • 性能を各サービスでスケールさせるコスト
13.
イベントハブとしてのKafka • 社内システム連携・メッセージングのための基盤 サービス ニコ動/ニコ生など Publisher 他サービス メール通知など Subscriber
14.
イベントハブとしてのKafka • Kafkaを中心にしてデータを集約 • Kafkaのスケーラビリティにより、色々なサービスが情報 をsubscribe可能になる •
publisherのシステム的な都合にsubscriberが影響さ れない(密結合を防ぐ)
15.
現在のシステム • Scala/Play/akka • 運用開始から半年ちょっと •
Kafka 0.9(クラスタは一つ。まだあまり大きくない)
16.
現在のシステム • HTTPでイベントを受け取りKafkaへpublish • KafkaからsubscribeしHTTP/AMQPで通知 HTTP AMQP HTTP
17.
Protocol Buffers on
Kafka • イベントのシリアライザは • 社内システム間連携の基盤として、メッセージの 互換性を保障・調整する役割も担いたい • 互換性維持のやりやすさを考慮して採用 • grpcも併せて社内のデータ交換形式の統一をし ていきたい
18.
Kafkaの設定 • データを失わないことを重視 • Netflixの事例と方向性が異なる 項目名
default値 Netflix 設定値 acks 1 1 all replication.factor - 2 3 min.insync.replica 1 ? 2
19.
Kafkaの設定 その他の設定はpart1で紹介。 もっとチューニングしたいけど機能追加の兼ね合いがあるので隙を見てやっ ていきたい もっと詳細な情報 http://xuwei-k.github.io/slides/ kafka-matsuri/#34 clouderaの資料 http://www.cloudera.com/ documentation/kafka/latest/topics/ kafka_ha.html
20.
Kafka運用辛かった事例
21.
TopicAndPartition増大による 性能劣化 • partitionが増えるとPublish完了までの時間が悪化 • replication
factorにも依存 • レプリケーションが主な原因のようなので num.replica.fetchers などをチューニングする
22.
TopicAndPartition増大による 性能劣化 topicをたくさん作り、1topicにのみ100万件publishしたときのqps • グラフはHDDで計測したもの。SSDでも傾向自体は変化なし。 0 2000
4000 6000 8000 0100002000030000400005000060000 TopicAndPartiton qps
23.
TopicAndPartition増大による 性能劣化 • 現在はイベント頻度が高すぎないものに関しては partition数を1にして対処(必要に応じて増やす) • partition数の目安は1brokerあたり (100
* broker台数 * replication factor) 程度? (記事参照) 詳細 http://www.confluent.io/blog/how-to- choose-the-number-of-topicspartitions- in-a-kafka-cluster/
24.
TopicAndPartition増大による 性能劣化 • Netflixも抑えているが、そちらは可用性に関するチューニング? • 故障時のオーバーヘッドを減らす 企業
目安 参考元 confluent 2000~4000 partitions/broker 10K~ partitions/cluster http://www.confluent.io/blog/ how-to-choose-the-number-of- topicspartitions-in-a-kafka- cluster/ Netflix 200 broker/cluster 以下 10K partition/custer 以下 http://techblog.netflix.com/ 2016/04/kafka-inside- keystone-pipeline.html
25.
FullGC発生によるPublish失敗 • 負荷試験中に発生。 • メッセージサイズによる。(Kafka的には1KB程度が最も 性能がでてGCにも優しいらしい) •
Javaパフォーマンスに書いてあるようなことをひたすら やっていく。 clouderaの資料 http://www.cloudera.com/documentation/kafka/latest/ topics/kafka_performance.html 実際にやったチューニング http://xuwei-k.github.io/slides/kafka-matsuri/ #61
26.
RAIDコントローラエラー発生事件 • 突然Kafkaへのpublishがタイムアウトし始める • ログを見るとRAIDコントローラが再起動していた •
RAIDコントローラ再起動後のbrokerは正常に動作 • 最近の出来事で調査・対策の方針がまだ立ってい ない
27.
RAIDコントローラエラー発生事件 Event
28.
RAIDコントローラエラー発生事件 RAIDコントローラに 異常発生
29.
RAIDコントローラエラー発生事件 想定 RAIDコントローラに 異常発生
30.
RAIDコントローラエラー発生事件 in-sync replicaから離脱 想定
31.
RAIDコントローラエラー発生事件 残った2台でack 想定
32.
RAIDコントローラエラー発生事件 in-sync replicaのまま 現実
33.
RAIDコントローラエラー発生事件 in-sync replicaのまま 現実 acks=allを待って タイムアウト
34.
RAIDコントローラエラー発生事件 現実 しばらく経った後 RAIDコントローラ 再起動
35.
RAIDコントローラエラー発生事件 現実 3台でack しばらく経った後 RAIDコントローラ 再起動
36.
RAIDコントローラエラー発生事件 • min.insync.replica=2なので1台落ちてもpublish できるという想定だった。 • しかし「brokerがackを返せない状態」で「クラスタ から離脱しなかった」ため、「acks=all」の設定により publishできなかったと思われる •
brokerはzookeeperのハートビートには応答するが、 ackは返せないという状態になりうる?
37.
RAIDコントローラエラー発生事件 • acks=2はkafka 0.9からは出来なくなっている •
RAIDを使わない方針も考えられる? • RAID以外のエラーでも同じような現象は起きうる のか? • 自動で離脱しないなら、brokerを停止させる外部 機構が必要?
38.
RAIDコントローラエラー発生事件 • Netflixのようにcold standbyなクラスタを用意 するのはどうなのか、調子の悪いbrokerを停止さ せるだけでは不十分? •
再現できていないので仮説ベースな部分あり • 意見募集
39.
まとめ • 事例紹介 • 用途の違いを意識したチューニングが必要になる •
Netflixのようなavailabilityを重視 • イベントバスとしてdurabilityを重視 • 運用トラブルが起きる前に、confluent/linkedin/clouderaなど の資料は一通り目を通しておくと後悔が少ない。 • 実際の運用時の環境を想定した負荷試験をしてみる
Download now