netty编程之我就非得用你,我用Java nio咋就不行?

写在前面

netty啊,我就非得用你,我用Java nio咋就不行?

1:我们都要做什么?

比如我们想要实现一个http的服务器,如果是直接基于Java nio来做的话,就需要来解析http协议,不小的工作量啊。
TCP协议的半包,粘包,你也需要自己解决。
TCP的异常处理,断线重连等也需要自己解决。

这都是工作量,你的KPI不要了???

不过幸好,以上的这些netty都已经帮我们完成了,并且做的还顶级棒,棒的呱呱叫!!!干嘛不直接用,傻???

好的,话说回来,你就算是,犟驴它妈给犟驴开门------犟到家了!!!你不差钱,你爸姓马。你写的代码可能没有bug吗?不可能的,你有那么多的精力来修改这些bug吗?作为对比可以看下netty目前的issue:
在这里插入图片描述
59023个已经解决的,没有解决的还有558个,吓人不,你确定一个人搞得定?

所以不管是哪种技术,我们直接选择一个现成的框架来使用,永远都是真理,除非你们公司有什么特殊的需求让你不得不自己造一个轮子,那当然另说啦!!!

除了以上的这些,netty还对Java nio做了更多的优化,方便我们使用:

屏蔽jdk不同版本api的变化(底层nio-》nio2(aio))变化意味着重构
屏蔽细节,使编程更加简单高效如Java nio需要关注注册事件,处理SelectionKey,处理完remove等
优化部分类如bytebuffer,切换读写模式还需要flip,netty就不需要啦

最后的最后,就好像你生了一个孩子,生了就完事了吗?NONONO,生麻烦,养更TMD麻烦!!!对应到程序就是维护的成本,netty 04年发布,截止到俺写这篇文章:
在这里插入图片描述
已经维护了20年,看下人家代码是一直在更新的:
在这里插入图片描述

所以,还就真得用netty,而不要直接使用Java nio。

写在后面

参考文章列表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1544413.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

第十七节 鼠标的操作与相应

