rocketMQ 的简单介绍

rocketMQ是阿里开源产品,后捐献给了apache成为旗下产品。

rocketMQ是根据amqp协议采用java语言编写的成熟企业级消息产品。

This diagram shows the flow of messages through the AMQ model server:

rocketMQ 的简单介绍_第1张图片

路由规则:从exchange路由到messageQueue的逻辑:

The Direct Exchange Type:直连模式,精确匹配routing key;

The Fanout Exchange Type:广播模式;

The Topic Exchange Type:Topic模式,采用"*" 和 "#" 进行匹配;

The Headers Exchange Type:额。。。。

 

 

rocketMQ 分为四大部分:

producer集群/consumer集群/brocker集群/nameserver集群

一张特别经典的图片:

rocketMQ 的简单介绍_第2张图片

 

brocker 集群 采用主从协议:

  • producer只链接master,master同步到slave(同步或异步方式);
  • consumer链接master和slave,主要在master读取消息,master宕机或者繁忙到slave读取消息;
  • namesvr用于保证brocker的集群关系,状态等。

 

MQ可以支持把消息持久化:

  • 持久化的方式为保存文件,文件叫做commitlog(另外维护了一个consumerQueue相当于索引,一个indexfile,用于tt哦那个过key和其他时间查询条件查询);
  • 持久化分为两种方式,同步刷盘和异步刷盘。

 

死信队列:

MQ支持消费者重试,重试配置默认为16次,当16次重试结束后,消息会存放到一个死信队列中,死信队列用于存放groupId 级别的消息,会存放三天的消息;

 

待续。。。

你可能感兴趣的:(消息)