`

Netty相关

    博客分类:
  • IO
 
阅读更多
传统IO(BIO,NIO)三缺点:
1.基于流,数据流,机械性能消耗大。
2.阻塞,服务器开了一个端口,只要没有客户端连接,它一直处于阻塞状态。
多线程方案,来一个客户端,就给他开个线程单独处理,产生了线程开销很大。
3.读和写并没有完全分离,读和写一定是在同一个线程完成的,读和写一定一起。

NIO解决问题:
1.基于管道,先把通讯的道路修好,轮询处理。
2.非阻塞(好像默认是阻塞,可以设定非阻塞),提高处理效率。
3.读写可以分离的,大大提高通讯效率,
缓冲区做成两个,一个专门读一个专门写

对NIO操作,非常繁琐,读写分离还得分配两个缓冲区,
得开管道,一个比较繁琐的过程,来一个客户端要开一个线程。

这种前提下,我们的NIO框架就产生了。
为解决大家一个操作繁琐的过程,对NIO操作进行封装。

Netty,不仅仅对NIO封装

socket基本通信原理:
第一次,建立连接握手。
知道对方IP地址通不通,要知道对方端口能不能访问。
第二次,开始发送信息
服务端跟客户端,就相当于是进行实际的交互了。


第三次,服务端,要给客户端反馈。
第四次,通信完毕,连接断开或关闭

通信机制:
上层开发:做上层开发的话,是很少直接基础到底层协议的。

底层协议:

规范:
http协议:再熟悉不过
FTP协议:文件传输协议
MAIL协议:又见协议SMTP协议

Netty 封装了很多RPC
RMI就是RPC的一种 RPC>RMI

webService:基于soap这种协议规范,xml里面规定了传输对象类型,
调用方法名,传输到我们调用端的时候还得需要对xml进行解析,解析xml又非常的繁琐。

RMI:协议,字节流协议 序列化(客户端)和反序列化(服务器端)
字节流操作还需要转化成java对象 (socket),
对象的class字节码保存起来,classLoader反射
性能非常低下,

webService,RMI最终都转化成了二进制。

Netty
1.提高通信的性能。
2.对RPC操作进行的封装,使得我们操作简单化。

Dubbo   dubbo:// 基于Netty进行封装,类似于RMI
小结:
1.NIO操作进行了封装
2.RPC进行了封装

二.Netty能做什么?
IO框架,只要做网络之间通信,Netty都能做。


三.Netty下的网络协议:
工作原理:
master主线程
work从线程

四:代码:


问题思考 netty为什么没有使用AIO
https://github.com/netty/netty/issues/2515
  • 大小: 26.4 KB
  • 大小: 280 KB
分享到:
评论

相关推荐

    netty相关源码1

    netty相关源码1

    Netty 5.0.0.Alpha2 版本 Netty 5.0 jar包下载 【Jar包 + 源代码 + Netty API文档】

    Netty 5.0.0.Alpha2 版本,包含:Jar包+源代码+API文档。 官网Netty 5.0版本已经废弃,所以发布出来,方便大家下载。 《Netty权威指南》一书使用的就是Netty 5.0

    深入浅出NETTY

    作为Java语言领域最流行、表现最优异的NIO框架,Netty深受大家喜爱,但是长期以来除了 UserGuide 之外,国内鲜有 Netty 相关的系统性文章供广大 NIO 编程爱好者学习和参考。由于 Netty 源码的复杂性和 NIO 编程本身...

    Java中级面试题 Spring和Netty相关问题

    java面试 Spring和Netty相关问题

    netty jar包

    netty 是基于Java NIO的网络通信架构,文件中包含netty所需jar包

    netty-jar.zip

    netty-3.7.0.Final.jar,netty-all-4.1.73.Final.jar,netty-buffer-4.1.82.Final.jar,netty-codec-4.1.82.Final.jar,...netty-codec-stomp-4.1.73.Final.jar,netty-codec-xml-4.1.73.Final等netty相关的jar文件

    netty-4.1.4-jar包

    netty-4.1.4-jar包

    springboot基础netty和websocket

    基于springboot+netty+webscoket实现的及时通讯,封装netty相关接口

    Netty进阶之路:跟着案例学Netty 完整版.pdf

    《Netty进阶之路:跟着案例学Netty》中的案例涵盖了Netty...在案例的分析过程中,还穿插讲解了Netty的问题定位思路、方法、技巧,以及解决问题使用的相关工具,对读者在实际工作中用好Netty具有很大的帮助和启发作用。

    从NIO到Netty,编程实战出租车905协议-08172347.pdf

    第5章,介绍Netty相关基础知识,并使用Netty实现长连接服务端的编码。 适用人群 具有一定的Java开发基础; 学习Java开发领域Spring框架之外的东西; 想快速通过实战项目提升个人能力的同学。 想通过实战入门NIO、...

    高清_书签_Netty进阶之路 跟着案例学Netty.zip

    在本书中,作者将在过去几年实践中遇到的问题,以及Netty学习者咨询的相关问题,进行了归纳和总结,以问题案例做牵引,通过对案例进行剖析,讲解问题背后的原理,并结合Netty源码分析,让读者能够真正掌握Netty,在...

    netty 5.0.0 all 下载包

    netty 相关jar 包 下载 netty-all-5.0.0.Alpha2-javadoc.jar 2015-03-04 6.09M netty-all-5.0.0.Alpha2-sources.jar 2015-03-04 2.01M netty-all-5.0.0.Alpha2.jar 2015-03-04 2.56M netty-all-5.0.0.Alpha2.pom...

    netty-4.1.16.Final

    netty-4.1.16 jar包,包含 netty相关4.1.16所有包!

    netty权威指南 第1版(李林峰) + 源码

    本书适合架构师、设计师、软件开发工程师、测试人员和其他对Java NIO框架、Java通信感兴趣的相关人士阅读,相信通过学习本书,能够熟悉和掌握Netty这一优秀的异步通信框架,实现高可用分布式系统的构建。

    netty源码和相关中文文档

    netty源码和相关中文文档。帮助您快速上手netty开发。netty体验之旅祝您愉快

    Netty权威指南第二版

    《Netty 权威指南(第2 版)》适合架构师、设计师、软件开发工程师、测试人员以及其他对JavaNIO 框架、Netty 感兴趣的相关人士阅读,通过《Netty 权威指南(第2 版)》的学习,读者不仅能够掌握Netty 基础功能的使用...

    ieda+netty.zip

    ”然后留下一顿崇拜的目光离开,回来后悄悄打开netty相关知识,开始编程。 什么是Netty?Netty 是一款异步的事件驱动的网络应用程序框架,支持快速地开发可维护的高性能的面向协议的服务器和客户端。如果你还得去看...

    Netty权威指南 第2版 带书签目录 完整版

    《Netty 权威指南(第2 版)》适合架构师、设计师、软件开发工程师、测试人员以及其他对JavaNIO 框架、Netty 感兴趣的相关人士阅读,通过《Netty 权威指南(第2 版)》的学习,读者不仅能够掌握Netty 基础功能的使用...

    Netty权威指南高清完整版PDF

    《Netty权威指南》适合架构师、设计师、软件开发工程师、测试人员和其他对Java NIO框架、Java通信感兴趣的相关人士阅读,相信通过学习《Netty权威指南》,能够熟悉和掌握Netty这一优秀的异步通信框架,实现高可用...

Global site tag (gtag.js) - Google Analytics