脉冲星 8 月脉动 | Pulsar 2.5.0 功能预览,StreamNative 即将开源 Pulsar Manager

脉冲星8月脉动.png

阅读本文需要约 11 分钟。

本月看点速览

  • 产品动态

    • Apache Pulsar 2.5.0 功能预览

    • Apache Pulsar 2.4.1 功能预览

  • 社区动态

    • Apache Pulsar Meetup 北京站完美落幕

    • StreamNative 即将开源 Apache Pulsar Manager

    • StreamNative 引入 KoP 连接 Kafka 生态

    • Apache Pulsar 融合大数据周边生态

    • StreamNative 成为 Flink Forward Berlin 首家 Startup Sponsor

    • Apache Pulsar 在全球举办多场 Meetup

  • 技术干货

    • 用户案例(腾讯、雅虎和 EMQ)

    • 技术博客(Pulsar IO connector 系列和 Pulsar Flink connector 等)

产品动态

整个 8 月,Pulsar 2.5.0 版本和 2.4.1 版本的开发在紧张有序地进行,以下是本月的新增功能和改进提高。

Apache Pulsar 2.5.0 功能预览

新增功能

PIP 39: Namespace Change Events

Pulsar 是一个多租户事件流系统,管理员可以通过在不同级别设置策略来管理租户和命名空间,retention、存储配额等策略只能在命名空间级别设置。 在许多用例中,用户希望能在 topic 级别配置相关策略。 Pulsar 2.5.0 支持用户在 topic 级别配置相关策略。

更多信息,参阅 PIP-39

PIP 31:事务支持

目前,Pulsar 通过 Idempotent Producer 支持在单个 partition 中的 exactly-once 语义。Idempotent Producer 保证 Producer 发送的消息在不丢失的情况下仅会被持久化一次。但是,当 Producer 发送消息到多个 partition 时,不能保证消息发送的原子性。同样,Pulsar Functions 在处理多个事件或者输出一组结果到不同 topic partition 时,不能保证计算的原子性。PIP-31 通过增加对事务的支持来解决上述场景面临的问题。Pulsar 2.5.0 提供事务支持。

更多信息,参阅 PIP-31

改进提高

Broker

  • 用户设置 autoSkipNonRecoverableData时,如果 ledger 中的数据被删除,机器可以自动回复 cursor 的配置。但是 Expiry-monitor 并不会使用该标志,这就导致在清理过期的消息时,如果遇到 managed-ledger 相关异常时,程序会被 blocked。在 Pulsar 2.5.0 中, 启用 autoSkipNonRecoverableData 标志时,Expiry-monitor 可以跳过不可恢复的 managed-ledger 异常(例如,data/ledger 不再存在)。

    更多信息,参阅 PR-4818

Schema

  • 当前 KeyValue 的 schema 不支持使用 AUTO_CONSUME,在 Pulsar 2.5.0 中重构了 Schema 接口,支持在订阅之前获取 AutoConsumeSchemaKeyValueSchema 的 Schema 信息。

    更多信息,参阅 PR-4839

  • 为 Schema 添加新的 Restful API 接口:

    • getAllVersions: 对于给定的 topic,返回 Schema version 的列表。

    • testCompatibility : 支持在不注册 Schema 的情况下测试其兼容性。

    • getVersionBySchema: 支持通过 Schema 定义找到 Schema 对应的版本。

    更多信息,参阅 PR-4800

Client

  • 为 Pulsar-client-cpp 中 batch 场景下的 producer 提供一种方便的方式来获取 send 的 callback 信息。

更多信息,参阅 PR-4885

  • 在 ConsumerImpl中,将 getLastMessageId 对外暴漏给用户使用。

    更多信息,参阅 PR-4911

SQL

  • 在 Pulsar SQL 中增加 checkstyle 插件,检查并修复之前代码模块中的格式错误。

    更多信息,参阅 PR-4882

  • 在 Pulsar SQL 中显示 table 的列表时将返回 partitioned topic 的 name 信息,当与某些 UI 工具集成时,无法选择具体的 partitioned topic。在 Pulsar 2.5.0 中,将 partitioned topic 的 name 作为 Pulsar SQL 表中的内部列,允许用户根据指定的 partition 信息获取 partition 相关的数据。

    更多信息,参阅 PR-4888

Function

  • 在当前版本中,运行 Pulsar Functions、source 和 sink 时,资源的 requestslimits 被设置为同一个值,这本身并无问题,但在集群模式下,资源的实际利用率略低。为了提高资源的实际利用率,在 function-worker.yml 中新增了 cpuOverCommitRatiomemoryOverCommitRatio 配置项,允许用户灵活配置具体资源的使用率情况。

更多信息,参阅 PR-4829

Pulsar-Kafka

  • 目前,pulsar-kafka 的适配器使用 Kafka 0.10.x 版本。为了使低版本的用户快捷地迁移至 Pulsar,Pulsar 2.5.0 的 pulsar-kafka 适配器将同时支持 kafka-api-version 0.9.Xkafka-api-version 0.8.X 版本。

更多信息,参阅 PR-4886PR-4797

