rocketmq介绍,先了解rmq,后研究

系统升级到一定程度,肯定会遇到不同系统之间的数据传输,之所以选择rmq研究是因为rmq源码是java的,可以学习一下,还有就是现在项目中有使用rmq,可以慢慢在实际应用中了解rmq的强大


既然用了rmq肯定还是要了解一下rmq的优点,以及能解决哪些问题,因为以后面试的时候还是会用到的。

rmq的优点如下:

  1. 高效的消费者水平扩展能力
  2. 支持高并发,分布式
  3. 亿万级数据堆积(重点)
  4. 保证数据顺序(重点)
  5. 实时消息订阅机制
  6. 较少的依赖

    缺点:

  7. 消息无法避免重复,但是自己在消费端可以控制

  8. 消息的优先级没有实现,但是可以通过其他方式实现,能解决绝大部分的业务问题

rmq涉及的问题也是需要着重了解一下的:

  1. 发布订阅功能,消息中间件的基本功能
  2. 消息优先级,rmq给的方案是根据topic区分优先级,因为rmq没有实现优先级的功能
  3. 消息顺序,这个应该说是rmq的亮点,作为阿里开发的插件,那么订单顺序这些肯定还是很靠谱的
  4. 消息过滤,生产者给的消息不可避免的有无用消息
    rmq支持两种过滤方式:一种是broker过滤,压力在broker上,省去了发给消费者的过程,一种是consumer过滤,压力在consumer,可以自定义过滤方式,但是会有很多无用的消息到consumer
  5. 消息持久化,rmq的消息是写入到磁盘的
  6. 消息可靠性,也就是出现意外消息丢失的多少,rmq可靠性很高
  7. 消息实时性
  8. 最少投递一次
  9. 消息重复,这个应该是rmq没法避免的
  10. 当队列满了怎么办?1抛异常,2按照一定策略丢消息
  11. 消息重推,业务需要,重新消费
  12. 消息堆积的能力
  13. 分布式事物
  14. 定时消息
  15. 消息重试,消费失败,再次消费,有重试次数,可配置
RocketMQ中的专业术语

1.Topic
Topic表示消息的第一级类型,比如一个电商系统的消息可以分为:交易消息、物流信息等等,一条消息必须有一个Topic
2.Tag
Tag表示消息的第二级类型,比如交易消息可以分为:交易创建消息、交易完成消息等等,一条消息可以没有Tag,RocketMQ提供两级消息分类,方便大家灵活控制
3.Queue(消息队列)
一个topic下,我们可以设置多个queue(消息队列)。当我们发送消息时,需要指定该消息的topic,RocketMQ会轮训该topic下的所有队列,将消息发送出去
4.Producer
Producer表示消息的生产者,消息队列的本质就是实现了publish-subscribe模式,生产者生产消息,消费者消费消息,所以这里的Producer就是用来生产和发送消息的,一般指业务系统
5.Producer Group
是一类Producer的集合名词,这类producer通常发送一类消息,且发送逻辑一致。
6.broker
broker是rmq的核心,消息的中转者,负责存储和转发消息。可以理解为消息队列服务器,提供了消息的接收、存储、拉取和转发服务
7.NameServer
名称服务,两个功能:
接收broker的请求,注册broker的路由信息,所以启动小例子的时候都是要先启动NameServer服务,然后启动broker并在NameServer注册
接收client的请求,根据某个topic获取其到broker的路由信息
NameServer没有状态,可以横向扩展,每个broker在启动的时候会到NameServer注册,producer在发送消息前会根据topic到NameServer获取路由信息,consumer也会定时获取topic信息。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值