菜卷的 Netty 笔记(一):Netty 简介


一、Netty 简介

为什么写这篇文章?

这篇文章是对 Netty 的基础介绍,偏概念和理论。主要从概念上介绍什么是 Netty、应用领域 、特性、社区活跃度、发展趋势等。

内容大多来自网络,搜集后自己整理,对于之前没有接触过 Netty 的同学做一点基础介绍。不会在我提到 Netty 的时候问:“Netty 是大数据计算组件吗?”


介绍


Netty 是一个 Java NIO 的高性能网络编程应用框架,是目前 Java 领域最主流的网络编程框架。

为什么做 web 服务端开发的程序员对网络编程没啥感知?

提到网络编程库,对于做业务开发的同学可能没啥感知,比如我一个 web 服务端开发 —— Java CRUD BOY 完全不知道网络编程要干啥。大部分人都会接触的网络编程是 Java BIO,就是 Socket 这块儿,还有的同学可能看过 Java1.4推出的 NIO,Channel、Buffer、Selector这些。

网络编程都在用在哪儿呢?只要涉及网络传输的网络应用都使用了网络编程。但在平常的 web 服务开发时,我们使用了Tomcat、JBoss、Jetty等支持 servlet规范的 web 服务器,网络连接的建立、数据的读写、序列化、协议的编解码、都由底层的 web 容器完成,我们只需要专注于业务代码编写。

相比于 web 容器,Netty 是面向网络传输层协议(Socket) 的网络编程框架,也可以用来开发 Web 服务器。Netty 不仅支持 HTTP 协议,还支持 SSH、TLS/SSL 等多种应用层的协议,它支持的协议更广泛,还可以自定义通信协议。



特性


对于一款网络编程框架,下面是几个我们绕不开的几个关注点:

  1. I/O 模型
  2. 线程模型
  3. 事件处理机制
  4. 对数据协议、序列化的支持
  5. API 的易用性

在后续的文章,我将介绍为啥这些我们要关注这些东西。Netty 采用 I/O 多路复用模型、主从 Reactor 线程模型,具有高性能、低延时的特征;API 设计简单易用,相比于 Java NIO 繁琐的 API ,极大地降低了开发者的心智负担和编程难度;Netty 设计扩展性好,;并且对 http、websocket等许多协议提供丰富的支持。正是因为在这些方面表现突出,所以 Netty 成为 Java 在网络编程领域的首选。



社区活跃度



Netty 社区活跃,迭代周期短且文档比较齐全,遇到任何问题通过 issue 或者邮件都可以得到非常及时的答复。目前,Netty 官方提供 3.x、4.x 的稳定版本,之前一直处于测试阶段的 5.x 版本已被作者放弃维护,当下主流的版本是 Netty 4.x。

社区地址:https://netty.io/



发展趋势



Netty 是目前最流行的一款高性能 Java 网络编程框架,它被广泛使用在中间件、直播、社交、游戏等领域。使用 Netty 的大厂也不在少数:

图片来自网络


截止至 2020 年 7 月,Netty 在 github 上获取2.4w+ star,一共被 4w+ 的项目所使用。目前,许多知名的开源软件也都将 Netty 用作网络通信的底层框架,Netty 经过很多出名产品在线上的大规模验证,其健壮性和稳定性都被业界认可,其中典型的产品有:

  1. 服务治理:Apache Dubbo、gRPC。
  2. 大数据:Hbase、Spark、Flink、Storm。
  3. 搜索引擎:Elasticsearch。
  4. 消息队列:RocketMQ、ActiveMQ。
  5. 更多查看官方 wiki:https://netty.io/wiki/related-projects.html



后记


这是我写东西以来,第一次写技术文章,虽然文章写的没啥技术含量。上班入职后,公司新人要做技术分享,借此契机开始写技术文章。虽然也没人看,但错误和不足之处,希望读者朋友指出,如果觉得不错就点个赞吧。


