1、rabbitmq的架构
- broker:每个节点运行的服务程序,功能为维护该节点的队列的增删以及转发队列操作请求。
- master queue:每个队列都分为一个主队列和若干个镜像队列。
- mirror queue:镜像队列,作为master queue的备份。在master queue所在节点挂掉之后,系统把mirror
queue提升为master queue,负责处理客户端队列操作请求。注意,mirror
queue只做镜像,设计目的不是为了承担客户端读写压力。
2、Kafka的架构
把一个队列的单一master变成多个master,一条消息要么发送到这个master queue,要么发送到另外一个master queue。
这里面的每个master queue 在Kafka中叫做Partition,即一个分片。一个队列有多个主分片,每个主分片又有若干副分片做备份,同步机制类似于RabbitMQ。
3、两者区别
吞吐量较低:Kafka和RabbitMQ都可以。
吞吐量高:Kafka。