引言
从最近一份工作以来,一直从事MQ相关工作,先后投入到了pulsar与kafka的研究中已有一年多时间。“服务好周边业务团队”是中间件团队的宗旨,我也在消息中间件方面一直致力于帮助周边业务团队更好的使用pulsar与kafka服务,所以对这两个消息中间件的底层有一定的了解。最近突然有想法能不能自己实现一个包含了pulsar与kafka特性的MQ,遂有了此系列文章。
目标
存算分离,分布式,高可用,高性能。
我们希望像pulsar一样,计算与存储分离,这是设计的第一原则。其次再考虑分布式部署,高可用和高性能的优化。
从何处发力
- 计算层 自己实现
- 存储层 自己实现
- 协调层 使用ETCD实现
我们的焦点需要关注在计算层和存储层上。存储层用来存储消息内容,计算层用来做主题,订阅生产消费等逻辑处理。协调服务使用etcd实现,为何择用etcd作为协调服务,理由是etcd是属于go语言生态的,而且足够稳定,我们会将整个元数据信息存放在etcd中。
项目定义
项目名:bulk , 顾名思义 -- 巨量写。
存储层设计
计算层设计
...挖坑待填