如何设计一个消息队列

编程

可以快速扩容,提高吞吐量和容量。设计一个分布式系统,类似于Kafka   broker -> topic -> partition每个 partition 放一个机器,就存一部分数据;资源不够时,增加partition-->数据迁移-->增加机器

二、落地磁盘

落地磁盘可以保证进程kill时可以寻回丢失的数据,落磁盘时要注意顺序写入,可以避免磁盘寻址开销,提高磁盘io读写性能

三、高可用性

可以参考Kafka的高可用性:多副本 -> leader & follower -> broker 挂了重新选举 leader 即可对外服务。Kafka的高可用

四、支持数据 0 丢失

可以参考Kafka的数据零丢失方案。Kafka的零丢失

以上是 如何设计一个消息队列 的全部内容, 来源链接: utcz.com/z/513417.html

回到顶部