趣IT

2020-03-01

架构师的选择,Kafka还是Rabbit MQ

RabbitMQRabbitMQ是消息代理的实现,通常称为服务总线。消息队列RabbitMQ支持开箱即用的经典消息队列。开发人员定义命名队列,然后发布者可以将消息发送到该命名队列。消费者进而使用相同的队列来检索消息以对其进行处理。然后,消息交换将产生的消息排队,以供消费者使用。云供应商为Kafka的存储层提供了替代解决方案。Kafka的流处理功能也有特定于云的开源替代方案,但是同样,这些不在本文的讨论范围之内。相反,Kafka将记录的集合存储在称为主题的类别中。对于每个主题,Kafka维护消息的分区日志。Kafka producers使用者通过维持这些分区的偏移量(或索引)并顺序读取它们来消费消息。Kafka consumers使用Kafka实现消息传递模式Kafka的实现非常适合pub / sub模式。请务必注意,Kafka会将邮件保留在分区中,直到预定的时间,无论消费者是否消费了这些邮件。