Apache Pulsar 2.4.1 功能预览

改进提高

Broker

  • 在 Broker 中,lastPosition 会在重启 manageLedger 时进行更新。如果创建一个空 Ledger,之后不重启 manageLedger,此时,当用户新建一个 consumer 或 producer,会再产生一个 Ledger,lastPosition 会指向前面空的 Ledger,而 firstPosition 会指向新的 Ledger,导致 firstPositionlastPosition 靠前。

    更多信息,参阅 PR-4853

  • 修复了 uninitializedCursorsManagedLedgerImpl.asyncOpenCursor 中并发访问的问题。

    更多信息,参阅 PR-4837

Schema

  • 修复了 GetSchema() 在请求中没有 schema version 的处理逻辑,Pulsar 2.4.1 将 GetSchemaResponse 返回至 client。

    更多信息,参阅 PR-4975

  • StructSchema LoadingCache 用于缓存读取器,但其对应的 key 为 byte[] 类型,它将与地址的哈希码进行比较。因此,每个解码都会生成一个新的读取器。 Pulsar 2.4.1 更改了 LoadingCache 的密钥类型,修复了该问题。

更多信息,参阅 PR-4962

  • 在 pulsar-sql 的使用场景下,当 Pulsar 往 schema registry 中存储 byte[] 类型的 schema 时,可能会报错。导致该问题的原因是当某一 topic 未被指定具体的 schema 时,没有处理 not found schema 异常。Pulsar 2.4.1 修复了该问题,并在未指定具体 schema 类型时,使用默认的 schema 类型。

    更多信息,参阅 PR-4890

Client

  • 为了保留已经 Ack 的数据,Pulsar 提供了相应的 Retention 策略,用户能根据需求进行配置。默认情况下,retention size 的值为 0,这表示需要保存消息的大小无限大,但是这个行为并未生效,Pulsar 2.4.1 修复了该问题。

    更多信息,参阅 PR-4825

  • Producer 与 consumer 的拦截器功能只 catch 了相关的异常信息,并没有 catch 相关的 error 信息,Pulsar 2.4.1 修复了该问题。

    更多信息,参阅 PR-4860

  • 在 CPP client 的 BatchMessageTest 测试场景中,不支持获取指定的错误返回类型。Pulsar 2.4.1 添加了新的方法 producerFailMessages,允许返回指定的错误类型。

    更多信息,参阅 PR-4873

  • 用户能创建只有 1 个 partition 的 partition topic,但在 Pulsar Client 中该行为无法正常工作。Pulsar 2.4.1 修复了该问题,确保用户可以创建只有一个 partition 的 partition topic。

    更多信息,参阅 PR-4883PR-5016

  • 在 Java Client 中,用户启用 batch 功能时,在 message 中无法获取到 replicator_to 字段。Pulsar 2.4.1 将 replicator_to 字段添加到 message 中,确保用户可以获取到相关的信息。

    更多信息,参阅 PR-4930

  • Pulsar 使用的 jackson-databind 版本存在安全漏洞。Pulsar 2.4.1 将 jackson-databind 版本升级到 2.9.9.3。

    更多信息,参阅 PR-5011

  • Pulsar-client-cpp 中的 snappy 压缩器在编译时会出现 raise undeclared identifier 相关错误。Pulsar 2.4.1 修复该问题并确保 snappy 压缩器可以正确地工作。

    更多信息,参阅 PR-4972

Connector

  • JDBC sink 所有操作会指定具体的 action 是属于哪种操作,包括insert、delete 和 update。Pulsar 2.4.1 为 action 设置了默认的处理行为。如果不显式指定,action 的操作默认作为 INSERT。

    更多信息,参阅 PR-4862

Function

  • 在 Pulsar Functions 中,对于像使用 KubernetesRuntime 这类的外部 runtime 管理器,当将某些 Function 实例从一台机器迁移到另一台机器时,Function 需要重新初始化 GRPC 类似的内容,否则 Pulsar Function 无法正常工作。

    更多信息,参阅 PR-5007

  • Pulsar Functions 的 jar 支持两种形式:用户手动上传或从 Bookkeeper 通过 URL 的形式下载 Function 的 pkg。当前,使用 FunctionActioner 下载文件时,可能会造成文件描述符泄漏。Pulsar 2.4.1 修复了该问题。

    更多信息,参阅 PR-4970

社区动态

本月,多方共同促进 Apache Pulsar 社区繁荣,Pulsar 发展势不可挡。

Apache Pulsar Meetup 北京站完美落幕

2019 年 8 月 17 日, Apache Pulsar Meetup 在北京举行,开启了中国之旅第五站。本次 Meetup 由 StreamNative 主办,联合 Yahoo! Japan、Tencent、智联招聘、EMQ 和 Apache Flink 社区等共同合作。

