目前流行的就是RabbitMq rocketMq kafka 这三个
mq模型大概分为以下几种类型
队列模型 : 先进先出 , 一对一的
发布订阅模型 : 也是先进先出, 但是是一对多的,在发布 - 订阅模型中,消息的发送方称为发布者(Publisher),消息 的接收方称为订阅者(Subscriber),服务端存放消息的容器称为主题(Topic)
RabbitMq 是基于 队列模型来实现的 ,但是他可以一对多的 因为 有Exchange, Exchange 位于生产者和队列之间,生产者并不关心将消息发送给哪个队列,而是将消息发送给 Exchange,由 Exchange 上配置的策略来决定将消息投递到哪些队列中, rocketMq kafka 这两个是基于发布订阅模式来实现的
RabbitMq rocketMq kafka 这三个 各有什么特点
RabbitMq 比较老的中间件, 轻量级、迅捷 非常容易部署和使用 ,路由的规则也非常灵活,甚至你可以自 己来实现路由规则, 但是消息堆积的支持并不好,性能是最差的 ,而且语言是 小众的,不易扩展,但与周边生态集成和兼容好
rocketMq 有着不错的性能,稳定性和可靠性,具备一个现代的消息队列应该有的几乎全部 功能和特性,并且它还在持续的成长中,是阿里开源的有丰富的中文社区, 响应 时延做了很多的优化,但是与周边生态集成和兼容不太好
kafka 拥有强大的性能及吞吐量,兼容性很好,由于“攒一波再处理”导致延迟比较高