rabbitmq和kafka的区别
作者:king发布时间:2023-08-04分类:日常常识浏览:22
导读:文章目录:前言如何选择[我们每天都被五花八门的广告和巧舌如簧的营销人员搞得晕头转向;被时尚潮流牵着鼻子走,信用卡严重透支;苦苦挣扎于数不清的经济新闻和理财建议中,投资收益一塌糊...
文章目录:
前言 如何选择[我们每天都被五花八门的广告和巧舌如簧的营销人员搞得晕头转向;被时尚潮流牵着鼻子走,信用卡严重透支;苦苦挣扎于数不清的经济新闻和理财建议中,投资收益一塌糊涂;买来一本又一本自助类书籍,指望从中学会塑身美-xuanze]? 开发语言 延迟队列 消息[消息[xiāo xī]这个词应用比较广泛,新鲜事就叫消息,还指报道事情的概貌而不讲述详细的经过和细节,以简要的语言文字迅速传播新近事实的新闻体裁,也是最广泛、最经常采用的新闻基本体裁。]顺序性 优先级[优先级(priority)是一种约定,优先级高的先做,优先级低的后做。]队列 消息留存 消息过滤[是一大类单元操作的总称。] 可伸缩[伸缩,伸展与收缩。]行 小结 推荐阅读 前言
我们在工作中经常会用到异步消息,主要使用两种消息模式:
消息队列 发布/订阅
消息队列:多个生产者可以向同一个消息队列发送消息,但是一个消息只能被一个消费者消费。
发布/订阅:一个消息可以被多个订阅者并发的获取和处理。
Kafka 和 RabbitMQ 都能满足如上的特性,那么我们应该如何选择使用哪一个?这两个 MQ 有什么差异性?在什么样的场景下适合使用 Kafka,什么场景下适合使用 RabbitMQ ?你是否有这样的疑惑?希望这篇文章能够[能够,(1) 表示有可能 (2) 表示具备某种能力 这个问题他能够解决 (3) 表示有条件;可以 今天下午的会议我们都能够参加。]帮助到你。
如何选择? 开发语言
Kafka:Scala,支持自定义的协议。
RabbitMQ:Erlang,支持 AMQP、MQTT、STOMP 等协议。
延迟队列
如果你有以下这样的需求[需求(demand) 是指人们有能力购买并且愿意购买某个具体商品的欲望。]场景:
生成订单 60 秒后,给用户发短信。 用户 7 天未登录给用户做召回推送。 下单 15 分钟后,未进行付款就关闭订单。
请选择 RabbitMQ,官方已提供延迟队列插件(x-delayed-message),开箱即用。
消息顺序性
如果你的需求场景是需要保证消息是有序的,例如:传递的消息是 MySQL binlog,这种消息不允许是错乱的。
请选择 Kafka,它能够保证发送到相同主题分区的所有消息都能够按照顺序处理。
优先级队列
如果你的需求场景是需要保证消息执行的优先级,例如:首先需要处理 VIP 客户的问题,然后再处理普通客户的问题。
请选择 RabbitMQ,创建队列时可设置 x-max-priority。
消息留存
如果你的需求场景是消费后的消息不马上删除而是希望能够多保留一段时间。
请选择 Kafka,它能够给每个主题配置超时时间,只要没有达到超时时间的消息都会保留下来,请放心 Kafka 的性能不依赖于存储大小,理论上它存储消息几乎不会影响性能。
消息过滤
如果你的需求场景是对接收的消息采取一定的过滤规则进行过滤。
请选择 RabbitMQ,因为它支持消息路由。不过对于 Kafka 而言,也可以通过其他方式实现。
可伸缩行
如果你的需求场景是对伸缩方面、吞吐量方面有极大的要求。
请选择 Kafka。
小结
本文纯属抛砖引玉,有问题,欢迎批评指正。
希望在两者的使用选择上能够给你带来一些思路。哈哈社推荐内容:房间消毒的方法摩托车刹车片多少公里换一次?九畹花女装 到底有没有这个牌子,在哪里都搜不到河南省公务员值班、加班、误餐补助标准春节有哪些传统风俗人们要怎么做南京市的高淳有没有五星级酒店?南昌市最好的前十名小学染发剂的危害有哪些症状取名软件哪个好怎么鉴别石头的硬度户籍是写什么东西当我们遇到困难时,该怎么办?
- 日常常识排行