Bookie 存储架构源码剖析
一、Pulsar存储架构简析 Pulsar作为新一代MQ中间件,在底层架构设计上充分贯彻了存算分离的思想,broker与Bookeeper两个组件独立部署,前者负责流量的调度、聚合、计算,后者负责数据的存储,这也契合了云原生下k8s大行其道的时代背景。Bookeeper又名Bookie ,是一个单独的存储引擎。在组件关系上,broker深度依赖Bookie,内部集成了 Bookie的client端,broker和Bookie之间基于TCP通信,使用protobuf。 Pulsar整体架构 消息流从client端发送到broker,经过broker的计算、转化、路由后再次被分发到具体的Bookie节点,一条消息被存储几份是可配置的。数据的高可用由broker来保障而非Bookie,Bookie只是一个简单的单机存储引擎。一般而言数据多副本有两种主要的分发方式:一种是基于主从模式,主节点在收到数据写入后,将数据二次分发到从节点,从节点的数据流源头只有主节点,可以存在多个从节点,这种架构典型实现有rocketMQ ,MySQL等;另一种方式是并行多份写入多份相同的数据,在接收到SDK侧数据...
