上半部分是AMQP
下半部分是Kafka 架构(画得乱了一些)
因为也学习过Kafka,所以就一起画了一下,对比一下,其实严格的来讲这两者是不太好放在一块的,毕竟一个是协议,一个是架构,但如果只是单独画AMQP,因为也是第一次接触这个东西,一看到这个就觉得这个东西理所当然就是这个样子,但是一和别的MQ进行对比一下就可以看出一些不同之处。
消费者、生产者
这个是直接一眼能看出来的,概念上几乎完全一致
AMQP肯定也是支持多生产者、多消费者的只是这里没有画出来,但消费者那方面是不是有消费者组的概念呢?kafka中消费的限制是一个partition只能被一个消费者组中的一个消费者所消费,AMQP是否也有这样的限制?
Exchange&Queue 、 Topic&Partition
Exchange会根据路由键进行消息的转发,到具体的Queue;
Topic和Partition也是明显的上下级关系,但自身似乎不具备分发的能力,其只是一个逻辑上的概念。
消息的发送、分配
从结构上看,这是区别最大的地方,也是让我比较疑惑的地方,类比kafka中的发送,通过分区器,可以直接向指定Topic的Partition发送消息,实现精准打击,这个分区的过程是由客户端来进行的,而AMQP中消息的发送是要先进入Channel,再进入Exchange,由Exchange来完成分配消息。