RocketMQ(八)深入理解一下rocketMQ是如何基于netty扩展出高性能网络通信架构的?rocketMQ基于mmap内存映射实现commitLog磁盘文件的高性能读写?

前言:

本章深入理解一下rocketMQ是如何基于netty扩展出高性能网络通信架构的?rocketMQ基于mmap内存映射实现commitLog磁盘文件的高性能读写?

1.MQ如何基于netty扩展出高性能网络通信架构的?首先知道三个概念:

1.1:Reactor:主要用来接收写入或者是拉取请求;【线程池,默认3个线程】
1.2:worker:主要用于处理ssl加密验证,编码解码,连接空闲检查,网络连接管理等等工作;【线程池,默认8个线程】;
1.3:sendMessages:业务线程池完成请求的处理;

2.Reactor

首先作为broker而言,会有一个Reactor主线程,这个线程主要监听的2888,39150这样的端口,出现这样的一张图:
主线程Reactor
假设现在有一个producer消息生产者想要和broker建立一个TCP长连接,

2.1:长连接和短连接的区别

【短连接:如果要给别人发送一个请求,必须要简历连接—>发送请求—>接受响应—>断开连接,下次再要发送一次请求,过程重新来多一遍】;
【长连接:建立一个连接->发送请求->接收响应->发送请求->接受响应->发送请求…】这个连接会存在很长时间,所以是长连接;

2.2:TCP长连接又是什么呢?

TCP简单来将就是一个协议,所谓的协议就是按照TCP这个协议的要求和规定好的步骤发送请求,说白了就是一种规范,上班迟到了就得扣你的money;

2.3:broker用什么东西代表和producer之间建立的这个长连接呢?

SocketChannel,producer中会有一个socketchannel,broker中也有一个socketchannel,这两个socketchannel就代表了他们建立好的这个长连接,【如图所示】
在这里插入图片描述图中还标记了一个长连接发送消息的圆圈,没错,可以这样的去理解一下,producer就是通过socketchannel和broker中的主线

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咖喱ABC

无需打赏,共同进步学习!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值