mq
文章平均质量分 89
yymagicer
小荷才露尖尖角,早有蜻蜓立上头
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
如何设计一个消息队列
设计一个消息队列系统需要从多个维度进行考虑,包括性能、可扩展性、可靠性、一致性等。以下是一些关键点和设计思路:消息队列的核心功能是支持生产者发送消息,消费者接收消息,并确保消息的可靠传递。通常的架构如下:假设需要设计一个类似于RabbitMQ的系统,可以采用以下模块:原创 2024-10-24 15:49:25 · 797 阅读 · 0 评论 -
kafka
Kafka 提供副本机制,每个分区可以有多个副本。Topic 的分区设计使得 Kafka 天然支持水平扩展,不同的分区可以分布在不同的 broker 上,多个生产者和消费者可以并行处理同一个 topic 的消息。当某个 broker 故障时,Kafka 集群会重新分配分区的 leader,通过 Zookeeper 选举新的 leader,确保系统的高可用性。Zookeeper 保存了 Kafka 集群的所有元数据信息,比如哪些 broker 在线,topic 的分区和副本分布情况,消费者的消费偏移量等。原创 2024-10-23 16:51:45 · 980 阅读 · 0 评论 -
Rocketmq
RocketMQ 的消息模型基于发布-订阅模式,主要角色包括(生产者)、(消费者) 和(消息中间件),其中消息通过 Topic 进行分类,Queue(队列) 用于存储消息。原创 2024-10-23 16:01:20 · 716 阅读 · 0 评论 -
RabbitMQ
集群模式提供了横向扩展和容错能力。镜像队列确保队列及其消息在多个节点上复制,防止单点故障。队列分片(Quorum Queues)提供了高效的队列管理和更高的容错性。网络分区管理帮助处理集群中网络故障时的分区问题。心跳检测与自动恢复确保节点或客户端故障时的快速检测和恢复。负载均衡和自动重连提供了客户端侧的高可用支持。持久化机制确保队列和消息在 RabbitMQ 重启时不丢失。原创 2024-10-23 01:15:00 · 2306 阅读 · 0 评论
分享