Pulsar’s segment oriented architecture allows for topic backlogs to grow very large, effectively without limit. However, this can become expensive over time.

    有一个降低消耗的办法,那就是使用分层存储(Tiered Storage) 通过分层存储,在 backlog 中的旧消息可以从 BookKeeper 转移到更廉价的存储中,不出其他问题,客户端将仍然可以访问 backlog。

    层级存储

    默认情况下写入到 BookKeeper 的数据会复制三个物理机副本。 但是,一旦一个 segment 被BookKeep 封存(sealed),该 segment 就变得不可改变,此时就可以复制到长期存储中去了。 长期存储可以达到节省存储费用的目的。通过使用 Reed-Solomon error correction 机制,还可减少物理备份数量。

    Pulsar 当前支持 S3, Google Cloud Storage (GCS) 和文件系统来做长期存储(long term store) 可以通过 REST API 或者命令行接口,将数据卸载(Offloading)到长期存储中。 用户传入他们想要保留在 BookKeeper 上的 topic 数据总量,Broker 将复制所有 backlog 数据到长期存储。 在 BookKeeper 上的原始数据将会被删除(延迟可配,默认4小时)。

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