Pulsar 基于 segment 的体系结构允许 topic 积压(backlogs)的非常多,而且是高效且没有限制的积压。 随着时间推移,这会让存储变得非常昂贵。

    有一个降低消耗的办法,那就是使用分层存储(Tiered Storage) 使用分层存储,backlog中旧的消息,将被从bookKeeper转移到更低廉的存储机制中,当然还是允许客户端进入backlog,就像什么也没有发生一样。

    层级存储

    写入bookKeeper的数据被默认复制到3台物理机。 但是,一旦segment在bookKeeper中被封闭,将会变成不可改变,并且可以被拷贝到长期存储中。 长期存储可以达到节省存储费用的目的。通过使用 Reed-Solomon error correction 机制,还可减少物理备份数量。

    Pulsar目前支持S3作为长期存储。 可以通过Rest API或者命令行接口,卸载数据到S3。 用户传入他们想要保留在bookKeeper的topic数据的数量,broker将会拷贝backlog到S3. 原始数据将在配置的延迟时长后,从bookKeeper中删除(默认4小时)。

    分层存储的配置指导,请参考 Tiered storage cookbook