今天我们说说netty可以干什么吧,这是什么东西.
Netty是一套开发框架,和spring,hibernate等等一样都是框架,但是(重点来了哈)它和后两者的功能不一样。采用框架开发项目的好处不言而喻了。
Netty是基于java NIO开发出来的框架,也就是说,它是java编写的,主要用到了java NIO库,还有线程那些东西。所以Netty的jar引入的时候不需要下载额外的jar包了。java NIO就不多说了,不懂就暂且当成IO,但是记住,有区别。
Netty这套框架主要用于C/S的项目,但是现在C、B已经很混淆了,我就说Netty可以开发用哪些协议的项目吧,TCP/IP,HTTP,UDP等等,如果不懂,就先记着,但是记住自己还有哪些不懂的哦。:)
下面我举个例子说明下Netty的优越性,在以前我用java开发web项目的时候,前后台数据交互时,我是不需要懂自己传输的,我只知道一些方法,譬如request.getparameter()就拿到前台传过来的数据了,但是这中间经历了什么,我是不知道的,就算不知道 好像也不影响我开发项目。但是(哈哈,好像每个但是都是重点哦)这样我能知道我的服务器这个时间点上传输了多少K的数据吗?显然有些麻烦。(问题来了,网络传输,数据是以什么形式传送的?)另外,HTTP协议每次都要传输头信息,等等很多信息,这会很消耗带宽的哦。
后来啊,程序员前辈就想了很多方法来减少数据传输的量,譬如,现在熟知的,Ajax请求,每次只需要传输响应的数据就OK了,这种键值对的传送方式确实很大程度上削减了传输的数据量,而且开发起来也相当的友好。
但是HTTP协议有个非常痛苦的缺点,它是没有记忆的哦。也就是说,服务器是不记得你的哦,但是前辈的智慧是无穷的,session很好解决了这个问题,而分布式网络系统,首先要解决的就是这个session共享的问题,其实嘛,我们不用怕,别被这种高大上的词给唬住了,那都不是事,遇到问题一样能解决。
好了,这个例子一下就说大了,一句话总结,东西大了问题就多。
而Netty天生就不怕这些大批量的东西(其实到了很大的时候 它也搞不定),以TCP/IP开发为例说明下Netty相关的内容;
1,Netty可以让程序员直接接触到传输的字节流,也就是说,你清楚的知道我TM传了这么多东西啊!
2,Netty允许你用第三方或者是自己编写的字节编解码器,譬如Facebook的Thrift压缩二进制编码技术,Google的protobuf编码(很高大上?其实就是Object转成byte,这有什么啊,专门吓唬我们这种小白?哎,社会啊),这些编码技术确实很厉害,相比java自带的序列化性能强得不是一星半点,但是so what,我司自己进行编码,解码,直接操作字节流(但是很痛苦有木有){喂,喂,那谁,这前三个字节是指令。那谁,接着的7个字节是长度},哎。就怕前期设计不好,后期从新设计。而且不同的指令,字节流不同啊 。所以,这个时候就考验设计模式学得怎么样了。一展开话题就很多了,不说了。
3,拓展性,今天你用它开发tcp,明天可以开发UDP,后天来个WebSocket.那么问题来了,如果出现这种事,你猜我会骂谁?
4,哎,说得自己都醉了。先学学,学好了直接用上去,项目跑起来再说,一遍一遍的重构,心得体会就都有了。
好了不说了,来例子吧。Netty用在什么地方,阿里的dubbo,hadoop。现在不说,今天就到这吧。
对了,我忘记说,大家可以去Netty的官网,找到一些官方给出的例子,这些很好,能跑起来;官方还给出了一些git的链接,但是这里面的项目,我试两个,都没法正常的运行。参照这些例子,再买本书,好好研究下,直接搞项目,没问题。
相关推荐
基于 Netty 开发的 Java 游戏服务端框架,目前提供 CocosCreator 和 Unity 的客户端SDK.zip 基于 Netty 开发的 Java 游戏服务端框架,目前提供 CocosCreator 和 Unity 的客户端SDK.zip 基于 Netty 开发的 Java 游戏...
netty开发之nio netty开发之nio netty开发之nio netty开发之nio netty开发之nio netty开发之nio netty开发之nio netty开发之nio netty开发之nio netty开发之nio netty开发之nio netty开发之nio netty开发之nio netty...
springboot+netty开发简易式游戏源码
Netty 是一个基于NIO的客户,服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用。
NULL 博文链接:https://a317222029201405212739.iteye.com/blog/2148609
包括: Netty-4.0开发资源包 Netty-4.1开发资源包 Netty-4.1 API中文开发文档
netty开发包,墙内不太容易下载吧?是做异步通信的,继承了java.nio的功能,更加方便做开发
netty性能实战,初学者必读的netty教程,基于netty4.x
netty中文开发指南,netty是java基于事件的tcp/ip通信技术。
使用netty进行rtsp服务端开发 一个使用netty写的rtsp服务器。 目前支持H264、H265、 AAC格式的流文件上传与存储。 H264、H265、AAC格式流文件的播放
Netty-4.0.23 开发文档(英文原版开发手册)
非常详细的Netty视频教程,Netty入门到精通首选
基于netty 开发 rtmp 推拉流服务器代码,可用ffmpeg代码测试
基于netty开发的android端即时通讯,代码能够运行,并有代码注释
Netty入门教程
利用netty开发proxy笔记,和一位大牛netty人员一起讨论出的谈话结果笔记 非常给力
netty案例,netty4.1中级拓展篇八《Netty心跳服务与断线重连》源码 https://mp.weixin.qq.com/s?__biz=MzIxMDAwMDAxMw==&mid=2650724845&idx=1&sn=8631c590ff4876ba0b7af64df16fc54b&scene=19#wechat_redirect
Netty在Android开发中的应用实战系列(一)——— 搭建服务端与客户端:https://azhon.blog.csdn.net/article/details/100569489 Netty在Android开发中的应用实战系列(二)——— Encoder | Decoder | Handler 的...
netty案例,netty4.1中级拓展篇九《Netty集群部署实现跨服务端通信的落地方案》源码 ...