(初识)世界开源框架之源Netty的世界

来源:互联网 发布:算法makeheap运算 编辑:程序博客网 时间:2024/05/16 12:13

前言

最进麟爷也有一段时间没有写博客了,在这期间我也并没有闲着,而是研究了netty的框架,为什么要研究netty呢?大家都知道各种开源框架,如Hadoop,Dubbo,RocketMQ甚至连Tomcat都是要在服务器开辟端口来提供服务的,本质使用的就是Socket,当然你可以称这种为RPC模式,通过Socker通信来进行分布式集群的处理,例如心跳检查,数据传输等等,而能做到这些的框架非Netty莫属,有这么一句话,如果你学java没有学Netty那么你的java等于白学了,哈哈当然这句话是夸大的。当然麟爷我也只是对netty的表层进行了一个初步的研究,更多的深入的研究需要日后继续进行

什么是netty?

Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。(来源百度)

上面提到了几个概念,一个是网络应用框架,另一个是异步,很明显Netty是用来制作网络通信的开源框架,那么如何解释异步呢?

大家都知道传统的socket程序就是在服务器开辟一个端口,然后让套接字的包,去监听这个端口
如图:
这里写图片描述
当然这样会有一个问题,就是端口只是由一个单线程处理的,这样同时只能有一个客户端访问链接,其它要接入的客户就会阻塞等待线程完成再接入,这样效率就非常的低下,甚至会计算机发挥不出原来有的优势

后来大家就想了一个新的方法,同一个端口由多个线程进行并行服务,这样可以一定程度避免了线程阻塞的情况
这里写图片描述

但是这样会让服务器大量创建线程或者进程,会导致服务器的资源开销特别大,能否用一个方式?让一个线程同时服务器多个接入的请求呢?

我们把每一个和服务器连接的客户端的channel让通一个线程处理那样的话就是完美,于是出现了Netty的模式
如图:
这里写图片描述

这就是netty的基本介绍,后续我也会推出跟多有关netty的内容,关于netty的hello world demo后面我也会整理好给大家,进一步解读netty该怎么使用

原创粉丝点击