开发者社区> 问答> 正文

Pravega 具体是怎么实现的呢?

已解决

Pravega 具体是怎么实现的呢?

展开
收起
詹姆斯邦德00 2022-06-29 17:06:32 413 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    当创建一个 stream 的时候,和其他可扩展系统不同,用户并不需要指定并发的个Pravega 内部,segment 是真正的数据存储单元。一个 stream 可以拥有一个或多个segment(s)。Pravega 通过动态调整 segment 的个数实现动态扩展。

    所有写入 stream 的数据都被当作是一串 append only 的 bytes 最终写入 segment 中。可以是一行 log,可以是一张图片,通过 serializer/deserializer 决定语义,没有格式的限制,也没有必须是小文件的限制。

    当 stream 拥有多个 segment 的时候,数据会并发写入这多个 segment 中。这多个segment 将 namespace 分成同等数量的 key space ,写入的数据可以通过绑定 routingkey,决定自己写入哪个 key space(segment)中。相同 routing key 的数据会被写入同一个 segment 中,获得 order 保证。比如,传感器产生的连续数据都可以使用传感器的设备号作为 routing key,以保证同一传感器产生的数据拥有相同的 routing key 而被写入同一个 segment ,以保证读取时的时序性。实际上,Pravega 的 transaction,exactly-once等特性正是基于此实现的。

    以上内容摘自《开源大数据前瞻与应用实战》电子书,点击https://developer.aliyun.com/topic/download?id=1153可下载完成版

    2022-06-30 16:18:01
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
阿里云开发者社区官方技术圈,用户产品功能发布、用户反馈收集等。
问答排行榜
最热
最新

相关电子书

更多
Storm源码走读笔记 立即下载
深入理解分布式事务:原理与实战(试读版) 立即下载
基于HLC的分布式事务实现深度剖析 立即下载