• shan
    2023-09-25 来自河南
    总结 存算分离 存算分离指的是计算层和存储层分离架构,分开部署,计算层指消耗计算资源的功能模块,存储层指的是数据存储相关功能,在存算分离架构下,通常计算层需要使用存储层提供的SDK将数据写入存储层。 存算分离架构可以更好的适应云原生,进行动态扩容、弹性伸缩等。 存储层引擎 (1)对象存储:各个云厂商提供的商业化对象存储服务,如AWS的S3、腾讯云COS; 优点:局部分布式可靠存储能力、存储成本低。 缺点:读写方式不够灵活,流式读写性能较低,难以在大规模实时流数据场景中使用。 (2)分布式存储:一些专门提供分布式数据存储的组件,如HDFS、BookKeeper等; 优点:具体分布式存储能力,读写性能较高。 缺点:存储集群本身有一定稳定性和可靠性。 (3)虚拟云盘:云厂商提供在线云盘服务。 优点:支持分布式可靠存储能力。 缺点:云盘需要绑定节点,同一时间只允许一台Broker写入数据到云盘。 一般选用分布式存储方案,读写性能高,并且会提供多语言的流式写入API。如Pulsar的存储层使用的是BookKeeper。 主流存算分离架构MQ RocketMQ 5.0之前是存算一体,功能都在Broker上,在5.0之后,往存算分离架构方向演化。Pulsar一开始设计就是存算分离的架构。 1. RocketMQ 5.0架构 RocketMQ 5.0在原先Broker集群基础上增加了Proxy层,生产者和消费者可以通过Proxy层将转发请求到Broker中,不过当前Proxy层中并没有计算的逻辑,计算存储逻辑还是在Broker中,所以并不算真正意义上的存算分离。 2. Pulsar架构 Pulsar选用了Apache BookKeeper作为存储层引擎,Bookeeper设计的初衷就是用来高性能地存储分布式流日志的,具备流式读写的能力,写入读取性能较高,具备分布式存储特性。 客户端生成消费请求,首先发送到Broker中,Broker负责处理计算逻辑,然后再通过与Bookeeper交换进行数据的读写,实现存算分离。 存算分离架构,计算层实现弹性关键点: (1)Topic可以快速迁移,不需要进行消息数据搬迁; (2)系统可以自动化均衡迁移,不需要人工介入; (3)迁移过程快速,对集群没有影响;
    展开
    
    