4. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 4
クライアント
Kafka • Java
• And more (third-pirty)
Pulsar • Java
• C++
• Python
• WebSocket
• Kafkaはサードパーティ製のクライアントが豊富
• PulsarはWebSocket APIで複数言語をカバー
5. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 5
他アプリケーションとの連携
Kafka • Storm
• Spark
• Flink
• Flume
• And more
Pulsar • Storm
• Spark
• Heron
Kafkaは様々なストリーム処理フレームワークと連携可能
6. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 6
アーキテクチャ
Producer Consumer
Broker 1 Broker 2 Broker 3
Bookie1
Kafka Pulsar
Producer Consumer
Broker 1 Broker 2 Broker 3
Partition
(copy)
Partition
(lead)
Partition
(copy) Bookie2 Bookie3
B
A
C
B
A
C
B
A
C
A A
B
B
C C
• Brokerがデータを保持しない
• データがBookie全体に分散するので1台あたりの
容量はネックにならない
• BrokerとBookieを独立してスケールできる
• どちらを増やす際もデータの再配置は不要
• 負荷に応じて担当Brokerが自動的に移動
• 1パーティションのデータ容量 < Brokerの容量
• トピック数 * パーティション数のディレクトリが生成
されるが、大規模な場合そこがボトルネックになる可
能性がある
• Brokerを増やす際はデータの再配置が必要
15. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Japan Pulsar User Group
Japan Pulsar User Groupにご参加ください!
https://japan-pulsar-user-group.connpass.com/
short URL: https://yahoo.jp/T2s7Up
16. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
参考文献
• Comparing Pulsar and Kafka: unified queuing and streaming
• Comparing Pulsar and Kafka: how a segment-based architecture delivers better
performance, scalability, and resilience
• How to migrate Apache Kafka applications to Apache Pulsar
• Introducing Pulsar Functions
17. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 17
Appendix
18. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 18
システム構成図 ■Broker
• クライアントとのメッセージの
やり取りを担当
■Bookie
• トピックに送信されたメッセージや
それに関連するデータを保存
■ZooKeeper
• トピックの管理に必要なメタ情報を
保存
• Local ZKはクラスタ内に閉じた
情報を担当
• Global ZKは全てのクラスタで
共有すべき情報を担当
Producer Consumer
Broker 1 Broker 2 Broker 3
Bookie
1
Local
ZooKeeper
Bookie
2
Bookie
3
Pulsar クラスタ
Global
ZooKeeper
19. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 19
Apache BookKeeperとは?
• オープンソースの分散型ログストレージサービス
• データを複製し複数のノード(Bookie)に分散して保存 → 強い耐障害性
• ノード数を増やせば容量と速度の向上が可能 → スケーラブル
A
Bookie2 Bookie3
D
C
A
B
D
B
C
Bookie1
データの複製数は自由に変更可能
Apache BookKeeperはApache Software Foundationの
米国およびその他の国における登録商標または商標です。