Soumettre la recherche
Mettre en ligne
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
•
8 j'aime
•
8,397 vues
Yahoo!デベロッパーネットワーク
Suivre
JJUG CCC 2017 Spring 発表資料 http://www.java-users.jp/ccc2017spring/
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 64
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
NTT DATA OSS Professional Services
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタ
Satoyuki Tsukano
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
Recommandé
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
NTT DATA OSS Professional Services
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタ
Satoyuki Tsukano
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
貴志 上坂
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
Takanori Suzuki
Kafka vs Pulsar @KafkaMeetup_20180316
Kafka vs Pulsar @KafkaMeetup_20180316
Nozomi Kurihara
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
NTT DATA Technology & Innovation
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
AdvancedTechNight
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
(2017.6.9) Neo4jの可視化ライブラリまとめ
(2017.6.9) Neo4jの可視化ライブラリまとめ
Mitsutoshi Kiuchi
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
Amazon Web Services Japan
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
Awsでつくるapache kafkaといろんな悩み
Awsでつくるapache kafkaといろんな悩み
Keigo Suda
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
Yahoo!デベロッパーネットワーク
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
Hironobu Isoda
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
Java libraries you can't afford to miss
Java libraries you can't afford to miss
Andres Almiray
Kotlin is charming; The reasons Java engineers should start Kotlin.
Kotlin is charming; The reasons Java engineers should start Kotlin.
JustSystems Corporation
Contenu connexe
Tendances
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
貴志 上坂
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
Takanori Suzuki
Kafka vs Pulsar @KafkaMeetup_20180316
Kafka vs Pulsar @KafkaMeetup_20180316
Nozomi Kurihara
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
NTT DATA Technology & Innovation
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
AdvancedTechNight
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
(2017.6.9) Neo4jの可視化ライブラリまとめ
(2017.6.9) Neo4jの可視化ライブラリまとめ
Mitsutoshi Kiuchi
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
Amazon Web Services Japan
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
Awsでつくるapache kafkaといろんな悩み
Awsでつくるapache kafkaといろんな悩み
Keigo Suda
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
Yahoo!デベロッパーネットワーク
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
Hironobu Isoda
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
Tendances
(20)
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
Kafka vs Pulsar @KafkaMeetup_20180316
Kafka vs Pulsar @KafkaMeetup_20180316
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
(2017.6.9) Neo4jの可視化ライブラリまとめ
(2017.6.9) Neo4jの可視化ライブラリまとめ
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
Redisの特徴と活用方法について
Redisの特徴と活用方法について
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
Awsでつくるapache kafkaといろんな悩み
Awsでつくるapache kafkaといろんな悩み
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
分散システムについて語らせてくれ
分散システムについて語らせてくれ
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
En vedette
Java libraries you can't afford to miss
Java libraries you can't afford to miss
Andres Almiray
Kotlin is charming; The reasons Java engineers should start Kotlin.
Kotlin is charming; The reasons Java engineers should start Kotlin.
JustSystems Corporation
VMの歩む道。 Dalvik、ART、そしてJava VM
VMの歩む道。 Dalvik、ART、そしてJava VM
yy yank
U-NEXT学生インターン、過激なJavaの学び方と過激な要求
U-NEXT学生インターン、過激なJavaの学び方と過激な要求
hajime funaki
2017spring jjug ccc_f2
2017spring jjug ccc_f2
Kazuhiro Wada
Jjug ccc
Jjug ccc
Tanaka Yuichi
Arachne Unweaved (JP)
Arachne Unweaved (JP)
Ikuru Kanuma
Jjugccc2017spring-postgres-ccc_m1
Jjugccc2017spring-postgres-ccc_m1
Kosuke Kida
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
Works Applications
Polyglot on the JVM with Graal (English)
Polyglot on the JVM with Graal (English)
Logico
新卒2年目から始めるOSSのススメ~明日からできるコミットデビュー~
新卒2年目から始めるOSSのススメ~明日からできるコミットデビュー~
Yoshio Kajikuri
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
JustSystems Corporation
日本Javaグループ2017年定期総会 #jjug
日本Javaグループ2017年定期総会 #jjug
日本Javaユーザーグループ
JJUG CCC 2017 Spring Seasar2からSpringへ移行した俺たちのアプリケーションがマイクロサービスアーキテクチャへ歩み始めた
JJUG CCC 2017 Spring Seasar2からSpringへ移行した俺たちのアプリケーションがマイクロサービスアーキテクチャへ歩み始めた
Koichi Sakata
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
Hiroshi Ito
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Hiroyuki Ohnaka
Introduction of Project Jigsaw
Introduction of Project Jigsaw
Yuichi Sakuraba
グラフデータベース入門
グラフデータベース入門
Masaya Dake
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
y_taka_23
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
なおき きしだ
En vedette
(20)
Java libraries you can't afford to miss
Java libraries you can't afford to miss
Kotlin is charming; The reasons Java engineers should start Kotlin.
Kotlin is charming; The reasons Java engineers should start Kotlin.
VMの歩む道。 Dalvik、ART、そしてJava VM
VMの歩む道。 Dalvik、ART、そしてJava VM
U-NEXT学生インターン、過激なJavaの学び方と過激な要求
U-NEXT学生インターン、過激なJavaの学び方と過激な要求
2017spring jjug ccc_f2
2017spring jjug ccc_f2
Jjug ccc
Jjug ccc
Arachne Unweaved (JP)
Arachne Unweaved (JP)
Jjugccc2017spring-postgres-ccc_m1
Jjugccc2017spring-postgres-ccc_m1
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
Polyglot on the JVM with Graal (English)
Polyglot on the JVM with Graal (English)
新卒2年目から始めるOSSのススメ~明日からできるコミットデビュー~
新卒2年目から始めるOSSのススメ~明日からできるコミットデビュー~
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
日本Javaグループ2017年定期総会 #jjug
日本Javaグループ2017年定期総会 #jjug
JJUG CCC 2017 Spring Seasar2からSpringへ移行した俺たちのアプリケーションがマイクロサービスアーキテクチャへ歩み始めた
JJUG CCC 2017 Spring Seasar2からSpringへ移行した俺たちのアプリケーションがマイクロサービスアーキテクチャへ歩み始めた
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Introduction of Project Jigsaw
Introduction of Project Jigsaw
グラフデータベース入門
グラフデータベース入門
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
Similaire à Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo!デベロッパーネットワーク
Apache Big Data Miami 2017 - Hadoop Source Code Reading #23 #hadoopreading
Apache Big Data Miami 2017 - Hadoop Source Code Reading #23 #hadoopreading
Yahoo!デベロッパーネットワーク
Kafka Summit NYCに見るストリーミングデータETLの話 #streamdatajp
Kafka Summit NYCに見るストリーミングデータETLの話 #streamdatajp
Yahoo!デベロッパーネットワーク
Dataworks Summit 2017 SanJose StreamProcessing - Hadoop Source Code Reading #...
Dataworks Summit 2017 SanJose StreamProcessing - Hadoop Source Code Reading #...
Yahoo!デベロッパーネットワーク
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo!デベロッパーネットワーク
Datadog monitoring with HashiCorp stack
Datadog monitoring with HashiCorp stack
Masatomo Ito
Datadog monitoring with HashiCorp
Datadog monitoring with HashiCorp
Masatomo Ito
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
Yahoo!デベロッパーネットワーク
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Yahoo!デベロッパーネットワーク
Dataworks Summit SJ QueryEngine - Hadoop Source Code Reading #23 #hadoopreading
Dataworks Summit SJ QueryEngine - Hadoop Source Code Reading #23 #hadoopreading
Yahoo!デベロッパーネットワーク
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Yahoo!デベロッパーネットワーク
YJTC18 A-1 大規模サーバの戦略
YJTC18 A-1 大規模サーバの戦略
Yahoo!デベロッパーネットワーク
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
YusukeKuramata
HBase Meetup Tokyo Summer 2015 #hbasejp
HBase Meetup Tokyo Summer 2015 #hbasejp
Cloudera Japan
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
Amazon Web Services Japan
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
Toru Yamaguchi
20130313 OSCA Hadoopセミナー
20130313 OSCA Hadoopセミナー
Ichiro Fukuda
HBase Across the World #LINE_DM
HBase Across the World #LINE_DM
Cloudera Japan
TokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoop
Teruo Kawasaki
Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -
Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -
Yahoo!デベロッパーネットワーク
Similaire à Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
(20)
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Apache Big Data Miami 2017 - Hadoop Source Code Reading #23 #hadoopreading
Apache Big Data Miami 2017 - Hadoop Source Code Reading #23 #hadoopreading
Kafka Summit NYCに見るストリーミングデータETLの話 #streamdatajp
Kafka Summit NYCに見るストリーミングデータETLの話 #streamdatajp
Dataworks Summit 2017 SanJose StreamProcessing - Hadoop Source Code Reading #...
Dataworks Summit 2017 SanJose StreamProcessing - Hadoop Source Code Reading #...
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Datadog monitoring with HashiCorp stack
Datadog monitoring with HashiCorp stack
Datadog monitoring with HashiCorp
Datadog monitoring with HashiCorp
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Dataworks Summit SJ QueryEngine - Hadoop Source Code Reading #23 #hadoopreading
Dataworks Summit SJ QueryEngine - Hadoop Source Code Reading #23 #hadoopreading
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
YJTC18 A-1 大規模サーバの戦略
YJTC18 A-1 大規模サーバの戦略
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
HBase Meetup Tokyo Summer 2015 #hbasejp
HBase Meetup Tokyo Summer 2015 #hbasejp
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
20130313 OSCA Hadoopセミナー
20130313 OSCA Hadoopセミナー
HBase Across the World #LINE_DM
HBase Across the World #LINE_DM
TokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoop
Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -
Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -
Plus de Yahoo!デベロッパーネットワーク
ゼロから始める転移学習
ゼロから始める転移学習
Yahoo!デベロッパーネットワーク
継続的なモデルモニタリングを実現するKubernetes Operator
継続的なモデルモニタリングを実現するKubernetes Operator
Yahoo!デベロッパーネットワーク
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
Yahoo!デベロッパーネットワーク
オンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes パネルディスカッション
Yahoo!デベロッパーネットワーク
LakeTahoe
LakeTahoe
Yahoo!デベロッパーネットワーク
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
Yahoo!デベロッパーネットワーク
Persistent-memory-native Database High-availability Feature
Persistent-memory-native Database High-availability Feature
Yahoo!デベロッパーネットワーク
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
Yahoo!デベロッパーネットワーク
eコマースと実店舗の相互利益を目指したデザイン #yjtc
eコマースと実店舗の相互利益を目指したデザイン #yjtc
Yahoo!デベロッパーネットワーク
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
Yahoo!デベロッパーネットワーク
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo!デベロッパーネットワーク
ビッグデータから人々のムードを捉える #yjtc
ビッグデータから人々のムードを捉える #yjtc
Yahoo!デベロッパーネットワーク
サイエンス領域におけるMLOpsの取り組み #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtc
Yahoo!デベロッパーネットワーク
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
Yahoo!デベロッパーネットワーク
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo!デベロッパーネットワーク
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
Yahoo!デベロッパーネットワーク
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
Yahoo!デベロッパーネットワーク
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
Yahoo!デベロッパーネットワーク
「新しいおうち探し」のためのAIアシスト検索 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc
Yahoo!デベロッパーネットワーク
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
Yahoo!デベロッパーネットワーク
Plus de Yahoo!デベロッパーネットワーク
(20)
ゼロから始める転移学習
ゼロから始める転移学習
継続的なモデルモニタリングを実現するKubernetes Operator
継続的なモデルモニタリングを実現するKubernetes Operator
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
オンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes パネルディスカッション
LakeTahoe
LakeTahoe
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
Persistent-memory-native Database High-availability Feature
Persistent-memory-native Database High-availability Feature
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
eコマースと実店舗の相互利益を目指したデザイン #yjtc
eコマースと実店舗の相互利益を目指したデザイン #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
ビッグデータから人々のムードを捉える #yjtc
ビッグデータから人々のムードを捉える #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
Dernier
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
Dernier
(10)
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
1.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. 2017年5月20日 1 ヤフー株式会社 データ&サイエンスソリューション統括本部 データプラットフォーム本部 開発4部 パイプライン 森谷 大輔 Java Clientで入門する Apache Kafka JJUG CCC 2017 Spring
2.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. 自己紹介 • 森谷 大輔 • インフラエンジニア • どちらかというとBEアプリケーション開発 • ヤフーのデータパイプラインをつくったり運用したり • 対外発表 • ストリーム処理プラットフォームにおけるKafka導入事例 (Apache Kafka Meetup Japan #1: 2016) • Hadoop Summit 2016 @San Jose ストリーム処理関連の報告 (Stream Processing Casual Talks #1: 2016) • Kafka 0.10.0アップデート プロダクション100ノードでやってみた (D&S Data Night vol.03: 2016) • 噛み砕いてKafka Streams (Apache Kafka Meetup Japan #2: 2016) • Elasticsearch 5.2とJava Clientで戯れる (第18回Elasticsearch勉強会: 2017) 2
3.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. ゴール(と注意) Kafkaをこれから始めたい、始めたばか りの人向けにKafkaの基本を実演ベース で押さえて帰ってもらう • ※既にガンガン使ってるぜという人は退屈 かも、でもちょっとはいい情報もあるかも • ※現行最新のバージョン0.10.2.0を前提 3
4.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. アジェンダ • Kafkaとは? • Kafkaの基本 • Java ClientでKafkaを体感する • まとめ 4
5.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Kafkaとは? 5 時間を割きます
6.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Apache Kafka スケーラブルな分散pub/sub型 メッセージングシステムを実現するために LinkedInが開発してOSS化した (2011年~) Apacheトップレベルプロジェクトで配布(2012年~) 6
7.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. 実績 7 https://kafka.apache.org/powered-by から一部を抜粋 Fortune 500の内 実に3分の1がKafkaを 利用しているらしい
8.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Kafka Summit • Confluent, inc.が主催 • SF (2016/4, 2017/8), NY (2017/5) 8
9.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. ユーザ会 • Apache Kafka JP • https://kafka-apache-jp.connpass.com/ 9 https://kafka.apache.org/events
10.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Apache Kafka スケーラブルな分散pub/sub型 メッセージングシステムを実現するために LinkedInが開発してOSS化した (2011年~) Apacheトップレベルプロジェクトで配布(2012年~) 10
11.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. publish/subscribeモデル 11 • Wikipediaには出版-購読型モデルとある • データの送受信のかたち • データの送信者(publisher)は受信者(subscriber)を気にしないでどんどん 送る • 受信者は送信者を気にせず自分のタイミングで取る publisher publisher publisher 仲介者 subscriber subscriber subscriber
12.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. publish/subscribeモデル 12 • つまりpublisherとsubscriberを非同期に分離した • もしPUSH, PUSHだとどんな問題がある? publisher publisher publisher 仲介者 subscriber subscriber subscriber PULLPUSH 疎結合化
13.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. 具体的にはなんの用途で使うの? 13 • 2つ • データパイプライン • ストリーム処理 と公式docのトップにもある
14.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. データパイプライン 14 Data Source Data Source Data Source RDBMS
15.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. データパイプライン 15 Data Source Data Source Data Source RDBMS Data Source ストリーム処理 Data Source Data Source
16.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. データパイプライン 16 Data Source Data Source Data Source RDBMS Data Source ストリーム処理 Data Source Data Source データレイク・・・ マイクロサービス・・・
17.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. データパイプライン 17 Data Source Data Source Data Source RDBMS Data Source ストリーム処理 Data Source Data Source
18.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. ストリーム(リアルタイム)処理 18 • 課題: このデイリーバッチが終わる明朝まで分析がで きないよ・・・ • ASAPの意思決定
19.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. ストリーム(リアルタイム)処理 19 • モジュールの日次クリック率推移を知りたい • モジュールのクリック率急増を知りたい • 遅延が多い路線を知りたい • 電車の遅延を知りたい • 2016年に話題になったツイートワードを知りたい • 今見ているテレビ番組のバズツイートワードを知りたい • ABテストの分析をしたい • 非常に悪い結果を出しているバケットテストをすぐに停止したい • マシンの故障率を知りたい • マシンが故障しそうになったら知りたい • ユーザの平均的な興味から広告を出したい • ユーザが今だけ興味を持っている広告を出したい 変化の通知が、実際に変化した点から時 間が経つに連れて価値が低下する 高価値 数秒〜10分 価値の低下 バッチ ストリーム
20.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. ストリーム(リアルタイム)処理 20 • ストリーミングデータ • 終わりがない、連続的に発生するデータ • を処理するためにはキューイングの機能が必要 • 類似:ActiveMQ, RabbitMQ, ZeroMQ, Redis • https://www.slideshare.net/laclefyoshi/ss-67658888
21.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Kafkaは • データパイプラインをシンプルにする • ストリーミングデータを扱える を両方実現できるように設計された • 特徴 • バッチ・リアルタイム分析共にサポート • 受け取ったレコードは直ちに永続化 • スケーラビリティ • デイリー1兆4千万のレコードを捌く@LinkedIn • フォールトトレラント 21
22.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Kafkaの基本 22
23.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. pub/sub 23 publisher publisher publisher 仲介者 subscriber subscriber subscriber
24.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Kafkaを構成する4コンポーネント 24 Producer Producer Producer Broker Consumer Consumer Consumer ZooKeeper狭義にはこれだけを Kafkaと言うこともある
25.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved.25 • Producer • Consumer • Broker • ZooKeeper Kafkaを構成する4コンポーネント
26.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. ZooKeeper 26 • Apache ZooKeeper • 可用性と信頼性の高い分散コーディネーションシステム (詳細は割愛) • Hadoop等でも使われるOSS • Kafkaでは↓のために使われる • クラスタマネジメント • 死活管理 • ACL情報のストア
27.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Message 27 Producer Producer Producer Broker Consumer Consumer Consumer ZooKeeper Message(=Record) • Kafka独自フォーマットのバイナリ • keyとvalueとtimestamp等のメタデータで構 成 • key, valueはユーザ任意の型
28.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Topic 28 Producer Producer Producer Broker Consumer Consumer Consumer weblog purchase customer Topic • Messageストリームのラベル • ユーザが名付ける • Producerは1個か複数のtopicにMessageを投げ る
29.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Partition 29 Producer weblog: partition purchase: partition • Topicはさらに負荷分散のた めにPartitionに分割される • Partition数はTopic毎にユー ザが決める • Partition数は増やせるが減ら せない weblog: partition purchase: partition weblog: partition purchase: partition
30.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Producer: key partitioning 30 Producer weblog: partition purchase: partition weblog: partition purchase: partition weblog: partition purchase: partition • keyのハッシュ値から投入先 partitionを決定する • 同じkeyのMessageは同じ partitionに投入される • keyを指定しなければラウンド ロビン • またはpartition割り振りロジッ クをユーザがカスタマイズす る
31.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Log 31 Producer weblog: partition purchase: partition weblog: partition purchase: partition weblog: partition purchase: partition • partitionは任意のディレクトリ パスにファイルとして永続化 される • これをLogという • 紛らわしいことにKafkaそのも ののシステムログも別に存在 する、がそれではない • 保持期間が指定できる
32.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Consumer Group 32 Producer Broker Consumer Consumer Consumer purchase • グルーピングされたconsumerは他のconsumerを 気にせずtopicのMessageを漏れなく分散 consumeする group.id=shopping group.id=marketing
33.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Offset 33 Consumer Consumer Consumer group.id=shopping group.id=marketing ということはConsumer Group毎に どこまで読んだかをConsumerが覚えている partition 0 0 1 2 partition 1 0 1
34.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Offset 34 Consumer Consumer Consumer group.id=shopping group.id=marketing partition 0 0 1 2 partition 1 0 1 Offsetは一度決まったら変わらない • 「group.id=shoppingとしてtopic=purchaseのpartition=0のoffset=2まで読ん だ」 • この情報はKafkaの専用topicに書き込まれる
35.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Java ClientでKafkaを体 感する 35
36.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Java Client • Producer, Consumer APIとしてJava Client が公式に用意されている • しかし3rdパーティ製で他言語でも使える (C/C++, Go, Python等) • 特にConsumerはアプリケーションコードを書 くことが多い 36
37.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Consumer Client • 特にConsumerはアプリケーションコードを書くことが 多い • よりハイレベルなAPIやフレームワークもある • Java Clientは最もローレベルなAPIともいえる 37 Kafka Streams
38.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. ハイレベルAPIがあるのにわざわざ ローレベルAPIの使い方を見る必要がある? ある • ハイレベルAPIを使いこなすのは簡単でない、Java Clientを把握 していることはハイレベルAPIを使いこなす上でとても有用 • フレームワークは構築から試すまでがかなり大変、ちょっとした アプリやテストならJava Clientが一番低コストだったり • ローレベルといっても直感的でないわけではない • (旧APIのSimpleConsumerさんとはわけが違う) 38
39.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. これから試すこと • Kafkaアプリケーションの全ての基本 • サンプルデータをProducerがBrokerにproduce する • ConsumerがBrokerからそのデータをconsume して確認する 39 Producer Broker Consumer k: null, v: “こんにちは世界” “こんにちは世界” ?
40.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. どうやって動作確認する? • Producer, Consumer, Broker, ZooKeeper 1. ZooKeeper, Kafkaを開発機にインストール 2. ZooKeeper daemonとBroker daemonを起動して 3. お試しProducerコードを書いてjarを配備して起動して 4. お試しConsumerコードを書いてjarを配備して起動して 40
41.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. 面倒! • フレームワークだともっと面倒 41
42.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. これがあれば一連の流れが試せる 4つの最低限コンポーネント • ZooKeeper: JVMで動く • Kafka Broker: JVMで動く • Kafka Producer: JVMで動く • Kafka Consumer: JVMで動く • Javaコードペラ一枚でできるのでは? 42
43.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. A. できる • つまりJUnit上で試せる • Kafkaアプリケーションを開発するときはこ の手を使ってテストすると良い • ConsumerがStormやKafka Streamsだった としても、それもJVMなので同じ手が使える 43
44.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. • ZooKeeperとBrokerをJavaコード上で起動する方法は公 式docのFAQにある • https://cwiki.apache.org/confluence/display/KAFKA/FAQ#FAQ-Unittesting • やや長いのでライブラリを作って一行くらいで起動できる ようにしておくと吉 • 今回はすみません、自作のものを使います • 使い勝手は違いますが基本やっていることはFAQと同じ 44
45.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Java Client【とJUnit】 でKafkaを体感する (今度こそ) 45
46.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. これから試すこと(再掲) • Kafkaアプリケーションの全ての基本 • サンプルデータをProducerがBrokerにproduce する • ConsumerがBrokerからそのデータをconsume して確認する 46 Producer Broker Consumer k: null, v: “こんにちは世界” “こんにちは世界” ?
47.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. デモ1 • pom • テストコード • broker partitionの実体を見てみましょう • Producer, ConsumerのJavaDoc • https://kafka.apache.org/0102/javadoc/index.html?org/apache/kafka/clients/producer/KafkaProducer.html • https://kafka.apache.org/0102/javadoc/index.html?org/apache/kafka/clients/consumer/KafkaConsumer.html 47
48.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Consumer Groupを体感する 48 Producer Broker Consumer test-topic group.id=B Consumer group.id=A • Aというgroup.idとBというgroup.idで同じ topicのMessageを読んでみる
49.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. デモ2 49
50.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. • 5件投げたら5件ずつ、合計10件読 めた • consumer group BをAに変えてもう 一回試すとどうなるか 50
51.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. デモ2.1 51
52.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. • 1スレッドだけが5件読んでもう1スレッドは働 かなかった • なぜかは後で • とりあえずconsumer groupを分ければ別とし て読めることがわかった 52
53.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. partitioningで負荷分散を体感する • topic毎にpartition数を指定できる • partition=1だとBroker nodeを何台増やしても拡張しない • 1partitionは1Consumerからしか読まれない • 1partitionを2Consumerから同時に読むことはできない、 2partitionなら可能 • さっき1スレッドだけが5件読んでもう1スレッドが働かな かった理由はそれ 53
54.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. デモ3 • partition数を2にしてさっきのコードを実行して みます • broker partitionの実体も変わっていることを確 認 54
55.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. 今回は同プロセス内スレッドで分散さ せたが、本番ではnode間で分散され ることになるはず 55
56.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. key partitioning • Aさんのログイン失敗が30分以内に5回以上を検知 • Kafka Consumerで実装した場合 56 partition 0 partition 1 partition 2 2回失敗 ? 2回失敗 ? 1回失敗 ?Consumer Consumer Consumer
57.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. こんなときに使える • keyでgroupingして集約したい • keyでストリームデータ同士をjoinしたい • uniqueKeyを入れてウィンドウで重複除 去したい 57
58.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. デモ4 • Aという文字列をkeyに入れてさっきの 2partitionに投げてみます • さっきは分散したが今回は? 58
59.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. デモ5 • 圧縮 • するとしないのとではネットワークトラフィック、 Brokerのディスク消費が大きく変わる • その代わりCPUを食う • gzip, snappy, lz4 • Consumerで読むときはなにで圧縮されたか気 にする必要は無い 59
60.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. マルチスレッド実装の注意点 • テストのためにConsumerはマルチスレッドで試してきた • 本番でも性能を出すために恐らくマルチスレッド実装する • KafkaProducerクラスはスレッドセーフ • KafkaConsumerクラスはスレッドセーフではない (※wakeupメソッドだけ例外) • Consumerオブジェクトをスレッド間で共有して操作すると ConcurrentModificationException • 各スレッドで作るようにすればOK 60
61.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. KafkaConsumer 0.10.2で使える便利メソッド紹介 61 返り値型 メソッド 機能、使いどころ void • commitSync() • commitSync(Map<TopicPartition, OffsetAndMetadata> offsets) • commitAsync(OffsetCommitCallback callback) Offsetのコミットを自動定期に任せない場合、自分でOffset コミットしたいタイミングを指定する。 特定のpartitionについて特定のOffsetでコミット、ということ もできる。 処理を含めてAt-least-onceを実現する場合は必須。 Map<TopicPar tition, OffsetAndTim estamp> • offsetsForTimes(Map<TopicPartition, Long> timestampsToSearch) 最近追加された強力な機能。 MessageのtimestampからOffsetを逆引きする。 下記のseekと合わせて使うことで何時何分のデータから何 時何分のデータを再度consumeし直すといったユースケー スを実現できる。 void • seek(TopicPartition partition, long offset) • seekToBeginning(Collection<TopicPartition> partitions) • seekToEnd(Collection<TopicPartition> partitions) 今読んでいるOffsetを途中で変える機能。 ほとんどのConsumerアプリケーションで稼働中に任意に Offsetを変えたい要望が出てくるので重要度が高いメソッド。 void • pause(Collection<TopicPartition> partitions) • resume(Collection<TopicPartition> partitions) 特定のpartitionのconsumeを一時停止したり再開させたり する。「今だけ特定のpartitionのconsumeに集中させたい」 といった要件を実現する。 便利だが実装がやや難しい。
62.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. まとめ 62
63.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. このセッションで • どんなときにKafkaを使うといいかわかった • Kafkaを試すために最低限必要なコンポーネントを覚えた • JUnitでKafkaを試せることがわかった • Java ClientでKafkaのpartitioning, Consumer Groupの機 能を体感した • マルチスレッドConsumerアプリケーションを書く上で最低 限注意すべきことがわかった 63
64.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Kafka Meetup JP #3 7/6(木)開催 64 以下connpassで案内予定 https://kafka-apache-jp.connpass.com/ 会場は LODGE@ヤフー
Télécharger maintenant