阿里的Netty知识点你又了解多少
前言
Netty 是一个可以快速开发网络应用程序的 NIO 框架,它大大简化了 TCP 或者 UDP 服务器的网络编程。Netty 的简易和快速开发并不意味着由它开发的程序将失去可维护性或者存在性能问题,它的设计参考了许多协议的实现,比如 FTP,SMTP,HTTP 和各种二进制和基于文本的传统协议,因此 Netty 成功的实现了兼顾快速开发,性能,稳定性,灵活性为一体,不需要为了考虑一方面原因而妥协其他方面。Netty 的应用还是比较广泛的,比如阿里巴巴开源的 Dubbo 和 Sofa-Bolt 框架底层网络通讯都是基于 Netty 来实现的。
通过本文所说到的关于netty的学习问题和面试问题来说说如何学习高性能netty框架及一些重要知识点!
Netty基础相关问题
讲讲Netty的特点?
BIO、NIO和AIO的区别?
NIO的组成是什么?
如何使用 Java NIO 搭建简单的客户端与服务端实现网络通讯?
如何使用 Netty 搭建简单的客户端与服务端实现网络通讯?
讲讲Netty 底层操作与 Java NIO 操作对应关系?
Channel 与 Socket是什么关系,Channel 与 EventLoop是什么关系,Channel 与 ChannelPipeline是什么关系?
EventLoop与EventLoopGroup 是什么关系?
说说Netty 中几个重要的对象是什么,它们之间的关系是什么?
Netty 的线程模型是什么?
粘包与半包和分隔符相关问题
什么是粘包与半包问题?
粘包与半包为何会出现?
如何避免粘包与半包问题?
如何使用包定长 FixedLengthFrameDecoder 解决粘包与半包问题?原理是什么?
如何使用包分隔符 DelimiterBasedFrameDecoder 解决粘包与半包问题?原理是什么?
Dubbo 在使用 Netty 作为网络通讯时候是如何避免粘包与半包问题?
Netty框架本身存在粘包半包问题?
什么时候需要考虑粘包与半包问题?
WebSocket 协议开发相关问题
讲讲如何实现 WebSocket 长连接?
讲讲WebSocket 帧结构的理解?
浏览器、服务器对 WebSocket 的支持情况
如何使用 WebSocket 接收和发送广本信息?
如何使用 WebSocket 接收和发送二进制信息?
Netty源码分析相关问题
服务端如何进行初始化?
何时接受客户端请求?
何时注册接受 Socket 并注册到对应的 EventLoop 管理的 Selector ?
客户端如何进行初始化?
何时创建的 DefaultChannelPipeline ?
讲讲Netty的零拷贝?
如何正确系统的学习Netty框架
要理解框架的底层的原理,要掌握的就是最常用的原理。框架就是辅助我们开发的已经完成的一部分代码,帮助我们实现了一部分的功能,我们主要掌握的其实就是框架的内部原理,也就是框架给我们规定的一些内部的规定,有了这些规定就可以高效的开发我们的代码,按照规定办事效率会有很大的提高。其实很多的时候我们并没有注意这些东西,一个功能可以用很多的方法来实现,但是我们按照框架给我们规定的规则去实现的话应该是我们比较正确的一种选择。因此分享一份系统学习Netty框架的知识思维导图给有需要的朋友,希望能对你们有所帮助!

