消息队列简单总结

1.优势,使用场景

(1)异步处理

(2)解耦

(3)抗压

2.使用代价

(1)维护成本,挂掉怎么办,消息丢失怎么办

(2)数据一致性

3.选择消息队列

如何分析?

1.分析是否符合业务的基本要求,市面常见基本标准是否满足,接下来是性能,稳定性,安全性,最后一点是否有业界参考案例。

2.缺点,不满足什么要求,相互对比的劣势,要求成本

 

 

RabbitMq:

优点:简单,易用,具备点对点,订阅模式,消息确认等常见消息队列特点,快速上手

缺点:erlang编写,出现问题很难定位,二次开源麻烦;消息堆积能力差;与同款产品相比性能相对低点,每秒几万

参考场景:小项目,同步改异步,用来解决一部分问题,开箱即用

 

RocketMq:

优点:具备常见消息队列的功能,包括事务消息;性能高,毫秒级消费,每秒十几万消费能力;稳定,有很多项目参考案例。

缺点:与很多框架生态集成不太容易

参考场景:实时性要求高的金融业务项目

 

kafka:

优点:具备基本功能,包括事务消息;性能高,表现在处理量大不是速度快;稳定,有很多项目参考案例;大数据领域生态发展好

缺点:消息延时处理稍差,

参考场景:数据埋点,日志记录,大数据相关处理

 

4.消息模型

RabbitMq:

image.png

主要思路:

生产者通过exchange 投放到队列,然后消费者从队列拉取消息进行消费

发布-订阅模式怎么实现? 通过exchange 投放到多个队列,多个消费者消费

rabbitmq 各大模式也主要是在exchange上动手脚

 

 

RocketMq:

image.png

主要思路:

生产者生产消息根据nameserver 获取broker信息,再投递到具体的broker下的topic 的队列里面,消费者是一个组也可以是一台机器,消费一个或多个topic下队列的消息

 

发布订阅核心概念和rabbitMq 不一样的点在于:

rocketMq 是多个消费者组订阅同一个topic,只有一个队列有值,每个组各自消费

rabbitMq 是多个队列里面都有值,每个队列的消费者消费就是发布订阅 

 

5.使用

基于不同的设计思路,使用方式也不一样,各自功能也不一样

RabbitMq相关模式:

1基于队列

生产者与消费者一对一;

生产者与消费者一对多(work),只有一个能消费,不是每个都消费;

2.基于交换器exchange,发布订阅

(1)direct交换器,一对一key关联一致的队列

(2)fanout 交换器绑定的所有队列

(3)topic key通配符模糊匹配  

可以看出RabbitMq的设计以及思路还是相对简单的

 

RocketMq 相关模式

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值