【中间件】浅谈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机器的映射关系
  3. Producer,Consumer从NameServer拉取Topic路由信息
  4. Producer发送信息到指定topic,会判断是否存在该topic
  5. Consumer拉取监听的topic信息进行消费

RocketMQ有这么多组件,有没有可视化界面进行运维呢?有的。

猜你喜欢

转载自blog.csdn.net/bojie5744/article/details/105603110