【知识积累】RocketMQ简介

1、官网

https://rocketmq.apache.org/docs/motivation/

2、对比

  • ActiveMQ:Java -> ActiveMQ遵循JMS标准
  • RacketMQ:Java -> RacketMQ没有实现JMS的接口,即不遵循JMS标准
  • Kafka:Scala
  • RabbitMQ:Erlang

3、作用

  • 应用解耦
  • 流量削峰
  • 大数据处理
  • 异构系统

4、选择RabbitMQ的原因?

  • java编写,容易重写框架;
  • 支持顺序消息、调度消息、事务消息、广播消息、延迟消息

5、架构

流程:

  • 集群中所有角色都将自己注册到nameserver,并定期上报,过期剔除
  • 消息生产者随机选择nameserver拉取topic的信息
  • 消息生产者向提供topioc服务的Master建立长连接,发送消息
  • 消息消费者随机选择nameserver拉取topic的信息
  • 消息消费者向对应的Master或者Slave建立长轮训消费消息

注:

  • master可以收发消息,slave只支持发。
  • producer只能跟master连,consumer可以跟master、slave连。
  • nameserver每个都是独立的,互不通信,满足AP,默认情况下不存注册信息,是无状态的。

6、Topic

  • Topic是逻辑的,一个topic是多个queue(默认4个)组成,可以进行分片,分布在多个broker上。

猜你喜欢

转载自blog.csdn.net/axin1240101543/article/details/109380259