Netty是由JBOSS提供的一个java开源框架。 Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。也就是说, Netty 是一个基于NIO的客户、服务器端编程框架。相当于简化和流线化了网络应用的编程开发过程。像dubbo、storm都用到了netty来通信。
Reactor模式:netty就是Reactor模型结构,Reactor模式也叫反应器模式,redis也是采用这种事件驱动模型。
Reactor 单线程模型
用户发起 IO 请求到 Reactor 线程,Ractor 线程将用户的 IO 请求放入到通道,然后再进行后续处理,处理完成后 Reactor 线程重新获得控制权,继续其他客户端的处理。
这种模型一个时间点只有一个任务在执行,这个任务执行完了,再去执行下一个任务。性能有极限,不能处理成百上千的事件。当负荷达到一定程度时,性能将会下降。还容易单点故障。
Reactor 多线程模型
Reactor多线程模型是由一组 NIO 线程来处理 IO 操作(之前是单个线程),所以在请求处理上会比上一中模型效率更高,可以处理更多的客户端请求。
这种模式使用多个线程执行多个任务,任务可以同时执行。但是如果并发仍然很大,Reactor仍然无法处理大量的客户端请求。
Reactor 主从多线程模型
这种线程模型是 Netty 推荐使用的线程模型,适用于高并发场景,一组线程池接收请求,一组线程池处理 IO。
。
标签:netty,架构,Reactor,Netty,处理,模型,线程,原理 From: https://www.cnblogs.com/wlwl/p/11857679.html