【中间件】浅谈RocketMQ

RocketMQ是什么?
Apache RocketMQ 是阿里开源的一款高性能、高吞吐量的消息队列,前身是MetaQ。

应用场景
以下是我整理的一些业务场景。

  1. 限流:秒杀系统,其他内部生产系统(如批量升级硬件固件版本,批量变更MySQL线上数据结构等),为系统提供消息堆积的能力
  2. 系统解耦:如把注册和发邮件拆为2个系统,注册后通过发送RocketMQ消息让邮件系统消费执行,加强系统扩展性
  3. 数据同步:如mysql binlog同步
  4. 延迟处理:如订单场景,需要自动删除用户30分钟内还没处理的数据,提供延迟队列,但只支持以下的时间设定,不过基本能满足大部分业务的需求。
    1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h
  5. 实时流计算处理(flink)

RocketMQ组件

  1. NameServer:服务发现
  2. Producer:生产者
  3. Broker:中转器
  4. Consumer:消费者

主要工作流程:

  1. NameServer启动
  2. Broker启动注册到NameServer,NameServer存储了topic对应的队列信息,队列信息里面包含Broker机器关联(对应的源码对象名是QueueData),也就是NameServer维护了topic和Broker机
已标记关键词 清除标记
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符 “速评一下”
©️2020 CSDN 皮肤主题: 鲸 设计师:meimeiellie 返回首页