网络框架三两言

夏洛

前言

说起最近做梦又是前女友又是初中同学的,道心乱了,乱了。

2022年也接近尾声了,这周日10月30号,我身份证上的生日,过完我也就正式步入24周岁了。

回过头来,那句但行好事,莫问前程,好事做没做不知道,说句没做坏事,算不算做了好事。前程?上班也算前程的么。

我感觉我天天骑个电动车,晃荡晃荡的来,晃荡晃荡的回,还挺有意思的。

晚饭吃了几天的榨菜,给爷吃吐了,于是乎,决定在食堂吃饭吧,可是家里电饭锅里面还有煮好的饭,打这段话时,打了一个喷嚏,震得我屁股疼,端起保温杯赶紧喝了两口热水,体质下降是个不争的事实。

带状疱症缠了我两三周了,尽管我做到早睡早起,规律作息,由于我对吃饭不太讲究的原因,依旧是瘦了。

网络框架

说了挺多的闲话,该说说正事了,现在主流的网络框架在Java领域中能拿的出手的实际上只有Netty。

现在基于AIO的网络框架 怎么说呢,我只能说,你猜为什么Netty5.0鸽了。

Netty实际上差不多是自己实现了JDK的AIO且比JDK中的AIO要更稳定,当然说这话的时候,我没有去测试,这个东西单机百万长连接的测试,没点技术测不了的,有很多限制,比如Window的系统测不了,必须是Linux系统,而且Linux系统我记得还有个文件系统的什么限制要解除才能测,Linux中一个连接就是一个文件,单机百万,就是百万个文件。

Netty吹完了,再来看看国产的网络编程框架,如果你想写个IM系统练练手,以及想深入一下网络编程,建议TIO,这个框架迭代了很长时间,又写了很多工具方法便于人们使用。

如果想用来实践,但是并不是用来写那种负荷非常重的短连接,但是又不想去用性能非常低的BIO可以用smart-socket。个人推荐,无优劣之分,最适合自己业务的才是最好的。并不建议不使用框架,能用框架还是用框架的好。

网络编程概念

说一千,到一万,本质就是面向协议编程,对字节编解码的规则,被称之为协议。

Web编程,是网络编程的一支,Web编程对字节编解码的协议叫做Http协议,其主要原因还是浏览器牵头的,浏览器支持Http协议,Web编程也能说成面向浏览器编程。

在处理在服务和服务之间的网络通信,Http协议显得有点重了,因为Http协议携带了太多我们不需要的东西,然后http默认的短连接,频繁的挥手握手,严重的影响性能。

这个时候就需要单独定制协议以及使用长连接了,自己定制协议,这个就五花八门了,本质就是对字节编解码,编解码的字节一般用Buffer来操作,Buffer的基础操作也是网络编程的入门。用这个操作字节比较方便。

维持长连接的连接个数,这是网络框架的一个重要标准。我看网络框架动不动都是单机百万,维护了百万个长连接的服务器与客户算进行数据交互会是个什么情况。这个就需要专业的测试来操作了。

网络开发的难点一般就是在于长连接,短连接到也没有那么复杂的难度,因为都用短连接了,第一并发高不到哪里去,第二,不需要双方维持一个同步状态,服务器就很轻松。

封面

漂亮少数民族美女


网络框架三两言
https://wangijun.com/2022/10/25/net-05/
作者
无良芳
发布于
2022年10月25日
许可协议