RocketMQ学习总结

一、架构

在这里插入图片描述

在这里插入图片描述
1、NameServer:注册中心。Broker信息注册到NameServer;producer/consumer根据某个topic通过NameServer获取对应broker的路由信息 ;

2、Broker:负责存储、拉取、转发消息;

3、Producer:消息生产者,与NameServer集群中的其中一个节点(随机选择)建立长连接,定期从NameServer取Topic路由信息,并向提供Topic服务的Master建立长连接,且定时向Master发送心跳。

4、Consumer:消息消费者,与NameServer集群中的其中一个节点(随机选择)建立长连接,定期从NameServer取Topic路由信息,并向提供Topic服务的Master、Slave建立长连接,且定时向Master、Slave发送心跳。Consumer既可以从Master订阅消息,也可以从Slave订阅消息,订阅规则由Broker配置决定。
在这里插入图片描述
5、Queue:存储消息的commitLog记录(存储在内存),类似于消息的索引,消息体存储在磁盘中,通过commitLog关联。

二、刷盘机制

1、同步刷盘:消息被写入PageCache后立即刷盘,只有当消息被持久化到磁盘后才会响应ACK。

2、异步刷盘:消息在被写入PageCache后就会响应ACK,当PageCache里的消息积累到一定量后,由OS线程将PageCache里的消息刷入磁盘。注:如果RocketMQ服务挂了,PageCache里的消息并不会丢失,因为PageCache是属于Linux系统的缓冲区,只有当服务器突然断电才会导致消息丢失。

3、异步刷盘+缓冲区:RocketMQ将一部分内存当做缓冲区,消息被写入内存缓冲区后就返回ACK,由后台程序将内存缓冲区里的消息刷入磁盘。注:在该模式下,RocketMQ服务宕机或服务器突然断电都会导致消息丢失。

三、消息类型

1、普通消息
2、顺序消息(存储在同一个queue)
3、延时消息
4、批量消息
5、事务消息(达到最终一致性,非强一致性)
在这里插入图片描述

四、消息类型

集群消费:
广播消费:

pull、push、长轮训

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值