0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
菜卷
作者分享
因为上班拉了三个月肚子 上半年上班最大的问题,工作压力太大,导致每天频繁拉肚子,一天要跑厕所四五次。 从 2 月中旬开始,我身体开始出现告警,频繁想上厕所,每天拉肚子四五次。意识到自己身体出问题之后,先请了两天年假去了一趟海边。3.22 号,我开始看中医,第一次会诊,医生汪阿姨说:如果我的压力再大一些,我的身体可能会崩溃。 之后开始了每周去中医馆看中医,一周吃 400 多块钱 12 包中药,一直持续到 6 月 28 号最后一次。 感谢到 6 月底身体终于好转了。一共去就诊13次,看脱发一次,花了5266.95。440.08+414.34+415.44+410.44+405.58+402.16+417.57+397.87+399.64+377.45+371.20+362.86+334.72+117.60(生发町)=5266.95 3月中旬,我意识到这是比较严重的问题,问题主要在自己处理。当时和考研的小伙伴聊过,3月我们见面的时候,我发现她身体状况和我差不多,可能比我还差一点,我们在咖啡店自习,他好像出现了耳鸣,那段时间我上班也出现过。她考研初试分数出来以后,我问过她情况,大家压力都很大,互相勉励的时候,我提过:如果身体一直不好,我就准备 gap 一段时间休整。 上班和考研不一样,考研一年只能考一次,只能考一个学校,工资却是按月发的,上一个月有一个月的收入。上不下去了换个工作,不会有太大成本。 5月开始向外表达自己的身体状况和工作困境,和朋友比较简单的分享过我当时遇到的困难,我不太会和朋友分享我在工作上的困难,因为我有预感,1/3的可能我得到的回应是:你上班这么难是应该的。 也有正式的表达过,腹泻时间真的太久了,当时已经好转了,但没有完全恢复,所以期望一些外在的支持,能让问题顺利收敛,也是从那个时候开始做双周复盘。 没有和领导、同事反馈过,只在4月的时候,偷偷把企微头像换成了 p5: 也算是我无声的抱怨。 这段时间,对我很有帮助的三件事: 1.看中医,吃中药 2.和朋友住,一起生活;和朋友分享,听听朋友的建议 3.等工作情况好转,等自己适应这种工作节奏,团队运作方式和氛围 先写到这里,晚安🌙
10
年后四个月上班,开始职业倦怠了 最近要换房子,后面有更多时间独处 最近在重新整理生活,做一些调整 1.戒断社交媒体(朋友圈,视频号,B 站短视频) 2.每天打卡记录(纸质或电子) 3.没有保持适度运动 4.周末主动社交 5.复盘最近一年的生活(关注变化和进步)
3
4w/月! 外派马来西亚工作😱 昨天有一个面试,对方自称马来西亚公司: 3mixtech。做了一套90分钟的外企笔试题,之后简单面试了10分钟,其中问了DDD和TDD。当时还想外企开发理念这么先进,都实践上TDD了。半小时后告诉我过了,薪资4w/月,996,要外派马来西亚工作。让我申请旅游护照,护照下来了他们帮我订机票,让我先用旅游护照出国,说公司后续会帮我申请工作签证,我再回国取工作签证再去马来西亚办公。 给我激动的,已经开始和朋友讨论起马来西亚能取几个老婆了,但也隐隐觉得可能是诈骗。冷静之后开始了解这叫公司,发展在互联网上能查到的信息很少。在抖音有人搜过 “马来西亚it公司3mixtech” 这样的关键词,但是没有对应结果。招聘软件——猎聘上的公司地址显示西安,但是 IP 归属却是广东。一家马来西亚的公司,官网居然可以直接可以访问,而且域名对应IP归属居然是陕西西安!,种种迹象都透露着可疑的气息。 第二天我问HR能不能线下见面,她前一天还说自己在西安,结果第二天说自己在深圳,西安这边是合作公司,不是它们的员工,不方便实地考察。这时候我已经基本确定对方是骗子,然后去了招聘软件上的公司地址,不出意料没有找到她所谓的合作公司。 果然天上不会掉馅饼,遇到的馅饼十有八九都是陷阱。现在想想骗子真的太可恶了,本来行情不好找工作就不容易,骗子还出来浪费求职者的时间和精力。如果没有擦亮眼睛,真的信了骗子,可能就被骗到国外噶腰子了。 最后也借着我的经历,提醒找工作程序员们:遇到自称外企高薪招聘,要外派国外还直接给订机票的一定要警惕,小心被骗去缅北嘎腰子啊! #求职诈骗 #3mixtech
6
最近面试心态崩不住了 分享一最近找工作的情况: 1.心态崩了,看不进去东西 2.现在的面试除了最近一家难度适中,其余几家难度两次分化,简单的20分钟结束,难的一小时起步,一场面试写两道代码题 3.投不动简历了,打算再改一遍简历开始往杭州、成都投 4.笔试能力恢复到校招90%,八股文熟悉程度恢复到校招80%,各种套路问题比校招答的还溜,面试沟通比校招好不少,毕竟工作过 5.那些校招要手撕代码的,社招也要;校招不用的,社招也不用 6.目前打算:gap期控制在3个月以内,至少休息一个月,因为租房的缘故,要在9月底结束找工作 7.打算做点其他的,比如考摩托车驾照、出去玩、学新技术。
8
不用上班的第17天: 一、健康与生活 1.起的比较早,9.30之前起床 2.今天10点吃了早点 二、学习 1.看了一些 操作系统的面试题 2.看了一些 计算机网络的面试题 3.刷了3题 三、找工作 1.字节面试 2.投了一些西安比较期望的公司 3.今天找工作有点失落 四、TODO 今天很浮躁,需要做一些限制和调整 #每日打卡#
1
下载 APP