Netty概述

一,介绍

     Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。

 也就是说,Netty 是一个基于NIO的客户,服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用。Netty相当简化 和流线化了网络应用的编程开发过程,例如,TCP和UDP的socket服务开发。

    “快速”和“简单”并不意味着会让你的最终应用产生维护性或性能上的问题。Netty 是一个吸收了多种协议的实现经验,这些协议包括FTP,SMTP,HTTP,各种二进制,文本协议,并经过相当精心设计的项目,最终,Netty 成功的找到了一种方式,在保证易于开发的同时还保证了其应用的性能,稳定性和伸缩性。

二,新特性

  处理大容量数据流更简单
  处理协议编码和单元测试更简单
  I/O超时和idle状态检测
  应用程序的关闭更简单,更安全
  更可靠的OutOfMemoryError预防

三,新的传输方式

  1、基于BIO和NIO的UDP传输
  2、本地传输(又名 in-VM传输)
  3、HTTP通道,可绕过防火墙

四,新的编码器

  1、HTTP客户端和服务器端

  2、用于实现各种专有协议的工具

时间: 2024-09-08 08:30:47

Netty概述的相关文章

Netty源码解读(一)概述

感谢网友[黄亿华]投递本稿. Netty和Mina是Java世界非常知名的通讯框架.它们都出自同一个作者,Mina诞生略早,属于Apache基金会,而Netty开始在Jboss名下,后来出来自立门户netty.io.关于Mina已有@FrankHui的Mina系列文章,我正好最近也要做一些网络方面的开发,就研究一下Netty的源码,顺便分享出来了. Netty目前有两个分支:4.x和3.x.4.0分支重写了很多东西,并对项目进行了分包,规模比较庞大,入手会困难一些,而3.x版本则已经被广泛使用.

gecko框架概述

1 gecko概述 最近在研究metaq消息队列,它里面用到的NIO通信框架是gecko,文档是这么描述的 Gecko是一个Java NIO的通讯组件,它在一个轻量级的NIO框架的基础上提供了更高层次的封装和功能. 支持的RPC调用方式包括RR(request-response)和pipeline. 0 可插拔的协议设计 1 连接池 2 分组管理和负载均衡 3 Failover/Retry 4 重连管理 5 同步和异步调用 本文就按照日常NIO通信框架和RPC所面临的问题来看下gecko是怎么解

Flink运行时之基于Netty的网络通信上

概述 本文以及接下来的几篇文章将介绍Flink运行时TaskManager间进行数据交换的核心部分--基于Netty通信框架远程请求ResultSubpartition.作为系列文章的第一篇,先列出一些需要了解的基础对象. NettyConnectionManager Netty连接管理器(NettyConnectionManager)是连接管理器接口(ConnectionManager)针对基于Netty的远程连接管理的实现者.它是TaskManager中负责网络通信的网络环境对象(Netwo

Netty 5用户指南

原文地址:http://netty.io/wiki/user-guide-for-5.x.html    译者:光辉勇士      校对:郭蕾 前言 问题 现如今我们使用通用的应用程序或者类库来实现系统之间地互相访问,比如我们经常使用一个HTTP客户端来从web服务器上获取信息,或者通过web service来执行一个远程的调用. 然而,有时候一个通用的协议和他的实现并没有覆盖一些场景.比如我们无法使用一个通用的HTTP服务器来处理大文件.电子邮件.近实时消息比如财务信息和多人游戏数据.我们需要

Netty 5用户指南(一)

前言 问题 现如今我们使用通用的应用程序或者类库来实现系统之间地互相访问,比如我们经常使用一个HTTP客户端来从web服务器上获取信息,或者通过web service来执行一个远程的调用. 然而,有时候一个通用的协议和他的实现并没有覆盖一些场景.比如我们无法使用一个通用的HTTP服务器来处理大文件.电子邮件.近实时消息比如财务信息和多人游戏数据.我们需要一个合适的协议来处理一些特殊的场景.例如你可以实现一个优化的Ajax的聊天应用.媒体流传输或者是大文件传输的HTTP服务器,你甚至可以自己设计和

《Netty实战》Netty In Action中文版——文前内容

<Netty实战>样章由人民邮电出版社授权并发编程网发布,本书的中文版已经由人民邮电出版社引进并出版. 京东预售链接(优先发货):<Netty实战>([美]诺曼·毛瑞尔(Norman Maurer),马文·艾伦·沃尔夫泰尔(Marvin Allen Wolfthal))   内容提要 本书是为想要或者正在使用Java从事高性能网络编程的人而写的,循序渐进地介绍了Netty各个方面的内容. 本书共分为4个部分:第一部分详细地介绍Netty的相关概念以及核心组件,第二部分介绍自定义协议

Netty 5用户指南(二)

Time客户端 不像DISCARD和ECHO的服务端,对于TIME协议我们需要一个客户端因为人们不能把一个32位的二进制数据翻译成一个日期或者日历.在这一部分,我们将会讨论如何确保服务端是正常工作的,并且学习怎样用Netty编写一个客户端. 在Netty中,编写服务端和客户端最大的并且唯一不同的使用了不同的BootStrap和Channel的实现.请看一下下面的代码: 01 package io.netty.example.time; 02   03 public class TimeClien

Netty原理篇-ByteBuf

实际上,7种基本类型(boolean除外)都有自己的缓冲区实现,不过因为功能.方法.原理基本一致,所以仅讨论ByteBuffer. Netty Api地址:http://netty.io/5.0/api/   一 内容概述 NIO ByteBuffer的概述. Netty ByteBuf的详细讲述,包括读.写.扩容.mark.reset.duplicate等操作. 核心类的源码分析. 堆内存缓冲区.直接内存缓冲区.   二 NIO ByteBuffer的局限性 1.  长度固定 Byt

Netty原理篇-Channel、Unsafe

本文为<Netty权威指南>的读书笔记,读书过程中也伴随着一些源码阅读和其他文档阅读,所以内容和<Netty权威指南>会略有不同,请知晓. Netty Api地址:http://netty.io/5.0/api/   一 内容概述 Channel的主要方法介绍. Channel的继承结构,以及核心类核心代码分析. Unsafe的继承结构,以及核心类核心代码分析. 二 Channel设计理念 1.  设计理念 在Channel接口层,采用Facade模式进行统一封装,将网络