Netty版Helloworld

作者:禹明明 ,叩丁狼高级讲师。原创文章,转载请注明出处。      

作为一个已经有了几年工作经验的JAVA程序员,网络编程是一个必须接触的一个领域.如果你还只是停留在会用MVC框架,优化只会用用缓存,平常写写CRUD的水平,那么你对编程的理解还停留在一个非常表层的阶段!
如果想要深入理解各种服务器,Netty就是我们要过的第一道坎

Netty是什么

我在NIO的文章中简单学习了NIO的使用,现在回想一下,可以发现NIO的API设计过于复杂,代码量比较大,使用中需要考虑的细节也很多,如果对底层了解不深的同学写出来的代码可能会有各种各样的BUG导致服务不够稳定.
Netty就是为了解决这个问题而开发的一套简单易用封装良好的NIO框架,使用Netty可以快速轻松地开发协议服务器和客户端等网络应用程序。它极大地降低了网络编程的开发难度,极大简化了开发过程。

Netty可以用来干什么?

  • 开发自定义的HTTP服务器
  • 开发自定义的FTP服务器
  • 开发自定义的UDP服务器
  • 开发自定义的RPC服务器,例如Dubbo就是基于Netty
  • 开发自定义的WebSocket服务器
  • 开发自定义的Proxy服务器,例如MySQL的Proxy服务器等
    总之就是可以开发定制符合自己需求的各种自定义协议和服务器

为什么选择Netty?

NIO框架有Netty , Mina , xSocket , Grizzly等,为什么选择Netty呢?
虽然NIO框架有很多,但是使用比较广泛的就是Netty和Mina,从学习成本和后期维护难度上来考虑选择流行的框架可以降低开发维护难度和风险.
Netty 和Mina的作者其实都是同一个人Trustin Lee (韩国人),但是Netty出生的更晚, 作者在写出了Mina之后又搞出了Netty, 所以从这方面来说Netty应该更加完善.
从使用上来讲目前很多著名的开源项目比如阿里的Dubbo,Apache Spark , FaceBook Nifty , Google gRPC 等都是基于Netty.
其实最根本的还是超高的性能和简单的API

Netty架构

这是Netty4.1官方架构图,我们先大概了解一下
Netty4.x架构总览.png

Netty中几个重要概念

Channel

Channel是Netty最核心的接口,一个Channel就是一个联络Socket的通道,通过Channel,你可以对Socket进行各种操作。

ChannelHandler

ChannelHandler:每一个ChannelHandler都用来处理一些逻辑,所有的handler形成一个链表结构,作用类似于springMVC中的拦截栈或者一个个的过滤器

ChannelHandlerContext

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值