本次 Meetup 的内容为:

  • Nozomi Kurihara:Apache Pulsar at Yahoo! Japan

  • 翟佳:Kafka on Pulsar (KoP)

  • 李鹏辉/丛搏:智联招聘如何参与社区开发以及 Key_Shared 等近期贡献特性详解

  • 刘德志:Apache Pulsar 在腾讯计费场景下的实践

  • 郭斯杰/张勇:Pulsar 2.5.0 事务功能预览

  • 金发华:Apache Pulsar 在 EMQ 物联网平台产品 ActorCloud 上的应用

  • 唐云:监控流系统中的 Flink 状态管理

  • 申毅杰:Apache Pulsar 和与大数据生态的集成与实践

更多信息,参阅 [Recap] Apache Pulsar Meetup 北京站

StreamNative 即将开源 Apache Pulsar Manager

此前,StreamNative 和 Yahoo! Japan 各自研发了 Pulsar 管理工具。Apache Pulsar Meetup 北京站结束后,双方进行了深入的技术交流和充分的探讨,共同决定合并各自开发的 Pulsar 管理工具,并将在未来开源。这标志着 StreamNative 引领了 Pulsar 社区国际化合作共赢的新方向,并在推动 Pulsar 社区全球化发展的道路上又向前迈进了一大步。

StreamNative 引入 KoP 连接 Kafka 生态

StreamNative 开创性地研发了 KoP(Kafka on Pulsar),并在 Apache Pulsar Meetup 北京站上首次公开分享了 KoP 的研发进展与实施情况

KoP 在 Pulsar 上原生支持 Kafka 协议,用户可以使用 Pulsar 作为底层基础设施,而无需修改基于 Kafka 的各种应用和服务。StreamNative 通过 KoP 帮助用户不受应用迁移和重写所困扰,高效便捷地帮助用户解决了痛点问题,并开创性地连接了 Pulsar 和 Kafka 两大开源社区**。StreamNative 秉承“开源、开放”的理念,积极促进 Pulsar 与多方开源社区的繁荣与发展。

Apache Pulsar 融合大数据周边生态

StreamNatvie 长期致力于 Pulsar 与大数据周边生态的融合,并积极反馈 Pulsar 社区。

StreamNative 融合 Apache Pulsar 与 Apache Flink

2019 年 8 月 12 日,Apache Pulsar & BookKeeper PMC 成员、StreamNative 联合创始人郭斯杰受邀参加 Apache Flink Meetup(西雅图站),发表了主题为《When Apache Pulsar Meets Apache Flink》演讲。

Pulsar 是分片存储的架构,Flink 能在同一框架下处理批流工作负载。在大规模弹性数据处理的场景下,两个开源框架可以融合集成,构建实时流仓库。

郭斯杰讲述了 Pulsar 如何提供统一的数据层视图、如何使用 Flink 统一的计算和弹性数据处理能力,并分享了 Pulsar 与 Flink 的最新融合进展(特别是 effectively-once 和 schema 方面的集成)。

更多信息,参阅 Pulsar 和 Flink 的批流融合

另外,2019 年 8 月 31 日,StreamNative 的申毅杰博士将做客“2019 世界人工智能大会(WAIC)”,参加“大数据 AI 开源生态”高端论坛,发表主题为《基于 Apache Pulsar 和 Apache Flink 进行批流一体的弹性数据处理》的演讲。

更多关于此次论坛演讲日程和嘉宾的信息,参阅 大数据 AI 开源生态论坛-演讲日程表

近期,StreamNatvie 将开源与 Apache Flink 1.9 集成的 Apache Pulsar Connector,我们将第一时间公布最新进展,敬请期待。

StreamNative 融合 Apache Pulsar 与 Apache Spark

2019 年 7 月 9 日,StreamNatvie 开源了 Apache Pulsar Spark Connector,通过该 connector,用户能从 Spark 读取 Pulsar 数据和向 Pulsar 写入 Spark 数据。

更多信息,参阅:

StreamNative 成为 Flink Forward Berlin 首家 Startup Sponsor

Apache Pulsar 社区欣欣向荣,发展稳步向前,离不开各方的支持与帮助。StreamNative 作为 Pulsar 的主要倡导者,一直竭力推进 Pulsar 的发展,并积极促进 Pulsar 与其它开源社区的密切合作,受到业界高度关注和认可。

2018 年 8 月 1 日,Flink Forward 官方宣布,StreamNative 正式成为 Flink Forward Europe 2019 首家 Startup Sponsor!StreamNative 成员将在今年 10 月赴往欧洲参加 Flink Forward Europe,继续推进 Pulsar 与其它开源社区的发展。

更多信息,参阅 StreamNative 成为 Flink Forward Europe 2019 首家 Startup Sponsor

Apache Pulsar 在全球举办多场 Meetup

  • 2019 年 8 月 21 日,Thor Sigurjonsson 在 Utah Data Engineering Meetup 发表了主题为《Messaging Fabric at Overstock.com Built with Apache Pulsar》演讲。

    更多信息,参阅 Utah Data Engineering Meetup - Real Time

  • 2019 年 8 月 27 日,Matti-Pekka Laaksonen 在 Apache Kafka Meetup 赫尔辛基站发表了主题为《Apache Pulsar and Real Time Infrastructure in Public Transport》演讲。

    更多信息,参阅 Apache Kafka Meetup - Helsinki

技术干货

本月发布了多篇用户案例和技术文档。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容