SlideShare a Scribd company logo
Xiaolong Ran @wolfstudy
Go In Apache Pulsar
Apache Pulsar committer
01 Pulsar && Github 02 Apache Pulsar 概括
03 Go Client In Pulsar 04 Q && A
Go in Apache
Pulsar
Introduction to
Apache Pulsar Community In Github
01
A brief history of Apache Pulsar
2010
Apache BookKeeper
2011
Hedwig / SNP
2013
Yahoo!
Cloud Messaging
2016
Open Source
2017
Enter
ASF
2018
Top Level
Apache Project
2019
100+ Adopters
10+ Meetups
…
Apache Pulsar Users (China) http://pulsar.apache.org/en/powered-by/
Apache Pulsar Users (global) http://pulsar.apache.org/en/powered-by/
Apache Pulsar Community
• 180+ contributors, 30+ committers, 24+ PMC
• 4000+ commits
• 1100+ forks, 4500+ stars
• 1000+ active members on Slack
• 1000+ active members on WeChat
Apache Pulsar Contributions
Apache Pulsar PR / Issues
Apache Pulsar Git clones
Visitors of Apache Pulsar Community
Apache Pulasr 概括
02
What is Apache Pulsar
Apache Pulsar
Flexible Messaging
Multi Tenancy
Geo-Replication
Cloud-native Architecture
Cloud-native Architecture
Segment Centric Storage
Tiered Storage
•Infinite Stream: 以流的⽅式永远保存原始
数据
•分区的容量不再受限
•充分利⽤云存储或者现有的廉价存储
(e.g.HDFS)
•数据统⼀表征:客户端不需要关⼼数据究竟
存储在哪⾥
Pulsar Functions
Go Client In Apache Pulasr
03
CGO Is Not Go
• Go 最初的定位(下⼀代的 C 语⾔)
• 混合编程 (C && Go)
• CGO 是⼀种⼯具,不是对 Go 语⾔的扩展
• 不⽀持交叉编译
性能损耗
• Go 的内存模型与 C 的不⼀致
• ⼤量的 runtime.cgocall() <go tool objdump>
• 阻塞可能导致 M 的数量陡增
• 内存管理的⽅式不同
使⽤ CGO 的感悟
• ⼀定要严格控制边界
• 谨慎使⽤指针
• 注意类型转换
• 尽量减少 C 的调⽤
• 注意内存在哪⾥分配
How to join Apache Pulsar Community
• Mailing lists:
dev@pulsar.apache.org
users@pulsar.apache.org
• Github:
https://github.com/apache/pulsar
https://github.com/apache/pulsar-translation
• Slack:
https://apache-pulsar.slack.com/
https://apache-pulsar.herokuapp.com/
• WeChat
回复:进群
How to join Apache Pulsar community
Global
• Comm
• Content
• Video
• slides
• Meetup
China
https://streamnative.io/
Thank You
Q && A

More Related Content

Apache Pulsar and Github