匠心零度 转载请注明原创出处,谢谢!
上篇文章对 Netty 进行了初探:Netty 初探,主要介绍了下我们为什么需要学习 netty、netty 介绍等;本篇文章接着上篇文章的内容。本篇为了方便大家快速入门、了解实践 Netty 特性、快速上手一个例子让大家有一个比较直接的认识。
版本的选择,这是一个很直接但是又经常需要面对的问题,特别是开源项目的时候,我们在选择版本的时候有很多考虑,比较 jdk 各个版本选择、zookeeper 版本的选择、Tomcat 版本选择,Spring 系列版本选择等等,后续后空我们可以讨论讨论关于开源这些版本选择以及升级事宜交流,今天的重点是在 netty 版本的选择上面。
目前 Netty 大版本就分为三个:3.x、4.x、5.x。
我们先看看官网怎么说:
备注:推荐使用的版本是 4.x,那么我们再看看很多使用 Netty 的一些项目,的确使用的是 4.x 版本,据了解 Dubbo3.x 将会将 Netty4.0.x 升级到 4.1.x 版本。
看看官网:
建议看官网New and noteworthy in 4.1( http://netty.io/wiki/new-and-noteworthy-in-4.1.html ),先了解下有那些大概的变动(不要认为之前没用过,看就没有必要,看看也是它的一些亮点,后续可能要重点学习了解思考的)
主要改变:
备注:具体详情记得去官网看看: http://netty.io/wiki/new-and-noteworthy-in-4.1.html,这次可以大概了解下,后续有空慢慢看看。
说了那么多了,我们来一个简单的 Demo 来简单的感受下 Netty。
新建一个 Maven 项目,之后去 github 上面找到 netty 对应的例子代码:
pom.xml 中添加如下内容:
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.21.Final</version>
</dependency>
稍微在原来 demo 基础上面修改了点东西,解决半包、黏包问题(后续详细介绍)
我已经把代码提交到 github 上面去了,需要的小伙伴可以直接下载: https://github.com/lirenzuo/nettydemo。
可以与使用 nio 写的代码进行对比,NIO 相关基础篇二,发现用 Netty 写一个 TCP 原来这么简单,都封装好了。
使用 Netty 可以非常方便、快速的搭建网络开发环境,使得我们不用关心一些例如客户端面临断连重连、网络闪断、半包读写、失败缓存、网络拥塞和异常码流的处理等等的问题,所以使用 Netty 进行网络开发是非常合适的,本篇只是一个入门,后续有了 Demo 可以跑起来的时候,进行断点啥的也好进行学习了。
如果读完觉得有收获的话,欢迎点赞、关注、加公众号 [匠心零度] ,查阅更多精彩历史!!!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.