开篇
周末抽空去参加了rocketmq杭州站的Meetup,虽然之前阅读过rocketmq的一些源码,不过本身不是专业运维消息中间件的所以相对的运维经验不足,在跟公司的中间件普大神聊天的时候提到了一些问题,刚好趁这次机会一起请教了。
整个分享过程中有两个问题印象比较深刻:1、master/slave的主从配置下slave重启会重新拷贝master数据导致master的写性能下降;2、现有架构下的broker的扩容思路以及未来broker的读写分离架构,写个文章记录下。
针对问题一:现有mq的主从同步方式没办法进行限流,提出一个思路就是如果master因为主从同步导致master写入性能下降那么在条件允许的情况下实现master的写禁止。
针对问题二:现有mq的架构下也可以通过巧用mq的写禁止来实现无缝扩容,扩容思路见下面的图解,额外补充一句:这部分思路纯属个人交流没有实战操作经验,供探索。
扩容思路
说明:
- 1、 假设原来的broker集群有两个broker节点,由于容量估算导致磁盘空间不足。
- 2、 思路一:如果考虑消息可丢失可以通过删除一部分commitlog来释放空间。
- 3、 思路二:通过扩容broker来实现磁盘空间的可扩容。
说明:
- 1、 步骤一:新增3台broker节点,与原来2台broker节点组成5个broker节点集群。
- 2、 步骤二:由于旧集群的broker依然会进行数据写入,磁盘空间依旧告急。
- 3、 步骤三:对旧集群的2台broker通过admin配置命令禁止数据写入但依然允许读操作。
- 4、 效果:通过写禁止解决原broker集群的磁盘空间问题,通过原broker的读允许保证数据依然能够消费。
未来的架构
说明:
- 1.、mq的未来版本当中会针对broker进行改造,针对broker层会实现计算和存储的分离。
- 2、 计算存储分离之后,broker的功能会退化成读写层,变成无状态的一层。
- 3、 计算存储分离之后,存储层会提供存储扩容功能,具体的细节等mq的版本发布再看。
招聘信息
【招贤纳士】
欢迎热爱技术、热爱生活的你和我成为同事,和贝贝共同成长。
贝贝集团诚招算法、大数据、BI、Java、PHP、android、iOS、测试、运维、DBA等人才,有意可投递zhi.wang@beibei.com。
贝贝集团创建于2011年,旗下拥有贝贝网、贝店、贝贷等平台,致力于成为全球领先的家庭消费平台。
贝贝创始团队来自阿里巴巴,先后获得IDG资本、高榕资本、今日资本、新天域资本、北极光等数亿美金的风险投资。
公司地址:杭州市江干区普盛巷9号东谷创业园(上下班有多趟班车)