-
首先这个 mq 支持可伸缩性,需要的时候快速扩容,就可以增加吞吐量和容量,设计个分布式的系统,参照一下 kafka 的设计理念,broker -> topic -> partition,每个 partition 放一个机器,存一部分数据。如果现在资源不够了,给 topic 增加 partition,然后做数据迁移,增加机器。
-
其次考虑一下 mq 的数据落地,落磁盘才能保证进程挂了数据不丢。落磁盘的时候顺序写,没有磁盘随机读写的寻址开销,磁盘顺序读写的性能是很高的,这就是 kafka 的思路。
-
其次考虑一下 mq 的可用性,具体参考 kafka 的高可用保障机制。多副本 -> leader & follower -> broker 挂了重新选举 leader 即可对外服务。
-
支持数据零丢失参考 kafka 数据零丢失方案。
网友评论