今天我们说说netty可以干什么吧,这是什么东西.
Netty是一套开发框架,和spring,hibernate等等一样都是框架,但是(重点来了哈)它和后两者的功能不一样。采用框架开发项目的好处不言而喻了。
Netty是基于java NIO开发出来的框架,也就是说,它是java编写的,主要用到了java NIO库,还有线程那些东西。所以Netty的jar引入的时候不需要下载额外的jar包了。java NIO就不多说了,不懂就暂且当成IO,但是记住,有区别。
Netty这套框架主要用于C/S的项目,但是现在C、B已经很混淆了,我就说Netty可以开发用哪些协议的项目吧,TCP/IP,HTTP,UDP等等,如果不懂,就先记着,但是记住自己还有哪些不懂的哦。:)
下面我举个例子说明下Netty的优越性,在以前我用java开发web项目的时候,前后台数据交互时,我是不需要懂自己传输的,我只知道一些方法,譬如request.getparameter()就拿到前台传过来的数据了,但是这中间经历了什么,我是不知道的,就算不知道 好像也不影响我开发项目。但是(哈哈,好像每个但是都是重点哦)这样我能知道我的服务器这个时间点上传输了多少K的数据吗?显然有些麻烦。(问题来了,网络传输,数据是以什么形式传送的?)另外,HTTP协议每次都要传输头信息,等等很多信息,这会很消耗带宽的哦。
后来啊,程序员前辈就想了很多方法来减少数据传输的量,譬如,现在熟知的,Ajax请求,每次只需要传输响应的数据就OK了,这种键值对的传送方式确实很大程度上削减了传输的数据量,而且开发起来也相当的友好。
但是HTTP协议有个非常痛苦的缺点,它是没有记忆的哦。也就是说,服务器是不记得你的哦,但是前辈的智慧是无穷的,session很好解决了这个问题,而分布式网络系统,首先要解决的就是这个session共享的问题,其实嘛,我们不用怕,别被这种高大上的词给唬住了,那都不是事,遇到问题一样能解决。
好了,这个例子一下就说大了,一句话总结,东西大了问题就多。
而Netty天生就不怕这些大批量的东西(其实到了很大的时候 它也搞不定),以TCP/IP开发为例说明下Netty相关的内容;
1,Netty可以让程序员直接接触到传输的字节流,也就是说,你清楚的知道我TM传了这么多东西啊!
2,Netty允许你用第三方或者是自己编写的字节编解码器,譬如Facebook的Thrift压缩二进制编码技术,Google的protobuf编码(很高大上?其实就是Object转成byte,这有什么啊,专门吓唬我们这种小白?哎,社会啊),这些编码技术确实很厉害,相比java自带的序列化性能强得不是一星半点,但是so what,我司自己进行编码,解码,直接操作字节流(但是很痛苦有木有){喂,喂,那谁,这前三个字节是指令。那谁,接着的7个字节是长度},哎。就怕前期设计不好,后期从新设计。而且不同的指令,字节流不同啊 。所以,这个时候就考验设计模式学得怎么样了。一展开话题就很多了,不说了。
3,拓展性,今天你用它开发tcp,明天可以开发UDP,后天来个WebSocket.那么问题来了,如果出现这种事,你猜我会骂谁?
4,哎,说得自己都醉了。先学学,学好了直接用上去,项目跑起来再说,一遍一遍的重构,心得体会就都有了。
好了不说了,来例子吧。Netty用在什么地方,阿里的dubbo,hadoop。现在不说,今天就到这吧。
对了,我忘记说,大家可以去Netty的官网,找到一些官方给出的例子,这些很好,能跑起来;官方还给出了一些git的链接,但是这里面的项目,我试两个,都没法正常的运行。参照这些例子,再买本书,好好研究下,直接搞项目,没问题。
相关推荐
在本篇“Netty开发记录三”中,我们将深入探讨Netty框架的使用,这是一个高效、灵活且可扩展的网络应用程序框架,广泛应用于高性能服务器和客户端的开发。Netty简化了网络编程,提供了异步事件驱动的网络通信模型,...
netty开发之nio netty开发之nio netty开发之nio netty开发之nio netty开发之nio netty开发之nio netty开发之nio netty开发之nio netty开发之nio netty开发之nio netty开发之nio netty开发之nio netty开发之nio netty...
基于 Netty 开发的 Java 游戏服务端框架,目前提供 CocosCreator 和 Unity 的客户端SDK.zip 基于 Netty 开发的 Java 游戏服务端框架,目前提供 CocosCreator 和 Unity 的客户端SDK.zip 基于 Netty 开发的 Java 游戏...
在本项目中,"springboot+netty开发简易式游戏源码"是一个使用Spring Boot和Netty框架构建的轻量级游戏服务器的示例。这个项目结合了两个强大的技术,旨在提供一个高效、可扩展的游戏后端解决方案。下面将详细阐述...
通过使用Netty 开发工具包,开发者可以快速搭建网络服务,专注于业务逻辑,而无需关心底层的网络通信细节。Netty-3.2.7.Final.jar 是Netty 3.2系列的一个版本,包含了该版本所有功能的实现。虽然这个版本相对较旧,...
Netty是一款由JBOSS提供的开源Java框架,主要功能是利用异步事件驱动的网络应用程序框架和工具,来帮助开发者快速开发高性能、高可靠性的网络服务器和客户端程序。Netty的最新版本为4.0.27.Final,虽然文档中提到的...
Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。这个“Netty开发资源.rar”压缩包包含了Netty的不同版本及其相关的开发资源和文档,对于学习和使用Netty进行...
Netty是一个高性能、异步事件驱动的网络应用框架,用于快速开发可维护的高性能协议服务器和客户端。在本文中,我们将深入探讨如何使用Netty进行RTSP(Real Time Streaming Protocol)服务端的开发,以及如何处理H264...
### Netty中文开发指南知识点概览 #### 一、Netty概述 - **定义与特点**:Netty是一个异步的、事件驱动的网络编程框架,用于Java平台,旨在简化高性能、可扩展的网络应用程序的开发。Netty利用Java NIO(非阻塞I/O...
### Netty开发视频教程知识点详解 #### 一、Netty简介与环境搭建 - **Netty概述**:Netty是一款高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器与客户端。它由JBOSS提出,后被Red ...
netty开发包,墙内不太容易下载吧?是做异步通信的,继承了java.nio的功能,更加方便做开发
Netty-4.0.23 开发文档(英文原版开发手册)
本项目“rtmpServer-master_nettyrtmp_rtmp推流_netty开发rtmp_rtmpServer-master”是针对RTMP协议开发的一个服务器端实现,它基于强大的Java网络库Netty。以下将详细介绍该服务器的开发背景、功能、核心技术和应用...
基于Netty框架开发的Modbus源代码。支持 * READ COILS | 0x01 * READ DISCRETE INPUTS | 0x02 * READ HOLDING REGISTERS | 0x03 * READ INPUT REGISTERS | 0x04 * WRITE SINGLE COIL | 0x05 * WRITE SINGLE REGISTER...
Netty入门教程文档 Netty是Java的网络编程框架,广泛应用于数据采集服务中,本文将对Netty的基本概念和应用进行详细介绍,并将其与ETL技术结合,讲解如何使用Netty进行数据流转和处理。 1. ETL概述 ETL(Extract...
Netty是一个高性能、异步事件驱动的网络应用框架,用于快速开发可维护的高性能协议服务器和客户端。它提供了丰富的API,简化了网络编程的复杂性,特别适合构建低延迟、高吞吐量的网络应用程序。在Android平台上使用...
Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。在这个“netty实现的聊天代码”中,我们可以深入理解如何使用 Netty 框架来构建简单的聊天应用。这个 demo ...
Netty是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端,是基于Java NIO的异步非阻塞的网络编程框架。Netty在内部实现了自己的线程模型,支持多种协议,包括UDP、TCP、...
这篇基于Netty的WebSocket开发小结将探讨如何使用Netty实现WebSocket服务端和客户端的交互。 首先,我们要理解WebSocket的基本概念。WebSocket协议定义了一种在单个TCP连接上进行全双工通信的协议。它通过在握手...