知识点 -event代表鼠标事件类型 -EVENT_LBUTTONDOWN鼠标左键按下 -EVENT_LBUTTONUP鼠标左键抬起 -EVENT_LBUTTONMOVE鼠标及移动 Point sp(-1, -1); Point ep(-1, -1); Mat temp; static void on_draw(int event, int x, int y, int flags, void* userdata) { Mat imag…

通过 OBD Demo 体验 OceanBase 4.3 社区版

本文作者:马顺华 引言 OceanBase 4.3 是一个专为实时分析 AP 业务设计的重大更新版本。它基于LSM-Tree架构,引入了列存引擎,实现了行存与列存数据存储的无缝整合。这一版本不仅显著提升了AP场景的查询性能,同时也确保了TP业务场景…

RT-DETR

SSE represents the single-scale Transformer encoder,CSF represents cross-scale fusion. AIFI and CCFF are the two modules designed into 作者的 hybrid encoder 截止到发文时间的issue数,多吓人呐,不建议复现

从Servlet+JSP+JDBC到MyBatis:重构用户CRUD操作的高效之旅

前言 原生的JDBC: 原生的JDBC操作数据库,书写较为繁琐,降低开发效率。JDBC的局限性(如代码冗余、SQL语句与Java代码紧密耦合、难以维护等)。 相比于JDBC,Mybatis的优势: SQL与Java代码的分离、强…

性能测试工具——JMeter

目录 一、JMeter介绍 1、下载安装JMeter 2、打开JMeter 方式一: 方式二: 3、JMeter基础设置 4、JMeter基本使用流程 (1)启动JMeter (2)在测试计划下添加线程组 (3)在 “线…

Linux权限修改及管理员权限获取

在网上看到的,自己当作字典记录下来 修改文件权限:chmod 使用 chmod 可以修改文件权限。 两种方式:字母法与数字法 一,字母法修改文件权限 例如:文件名为 test.x 给文件 test.x 添加所有用户都能执行的权限&#x…

CSS简明通俗教程

CSS简明通俗教程 1. CSS简介 CSS(Cascading Style Sheets,层叠样式表)是一种样式表语言。CSS用于描述HTML或XML(包括SVG或XHTML等XML方言)文档的呈现方式,它有自己的语法规则和逻辑,用于控制网…

年薪40W!转AI产品经理后,我明白了有人带的意义在哪!

如果你正想转岗/入行产品经理,我的故事或许能给你一些启示👇 初识产品 目标有了,问题也有了 和很多人一样,毕业的时候比较迷茫,不知道自己喜欢什么行业、岗位… 就按照专业找了一个对口且擅长的算法工作&#xff0…

学习C#,视频、书籍、在线文档哪种是你喜欢的方式,80%的人竟然选择这个方式!

大家好,我是编程乐趣。 每一个人学习编程,选择的方式、习惯的方式可能都不一样,有些人喜欢买书、有些人喜欢看官方文档、有些人喜欢看视频。 哪一种方式,我个人认为都没问题,只要能获取知识就行。 下面一起看看Stac…

一带一路区块链样题解析(上)

一带一路区块链赛项样题解析 模块一 任务一:按要求完成 FISCO BCOS 区块链系统部署 (1)编写配置文档 1.根据题目设置各项要求,使用build_chain.sh离线搭建匹配的区块链,并通过命令配置各群组节点的MySQL数据库;(1分) cat >> ipconf <<EOF 127.0.0.1:3 …

基于C#+SQL Server2008实现(CS界面)学生宿舍管理系统

1 概述 本次课程设计是数据库课程设计&#xff0c;我选的是学生宿舍管理系统&#xff0c;功能块主要是宿舍管理、学生管理、出入登记和来访登记&#xff0c;目的在于将学生宿舍的管理实现信息化&#xff0c;监控学生宿舍的情况防止意外发生。 课程设计任务的需求分析 2.1设计…

中航资本:交易港股通,为什么刚买入就显示亏损?

经过港股通生意港股&#xff0c;刚买入就闪现亏本是因为买入港股时会有一个汇率差。 港股通生意选用的是港币报价、人民币结算的方式&#xff0c;港股通的参看本钱价是以港币核算的&#xff0c;触及买入时将港币换成人民币&#xff0c;卖出时将人民币换成港币的进程&#xff0…

Java语言程序设计基础篇_编程练习题18.36 (思瑞平斯基三角形)

目录 题目&#xff1a;18.36 (思瑞平斯基三角形) 代码示例 代码逻辑 1. 应用程序入口 2. GUI设置 3. 事件处理 4. 绘制逻辑 5. 递归绘制 输出结果 题目&#xff1a;18.36 (思瑞平斯基三角形) 编写一个程序&#xff0c;让用户输入一个阶数&#xff0c;然后显示填充的…

送书!一大波LLM大模型学习教程书籍

最近整理了日前市面上一大波大模型的书&#xff0c;已经打包成pdf了&#xff0c;大家有需要的&#xff0c;可以自行添加获取&#xff0c;纯福利&#xff0c;无套路&#xff0c;添加后说明是哪本书&#xff0c;会直接给大家&#xff01; &#x1f449;CSDN大礼包&#x1f381;&a…

国产SSL证书品牌怎么选择?

有人在歪曲大型央国企“信创化”与数字化转型建设思路&#xff0c;为了自身的利益开始造谣一些虚假传播信息国外SSL证书不安全问题&#xff0c;然而国外的SSL证书每个上网用户都在使用&#xff0c;然而发布虚假广告的一些人实际上是换了个马甲贴个名字就叫国产SSL证书了&#x…

等保测评误区与应对:企业常见问题解析

标题&#xff1a;等保测评误区与应对&#xff1a;企业常见问题解析 信息安全等级保护&#xff08;等保&#xff09;测评是企业信息安全建设的重要组成部分&#xff0c;但在实际操作中&#xff0c;企业常会陷入一些误区。本文将解析企业等保测评中常见的误区&#xff0c;并提出…

【Python报错已解决】IndexError: list index out of range

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

Flutter 之 ftcon24usa 大会,创始人分享 Flutter 十年发展史,一闪而过的鸿蒙身影

之前一直关注 Fluttercon 的相关活动&#xff0c;正如 Flutter 3.24 发布时所说&#xff0c;继 Fluttercon 欧洲之后&#xff0c;近日 Fluttercon 2024 USA 在纽约如期举行&#xff0c;大会带来了一些有趣消息和 Flutter 发展历程&#xff0c;本次也是通过 X 和 OpenWebF 创始人…

免费ppt模板哪里找?职场必备这些利器

一眨眼&#xff0c;9月份的尾声渐近&#xff0c;无论是学生还是职场人士&#xff0c;都开始准备着新一轮的演讲和报告。在这个忙碌的时期&#xff0c;一份精美的PPT模板能够大幅提升你的工作效率&#xff0c;让你的演示更加引人入胜。 不用担心高昂的版权费用&#xff0c;市场…

什么是反射,反射用途,spring哪些地方用到了反射,我们项目中哪些地方用到了反射

3分钟搞懂Java反射 一、反射是什么 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的工具&#xff0c;它允许程序在运行时获取和操作类、接口、构造器、方法和字段等。反射是Java语言的一个重要特性&#xff0c;它为开发人员提供了许多灵活性&#xf…