我和Netty的故事

简介:

本文首发于InfoQ架构师杂志。

还在上学的时候,我特别好奇QQ是怎么实现的,为什么我一发消息我的好友马上就能收到且基本没有延迟,它的原理是什么?大三的时候,我学习了Java语言,接触到了Socket编程,不知天高地厚的我当时居然想自己实现个简易QQ,和几个朋友做了技术评估后觉得这个事好像不是那么难,紧接着我们就用Swing以及一些Socket编程知识完成了一个简易的局域网QQ,虽然功能不是那么的稳定,但基本上还是可以实现私聊、群聊、文件传输、抖屏功能。这也许是我第一次接触网络通信,核心功能部分使用了同步I/O的Socket类库。

参加工作后,公司使用的RPC框架是Hessian,Hessian是一款基于HTTP协议的RPC框架,采用的是二进制RPC协议,但是在Java中,Hessian的服务端需要使用Tomcat之类的容器,而它们的性能总是那么的不如人意。因为那会公司使用的MVC框架是Play,所以我很早就接触到了Netty,它的高性能、高可靠性的特性早有耳闻。看了Play框架中Netty部分的代码以及Netty的官方案例后,我用Netty重新实现了Hessian的服务端,于是一款构建于Netty和Hessian基础上的高性能的RPC框架诞生了,我取名叫Hetty(Hessian+Netty)。简单的性能测试之后,我发现Hetty的性能是之前的4~5倍,这次之后,我对Netty有了更深入的了解,使用Netty可以更简单的开发出高性能、可扩展、易读易维护的系统。

再到后来,我去了一家游戏公司,发现他们在服务器端大量使用了Netty框架,从来没有想到Netty在游戏行业已经得到了这么大范围的使用。不过再仔细想想,这一点都不惊奇,游戏服务器端,除了大量的业务逻辑外,其它部分其实都在玩NIO,而Netty作为一款成熟的异步NIO通信框架,它的性能、扩展性、稳定性、使用难度都得到了业界的肯定。那Netty有哪些优点了?我认为有以下几点:

  1. 文档齐全,社区活跃,API简单,案例很多。
  2. 支持多种协议,如HTTP、FTP、SMTP。
  3. 性能高,易扩展。
  4. 周期性的版本迭代,成熟且稳定。

这么一看,工作生活中处处与Netty为伴,其实是Netty见证了我的成长,希望好的框架能让更多的人收益!

相关文章
|
网络协议
netty案例,netty4.1基础入门篇七《嗨!NettyClient》
在前六章的案例中使用socket模拟器链接我们的NettyServer,进行通信测试。本章节我们写一个helloworld版的NettyClient客户端,与我们的socket模拟器进行通信。在netty中客户端与服务端的写法基本类似,注意一些细节即可,这也是netty的强大之处,它把nio流与sokcet封装的相当简单易用。
229 0
netty案例,netty4.1基础入门篇七《嗨!NettyClient》
netty案例,netty4.1基础入门篇一《嗨!NettyServer》
凡是新知识都需要有个入门的案例,一个简单的输入输出就能解除你当前遇到的所有疑惑。不要总想着先学理论后学实战。【X东方还135学理论,246学实战,800个床位不锈钢】,本案例专题主要介绍netty4.1的使用。
299 0
netty案例,netty4.1基础入门篇一《嗨!NettyServer》
|
9月前
|
移动开发 前端开发 网络协议
技术笔记:Netty专题(六)
技术笔记:Netty专题(六)
50 0
|
10月前
|
消息中间件 缓存 Java
《跟闪电侠学Netty》阅读笔记 - 开篇入门Netty
《跟闪电侠学Netty》阅读笔记 - 开篇入门Netty
231 0
|
10月前
|
缓存 Java 数据挖掘
《跟闪电侠学Netty》阅读笔记 - 开篇入门Netty(一)
《跟闪电侠学Netty》阅读笔记 - 开篇入门Netty
188 0
《跟闪电侠学Netty》阅读笔记 - 开篇入门Netty(一)
|
10月前
|
消息中间件 缓存 Java
《跟闪电侠学Netty》阅读笔记 - 开篇入门Netty(二)
《跟闪电侠学Netty》阅读笔记 - 开篇入门Netty
351 1
《跟闪电侠学Netty》阅读笔记 - 开篇入门Netty(二)
|
Java Unix
小六六学Netty系列之Netty群聊
前言 文本已收录至我的GitHub仓库,欢迎Star:github.com/bin39232820… 种一棵树最好的时间是十年前,其次是现在
181 0
|
XML 编解码 前端开发
Netty 简易实战,都能看懂!
这一节我们来讲解Netty,使用Netty之前我们先了解一下Netty能做什么,无为而学,岂不是白费力气!
140 0
Netty 简易实战,都能看懂!
|
网络协议
由浅入深Netty聊天室案例
由浅入深Netty聊天室案例
66 0
Netty实战与源码剖析(二)——基于NIO的群聊系统
Netty实战与源码剖析(二)——基于NIO的群聊系统
225 1