24. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 24
Negative ack
• V2.4からサポート
• Negative ackされたメッセージは再送される
• 受信メッセージの処理に失敗した場合に利⽤
try {
Message msg = consumer.receive();
// Do something
} catch (Exception e) {
// Failed to process message
consumer.negativeAcknowledge(msg);
}
25. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 25
Clients
Pulsar • Java
• C++
• Python
• Go
• Node.js
• WebSocket
Kafka • Java
• And more (third-pirty)
• Pulsarは「WebSocket APIで複数⾔語をカバー」から、
「各⾔語のライブラリを充実」に
• Kafkaはサードパーティ製のクライアントが豊富
26. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 26
Pure Go client
• 開発中
• https://github.com/apache/pulsar-client-go
• Not based on the C++ client library
• Go 1.11+
• 2019/03 initial commit
• 1年前にC++ client baseのlibraryをリリース
27. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 27
Node.js client
• 開発中
• https://github.com/apache/pulsar-client-node
• Based on C++ client library
• Node 10+
• 2019/03 initial commit
// Create a client
const client = new Pulsar.Client({
serviceUrl: 'pulsar://localhost:6650',
});
// Create a producer
const producer = await client.createProducer({
topic: 'persistent://public/default/my-topic',
});
// Send a message
await producer.send({ data: Buffer.from('Hello World!') });
28. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 28
Pulsar Manager
• 開発中
• Vue.js + Java
• Web UIからテナントなどの作成、stats閲覧、各種設定が可能
29. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 29
Pulsar Manager
30. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 30
Pulsar Manager
31. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
まとめ
31
まとめ
n Apache Pulsar
› 機能追加など活発に開発が⾏われている
› カンファレンスへの開催 / 参加も活発
› 順調にstar数、contributor数も推移
n ドキュメント、お問い合わせ
› ドキュメント : https://pulsar.apache.org
› Slack : https://apache-pulsar.slack.com
› メール : users@pulsar.apache.org
32. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 32
Pulsar Meetup 北京の参加報告
33. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 33
⾃⼰紹介
栗原 望
経歴︓
2012/04 ヤフー株式会社に新卒⼊社
2012/10 ユーザーの属性情報に関連する社内向けプラットフォームの開発
2015/07 ヤフオクのBEシステム再構築
2016/10 「Pulsar」を使った社内向けメッセージングプラットフォームの開発
2017/06~ 「Pulsar」のコミッター
趣味:
ぷよぷよ
ボードゲームいろいろ
34. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Pulsar Meetup 北京 (2019/08/17)
• https://www.huodongxing.com/event/1502359221000
• 参加者: 50名くらい
34
35. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Meetups in China
35
36. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Users in China
36
• 中国ではMQを使っている企業が多い
• eコマースが発達し、流れるトランザクションの量が膨⼤
• 以前はRabbitMQを使っているところが多かった
• 最近はより⾼いスケーラビリティを求めてKafkaやPulsarが使われている
37. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
KoP (Kafka on Pulsar)
• https://github.com/apache/pulsar/wiki/PIP-42%3A-KoP---Kafka-on-Pulsar
• Pulsarの上にKafka Protocol Handlerを載せた
• Kafka Clientが直接Pulsarに接続できるように
37
38. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Zhaopin in Pulsar community
• Pulsarメンバーは2⼈(!)
• PulsarをEvent処理に使っている: https://www.slideshare.net/hustlmsp/how-
zhaopin-built-its-event-center-using-apache-pulsar
• 1⽇あたり平均数百億メッセージ
• Key_Sharedサブスクリプションなどで貢献
38
39. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Apache Pulsar at Tencent TEG: use cases and
best practices
• Tencentでの利⽤例
• 課⾦周りでPulsarを使っている: ⼀貫性、可⽤性、ストレージ容量、レイテンシ
• 8 clusters, 600+ topics
39
40. Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
まとめ
中国のPulsarコミュニティは予想よりかなり⼤きかった
• Tencentなど⼤企業もPulsarを使っている
• Contributorも数名来ていた
Kafkaは中国でも強い
• Kafkaユーザーに簡単に移⾏してもらうためのKoP(Kafka on Pulsar)
(料理が美味しかった︕)
40