查看原文
其他

Efficient Schemas in Event Streaming using Apache Pulsar

ApachePulsar 2021-10-18

本文转载自 StreamNative 公众号,已获作者授权。

4月13日下午,我司 CEO 郭斯杰受邀在 DataPipeline & Apache Rocket Meetup 中以 Efficient Schemas in Event Streaming using Apache Pulsar 为主题做了分享。


郭斯杰是 StreamNative 的联合创始人,Apache Pulsar PMC Member 和 Apache BookKeeper PMC Chair,对 Event Streaming、流计算及其周边生态有着强烈兴趣。


Apache Pulsar 是一款分布式发布-订阅消息流系统,其特点是支持多租户,支持队列和流计算 (streaming),且实现计算存储分离。在 meetup 中,郭斯杰围绕 Apache Pulsar 内置 schema 管理及其优点进行分享。


主要内容

主讲人首先由 Pulsar 相关背景引入主题,介绍了 Pulsar 的概念、特点,Pulsar 实际应用方法、异常解析等。Pulsar 的特性及其所带来的好处主要从以下四个方面进行阐述:


1. 分布式发布-订阅消息流系统

  • 概念:在发布-订阅(pub-sub)消息模式中,生产者发布消息到 topic,消费者可订阅 topic 并处理发布过来的消息,处理完成后发送确认。一旦订阅,即使消费者已断开连接,Pulsar 也将保留所有消息。 只有在消费者确认消息已成功处理后,保留下来的消息才会被丢弃。

  • 优点:不仅是中间件,更像是流数据存储平台


2. 支持多租户:

  • 概念:可隔离命名空间,指定空间配额,并在每个租户的基础上配置身份验证和授权。

  • 优点:层级化的主题管理,利于平台业务管理


3. 支持队列和流计算:

  • 概念:队列支持无序或共享的消息传递模式,多个消费者通过点对点消息传递通道接收消息;流则为严格排序且独占通道的消息传递模式,始终只有一个消费者使用消息传递通道,且消费者需按照编写的确切顺序接收从通道发送的消息。

  • 优点:将队列和流计算统一起来,解决了很多实际问题,如智联招聘示例。


4. 实现计算存储分离:

  • 独立扩展性

  • 支持瞬时失效恢复

  • 扩容无需重新进行数据均衡,利于快速自动扩容/收容


随后斯杰重点讲解了 Pulsar schema 相关内容。应用 Pulsar schema,生产者和消费者可提前定义如何序列化和反序列化数据、如何改进数据格式、如何处理向后兼容性的问题。Schema 有基础类型(primitive)和复杂类型(complex)。


基础类型可支持如下格式: 


复杂类型中则包含简单的 Key-Value 类型和 Struct 类型。Struct 类型支持 AVRO、JSON、PROTOBUF;schema 定义用 AVRO,应用 Struct 的两种方法 Static Schema 和 Generic Schema。详细讲解,请观看视频。


https://v.qq.com/txp/iframe/player.html?width=500&height=375&auto=0&vid=d0860zek7wk


之后斯杰还介绍了 auto schema 的应用场景及其使用示例,讲解了 schema 的工作流程。在 schema 演化方面,主要探讨了兼容性问题。



最后,对于 schema 管理和应用等问题,斯杰围绕几个小主题进行了讲解,并对 Apache Pulsar 及 Schema 的优势做了总结。


更多 Pulsar 干货分享,请关注微信公众号 ApachePulsar,我们将在后续文章中推送更多优质内容。


点击“阅读全文”,查看 Pulsar schema 完整视频。

: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存