极简教程,五分钟快速入门之netty,搭配后面netty实战以及netty源码分析

0 ) 关键词:

Netty、NIO、异步、通讯、

1)本质:

一个Jar包,一个NIO框架,是对 socket 网络编程的优秀包装

2)作用:

既然netty 是对 socket 网络编程的优秀包装.那么在没有Netty之前,jdk强迫你必须用socket来写服务器,实际上是很繁琐的,缺乏一个高层次的api。然后Netty诞生了,他说,我来写jdk的socket,然后返回给你一个新的更简洁的api,你傻瓜式的就能写好一个网络服务器

3)好处:

提供异步的、事件驱动的网络应用程序框架和工具,你傻瓜式的就能写好一个网络服务器(当然是相对于更底层的socket 网络编程来说),通俗的说:一个好使的处理Socket的框架

4 ) 类似 :

类似作用的有Mina(比netty更早,同一作者.这里就不扩展了)

5 ) 支持的协议:

有HTTP,WebSockets,SSL等。用Netty,你可以容易地利用Java NIO来提高服务端的性能。

6 ) 场景:

阿里分布式服务框架 Dubbo 的 RPC 框架使用 Dubbo 协议进行节点间通信,Dubbo 协议默认使用 Netty 作为基础通信组件,用于实现各进程节点之间的内部通信。(什么是dubbo?),还有阿里的消息队列(RocketMQ),阿里的HSF等

7 ) 学习Netty需要的知识储备:

Netty本身知识提供一种方便网络编程(特别是NIO)的框架(jar包),如果你熟悉TCP/IP,网络编程和NIO,那么Netty对你来说并不难,大概一周时间就可以使用.如果不熟悉以上这些,建议先熟悉以上技术,学习Netty时,核心要掌握它的线程模型

8 )再理解 :

相对于Tomcat这种Web Server(顾名思义主要是提供Web协议相关的服务的),Netty是一个Network Server,是处于Web Server更下层的网络框架,也就是说你可以使用Netty模仿Tomcat做一个提供HTTP服务的Web容器。

9 ) 通信 :

系统需要实现多进程通信,通常有两种方式:内存共享、消息传递(插播一下:知识点都是互通的,回忆一下,java内存模型JMM的通信方式是什么?内存共享);

而分布式的系统间通信只有消息传递,Netty可作为应用间消息传递实现的基础组件,Netty位于OSI协议栈的会话层、表示层、应用层都有涉及,这样你可以方便的扩展实现,处理会话层以上的协议和业务;Netty封装了java nio的api,使之成为一个非常方便使用框架;提供了提供处理IO的线程池,最重要的一点保证了一个socket处理在一个线程中完成,一个线程可以同时处理多个socket,这个比较好玩;

10) 总结 :

这么说吧,Netty很简单,其实就是个Jar包,是作为通讯组件用的

这么说吧,Netty很简单,其实就是个Jar包,是作为通讯组件用的相关推荐

  1. java ear包_简单介绍Java 的JAR包、EAR包、WAR包区别

    原标题:简单介绍Java 的JAR包.EAR包.WAR包区别 WAR包 WAR(Web Archive file)网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件.War专 ...

  2. linux java jar war_简单介绍Java 的JAR包、EAR包、WAR包区别

    WAR包 WAR(Web Archive file)网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件.War专用于Web方面.大部分的JAVA WEB工程,都是打成WAR包 ...

  3. 这么说吧,NIO很简单,其实就是个牛逼IO

    我是风月连城,喜欢用简单的语言阐述知识点 长期分享原创java文章,分享进阶架构师学习笔记及学习资料 喜欢的可以点赞关注,共同学习,一起进步 0 ) 哈哈,其实我是个标题党,NIO不是牛逼IO,是非阻 ...

  4. Netty - 一个简单的聊天室小项目

     经过一段时间对Netty的学习,我们对Netty各版本以及像ProtocolBuffers等技术应用都有了不少相关的了解, 我们就用这段时间学到的只是做一个简单的聊天室的小项目来练习自己学到的技术. ...

  5. 重写webFlux中的webFilter,随意跳转到指定的过滤器,其实很简单

    背景:由于webFlux中的webFilter没有对指定请求路径进行分流功能,因为过滤器就像一根管道,默认情况下过滤器执行的顺序是已经固定好了的,谁也不能插队,所以我希望过滤器可以通过我的请求来分发到 ...

  6. 【初识Netty使用Netty实现简单的客户端与服务端的通信操作Netty框架中一些重要的类以及方法的解析】

    一.Netty是什么? Netty 由 Trustin Lee(韩国,Line 公司)2004 年开发 本质:网络应用程序框架 实现:异步.事件驱动 特性:高性能.可维护.快速开发 用途:开发服务器和 ...

  7. 语言axff所占字节数_【每日一答】(74)数组名v.s.指针变量,C语言其实很简单形象比喻为“是一个朋友圈的”...

    下图选自<C语言其实很简单>第8章: 问:请问张老师!书上第227页一句话:指针变量a本身的地址(a所在内存字节编号)是数组的地址,数值上与元素a[0]的地址相等! 这句话是什么意思,我看 ...

  8. 语言都是相通的,学好一门语言,再学第二门语言就很简单,记录一下我复习c语言的过程。...

    语言都是相通的,学好一门语言,再学第二门语言就很简单,记录一下我复习c语言的过程. 为了将本人的python培训提高一个层次,本人最近买了很多算法的书. 这个书上的代码基本都是c语言实现的,c语言很久 ...

  9. 有人说 Maven 很简单,我却被 伤害 过

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 在如今的互联网项目开发当中,特别是Java领域,可以说Maven随 ...

最新文章

  1. 【转载】MVC中 数据底层联合JQUERY实现动态的安全的验证机制
  2. 小米网络推广连夜更换品牌LOGO——科技越是进化就越接近生命的形态
  3. HYSBZ-1951 古代猪文 【好题】
  4. Vue 实现左边导航栏且右边显示具体内容(element-ui)
  5. python中的copy模块(浅复制和深复制)
  6. mysql如何大矩阵_如何打印矩阵
  7. 软工结对项目之词频统计update
  8. DescribingDesign Patterns 描述设计模式
  9. Java关键字及其作用详解
  10. 小说阅读,原生小说APP源码出售,可二次开发 四端互通:android端,ios端,h5端,公众号端
  11. 王阳明:致良知就是让你成为真正的自己
  12. 怎么测试网站访问速度?
  13. 【懒懒的Tensorflow学习笔记一之快速入门】
  14. 尼尔森数据显示谷歌雅虎今夏流量均增长
  15. Debezium MySQL源连接器
  16. 如何基于深度学习实现商品识别技术|图普科技
  17. 卫星定位原理以及室内定位技术
  18. cruisecontrol 配置
  19. npm install安装报错 npm ERR! code Z_BUF_ERROR 问题解决
  20. 访问网站报错‘您目前无法访问XXXX 因为此网站使用了 HSTS

热门文章

  1. Xamarin.Android 使用 Encoding.GetEncoding(GB2312) 报错解决方案
  2. awk应用小结(所有命令行均经调试)
  3. 多线程批量ping服务器
  4. matlab figure函数的用法
  5. linux查看文件夹目录大小
  6. Fabric入门之架构
  7. 网络协议档案之ICMP、Ping、Traceroute
  8. Semantic UI
  9. python dlib学习(三):调用cnn人脸检测
  10. android dialog 隐藏状态栏_Android开发不得不收集的工具类集合