Yahoo! JAPAN のストリーム処理プラットフォーム
•様々なデータソースをリアルタイムに各サービスに提供、
サービスの価値に貢献
Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 5
アプリログ
ソーシャルログ
Weblog
IoT
Photo by insidetwit https://www.flickr.com/photos/insidetwit/
Kafka, Stormの導入
• 2012年度初頭、開発着手
•Kafka, Storm 採用
• (2012年9月) わい、チームに配属される
• 「入ったらもう Kafka だった」
• 「Kafka ってなんだ」
Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 7
8.
Kafka 採用理由
• LinkedInで実績がある
•Stormと相性が良い
• 高可用性
• Hadoopとも連携できる
• とりあえずデータを投げればサービスをまたがって再利用
可能
• consumer group と offset という素晴らしい概念
Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 8
9.
Storm 採用理由
• 他OSSと比較してコミュニティが活発だった
•Twitterで実績がある
• 高可用性
• at least once
Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 9
http://storm.apache.org/
Agenda
• Kafka導入経緯
• 構成、周辺OSS、機能
•ユースケース
• 反省点、課題と感じているところ
Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 11
12.
大まかな構成と周辺OSS
Copyright (C) 2016Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 12
Distributed
Message Queue
Distributed
Real-time Computation
Search
Engine
Service API
13.
Packet
• Kafkaを流れるデータは全て Packetという共通フォーマットで
MessagePack形式でシリアライズされている
• 送信メッセージにメタ情報を付与
• シリアライズ時(≒ produce時)のタイムスタンプ等
• メッセージは文字列かバイト列
• PFが提供しているライブラリを使えばユーザは基本的にはシリア
ライズ形式を意識する必要がないようにしている
Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 13
14.
ストリーム処理結果の格納オプション
• 実績
• Cassandra,MySQL, 内製検索エンジン
• Kafkaの時点でデータの重複は発生するので、アプリケーションに
重複を除去する機構を入れるか、そもそも若干の重複は許容される
ユースケースでなければならない
• その点KVSは相性が良い
Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 14