中间件(六):RocketMQ的核心底层原理

目录

1、RocketMQ是如何基于Netty扩展出高性能网络通信架构的?

1.1、Producer和Broker建立一个长连接

1.2、让Producer发送消息给Broker

1.2.1、基于Reactor线程池监听连接中的请求

1.2.2、基于Worker线程池完成一系列准备工作

1.2.3、基于业务线程池完成请求的处理

1.3、为什么这套网络通信框架会是高性能以及高并发的?

2、BIO、NIO、AIO以及Netty之间的关系是什

3、基于mmap内存映射实现CommitLog磁盘文件的高性能读写

3.1、mmap:Broker读写磁盘文件的核心技术

总结 

4、消息丢失问题

 4.1、订单系统推送给RocketMQ的消息丢失

4.2、MQ自己导致消息丢失

4.3、磁盘故障

4.4、红包系统拿到了消息,也会丢失数据

 总结:为什么用户支付了,但是红包没发出去呢?

5、发送消息零丢失方案:RocketMQ事务消息的实现流程分析

5.1、Rocket事务消息机制原理

5.2、发送half消息到MQ,试探MQ是否正常

5.2.1、万一half消息写入失败

5.2.2、half消息成功后,订单系统完成自己工作

5.2.3、订单系统的本地事务执行失败了怎么办?

5.2.4、如果订单系统完成了本地事务之后,接着干什么?

5.2.5、half 消息是如何对消费者不可见的?

6、kafka消息零丢失方案

7、MQ确保数据零丢失的方案总结


1、RocketMQ是如何基于Netty扩展出高性能网络通信架构的?

Broker有一个Reactor主线程。

Reactor主线程负责监听一个网络端口,比如监听2888等端口。

  • 短连接:如果你要给别人发送一个请求,必须要建立连接 -> 发送请求 -> 接收响应 -> 断开连接,下一次你要发送请求的时候,这个过程得重新来一遍。每次建立一个连接之后,使用这个连接发送请求的时间是很短的,很快就会断开这个连接,所以他存在时间太短了,就是短连接。
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值