7. 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/
11. Agenda
• Kafka導入経緯
• 構成、周辺OSS、機能
• ユースケース
• 反省点、課題と感じているところ
Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 11
12. 大まかな構成と周辺OSS
Copyright (C) 2016 Yahoo 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