个人学习

netty三 - 再学netty

2020-05-20  本文已影响0人  Wu杰语

距离上个项目使用netty很久了,在学习分布式的时候,发现很多框架都是基于netty实现的,重新将netty又捡回来再思考一遍。

为何选netty

netty的产生是由一系列的技术驱动的。首先是socket编程bio的资源效率较低,驱动产生了nio,但是裸的nio想变成工业级的通讯框架难度是非常大的。netty的出现完美的弥补了这个空白,让普通程序员可以快速写出工业级的框架。

在java领域,对比于同类级的通讯框架,例如mina,netty具有简单易用、性能高、社区不断在维护等良好的优势,可以说是当前基于java的最完美的通讯框架,如果让我再写socket程序,毫不犹豫直接选择netty。

从更高的层次考虑netty,至少可以思考如下两个点:

各种领域不同视角思考,不选netty选谁?

netty的量体裁衣

我比较喜欢基于原理或者基础级的量体裁衣式的设计。

例如说redis,它的数据结构设计就是基于基本数据结构针对redis设计要求的一种量体裁衣,堪称完美。

netty中也有同样的量体裁衣,看ChannelFuture、ChannelPromise、EventLoop的设计,这就是基于java concurrence的管程设计,结合netty的nio读写的业务特性,专门设计了ChannleFure、ChannelPromise、EventLoop,高性能、高效率,完美的和业务特性结合在一起。这块代码也是netty粘合层代码中最难理解的一层代码。但是深入下去了,不由的赞叹作者的功力深厚,能够具有量体裁衣的能力,最终早就艺术上的完美。

netty的全面和功能强大

netty中包含了各种知识点

小结

再拾netty,我感觉自己能进一步感受到netty在设计艺术上的美了,这个美是建立在netty的作者强大的知识基础上的。体会美深入了一个层次,但是更需要多动手实践实践,挖掘细节。后续打算针对一些点再多写几篇。

上一篇下一篇

猜你喜欢

热点阅读