Rocket Mq

一 服务搭建细节

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
二 Rocket Mq 特性详解

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述broker 里面每个topic 都是有四个队列;
在这里插入图片描述
RocketMQ推荐了几种Broker集群方式,这里的Slave不可写,但可读,类似于Mysql主备方式
1. 单个Master

这是一种风险比较大的集群方式,因为一旦Borker重启或宕机期间,将会导致这个服务不可用,因此是不建议线上环境去使用的。
2. 多个Master

一个集群全部都是Master,没有Slave,它的优点和缺点如下:

优点:配置简单,单个Master宕机或者是重启维护对应用没有什么影响的,在磁盘配置为RAID10时,即使机器宕机不可恢复的情况下,消息也不会丢失(异步刷盘丢失少量消息,同步刷盘则是一条都不会丢失),性能最高

缺点:当单个Broker宕机期间,这台机器上未被消费的消息在机器恢复之前不可订阅,消息的实时性会受到影响。
3. 多Master多Slave模式-异步复制

每个Master配置一个Slave,有多对的Master-Slave,HA采用的是异步复制方式,主备有短暂的消息延迟,毫秒级别的(Master收到消息之后立刻向应用返回成功标识,同时向Slave写入消息)。优缺点如下:

优点:即使是磁盘损坏了,消息丢失的非常少,且消息实时性不会受到影响,因为Master宕机之后,消费者仍然可以从Slave消费,此过程对应用透明,不需要人工干预,性能同多个Master模式机会一样。

缺点:Master宕机,磁盘损坏的情况下,会丢失少量的消息。
4. 多Master多Slave模式-同步双写

每个Master配置一个Slave,有多对的Master-Slave,HA采用的是同步双写模式,主备都写成功,才会向应用返回成功。

优点:数据与服务都无单点,Master宕机的情况下,消息无延迟,服务可用性与数据可用性都非常高

缺点:性能比异步复制模式略低,大约低10%左右,发送单个Master的RT会略高,目前主机宕机后,Slave不能自动切换为主机,后续会支持自动切换功能。

三.producer端

在这里插入图片描述

在这里插入图片描述消息类型分为:普通消息,定时消息(delay ),顺序消息(指定队列),事物消息
普通消息过程 :
1 .先去用构造函数初始化product (也会初始化4个队列,消息不能超过4M),2.然后设置nameservice,3.开始启动start()(准备工作)注册product,4.组装消息 5. send()发送消息
product 先去看看topic 没有被创建,先远程去nameService 里面拿 topic 和 对应的broker 信息 ,存到本地.然后从topic 拿取数据,根据取模选取哪个队列(轮询);然后于broker 建立连接,把消息发送到到 broker 里;

事物模型:就是先去发送消息,但是不会被consumer 消费,然后回调在进行本地方法执行 ,提交(还会被check 事物状态).没问题的情况下mq 才发送成功 才会被consumer 消费(双主无从的 使用事物消息会被 直接回滚)
在这里插入图片描述
在这里插入图片描述

四.consuner 端

在这里插入图片描述cbd 使用的长时间轮训取的 使用的push 类型
消费模型一般选这第二种(集群模式) 第一张广播模式 很少用

在这里插入图片描述消息重复幂等消费: 原因mq 没办法避免消息重复,如果业务对消费重复比较敏感的话,需要在业务层取处理(redis incr 原子计数器)
消息过滤:可以根据tag 去过滤 或者根据文件过滤(需要开启enablePropertyFilter =true)

为什么要用组group?
方便缩小范围,一个组代表一个业务范围

五.nameServer 端

看脚本 进入程序入口

六.broker端

七.存储

消息会持久化到磁盘
消息存储 根据索引去 寻找对应磁盘位置
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

八.序列化

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值