阿里的Netty知识点你又了解多少的更多相关文章
- Netty——知识点总结
引言 Netty blablabla…… Netty 知识点
- 一些内存模型、并发、netty知识点的记录
happens-before:描述内存可见性as-if-serial:无论怎么重排序,程序的运行结果不会改变 ReentrantLock依赖了队列同步器AQS,其实现方式是volatile变量的读写操 ...
- netty 知识点
Netty:异步.事件驱动的NIO(非阻塞Non-blocking IO)框架 netty 教程:http://wiki.jikexueyuan.com/project/netty-4-user-gu ...
- 阿里 Java面试 知识点
摘自: http://blog.csdn.net/wtyvhreal/article/details/45291835 =================================== 基础知识 ...
- Netty--索引
Netty 入门示例 Netty原理架构解析 Netty 基本原理 Netty面试题 阿里的Netty知识点你又了解多少
- 全网首发,腾讯T3-3整理Netty学习方案(体系图+项目+学习文档)
前言: 想要学好一门技术,最起码要对他有一定的了解,起码听说过相应的底层原理的东西吧,最起码你要有一点能和别人交流的内容吧,下面是我精简的一点内容,希望对于大家了解netty能有一点帮助 Netty是 ...
- sofa-rpc 服务端源码流程走读
sofa-rpc是阿里开源的一款高性能的rpc框架,这篇文章主要是对sofa-rpc provider启动服务流程的一个代码走读,下面是我简单绘制的一个基本的关系流程图 下面我们根据sofa-rpc代 ...
- java后台技术
本文旨在梳理服务端开发技术栈,希望帮助后端开发同学更全面了解Java服务端主要涉及的知识点 1. 语言相关 1.1 Java 核心知识点 Java的类加载机制 JVM相关:JVM内存模型和结构,GC原 ...
- Java开发技术
1.基础技术 数据结构与算法 逻辑结构:数据对象中的数据元素之间的逻辑关系 1.集合结构:集合结构中的数据元素除了同属一个集合外,没有其他关系. 2.线性结构:线性结构中的数据元素之间是一对一的关 ...
随机推荐
- MongoDB 红宝书-MongoDB官网使用指南
本文转载自Mongodb中文社区:http://www.mongoing.com/archives/27359 无论你是MongoDB的使用者.爱好者.初学者还是路人甲,有一个学习与进修的资源宝藏是千 ...
- 微信小程序基本语法
渲染 .js page ({ data :{ memo:'hello world' } }) .wxml <view>{{memo}}</view> 绑定id .js page ...
- vue之大文件分段上传、断点续传
需求: 支持大文件批量上传(20G)和下载,同时需要保证上传期间用户电脑不出现卡死等体验: 内网百兆网络上传速度为12MB/S 服务器内存占用低 支持文件夹上传,文件夹中的文件数量达到1万个以上,且包 ...
- pgloader 学习(六) 加载csv 数据
关于加载的配置参数都是使用comand file command file 参考格式 LOAD CSV FROM 'GeoLiteCity-Blocks.csv' WITH ENCODING iso- ...
- 用Xpath选择器解析网页(lxml)
在<爬虫基础以及一个简单的实例>一文中,我们使用了正则表达式来解析爬取的网页.但是正则表达式有些繁琐,使用起来不是那么方便.这次我们试一下用Xpath选择器来解析网页. 首先,什么是XPa ...
- vue-cli 中的 eslint 规则说明
"no-alert": 0,//禁止使用alert confirm prompt "no-array-constructor": 2,//禁止使用数组构造器 & ...
- 思科 DHCP服务器配置及DHCP中继
思路: 1.配置 DHCP 客户端 确保每个 PC 为 自动获取IP地址的方式: 2.配置 SW1 # 创建 VLAN 10 , 20 # 将相关的端口,放入到对应的 VLAN : # 配置交换机之间 ...
- 刷题记录:[SUCTF 2019]CheckIn
目录 刷题记录:[SUCTF 2019]CheckIn 一.涉及知识点 1.利用.user.ini上传\隐藏后门 2.绕过exif_imagetype()的奇技淫巧 二.解题方法 刷题记录:[SUCT ...
- [C++] new和delete运算符使用方法
new 和 delete 是C++语言中的两个运算符,配套使用. new:用于分配内存,与C语言中的 malloc 相同,分配在堆内存 delete:用于释放内存,与C语言中的 free 相同,释放堆 ...
- Servlet相关的几种乱码
1. 页面中文显示乱码 原因: response中的内容会先输入到response缓冲区,然后再输入到传给浏览器,所以要将缓冲区和浏览器的编码都设置成utf-8 1)未使用jsp,而是在servlet ...