前言

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知识点你又了解多少的更多相关文章

  1. Netty——知识点总结

    引言 Netty blablabla…… Netty 知识点

  2. 一些内存模型、并发、netty知识点的记录

    happens-before:描述内存可见性as-if-serial:无论怎么重排序,程序的运行结果不会改变 ReentrantLock依赖了队列同步器AQS,其实现方式是volatile变量的读写操 ...

  3. netty 知识点

    Netty:异步.事件驱动的NIO(非阻塞Non-blocking IO)框架 netty 教程:http://wiki.jikexueyuan.com/project/netty-4-user-gu ...

  4. 阿里 Java面试 知识点

    摘自: http://blog.csdn.net/wtyvhreal/article/details/45291835 =================================== 基础知识 ...

  5. Netty--索引

    Netty 入门示例 Netty原理架构解析 Netty 基本原理 Netty面试题 阿里的Netty知识点你又了解多少

  6. 全网首发,腾讯T3-3整理Netty学习方案(体系图+项目+学习文档)

    前言: 想要学好一门技术,最起码要对他有一定的了解,起码听说过相应的底层原理的东西吧,最起码你要有一点能和别人交流的内容吧,下面是我精简的一点内容,希望对于大家了解netty能有一点帮助 Netty是 ...

  7. sofa-rpc 服务端源码流程走读

    sofa-rpc是阿里开源的一款高性能的rpc框架,这篇文章主要是对sofa-rpc provider启动服务流程的一个代码走读,下面是我简单绘制的一个基本的关系流程图 下面我们根据sofa-rpc代 ...

  8. java后台技术

    本文旨在梳理服务端开发技术栈,希望帮助后端开发同学更全面了解Java服务端主要涉及的知识点 1. 语言相关 1.1 Java 核心知识点 Java的类加载机制 JVM相关:JVM内存模型和结构,GC原 ...

  9. Java开发技术

    1.基础技术 数据结构与算法   逻辑结构:数据对象中的数据元素之间的逻辑关系 1.集合结构:集合结构中的数据元素除了同属一个集合外,没有其他关系. 2.线性结构:线性结构中的数据元素之间是一对一的关 ...

随机推荐

  1. c++ 去掉所有空格及换行符

    string get_string(string res){ //删除换行符 int r = res.find('\r\n'); while (r != string::npos) { if (r ! ...

  2. vue-cli3 ios10白屏问题解决思路

    在出现了这个问题之后先不要盲目的去瞎试,根据网上的方法试了个遍也没解决问题 先看报的是什么错,再针对的解决问题 首先出现的报错是 SyntaxError: Unexpected token '*'  ...

  3. USACO 2009 Feb 股票市场 Stock Market

    USACO 2009 Feb 股票市场 Stock Market Description 尽管奶牛们天生谨慎,她们仍然在住房抵押信贷市场中大受打击,现在她们准备在股市 上碰碰运气.贝西开挂了,她知道S ...

  4. Css3美化【让你的网页独一无二!】

    一.span标签:能让某几个文字或者某个词语凸显出来  <p>         今天是11月份的<span>第一天</span>,地铁卡不打折了     </ ...

  5. 【DataStage】使用Sequence Job报错:CopyOfseq_ld..JobControl (fatal error from @Coordinator): Sequence job (restartable) will abort due to previous unrecoverable errors

    错误描述: 在使用Sequence Job加载作业的时候,报了个错,详细错误内容如下: 出现这个错误的原因是由于以下配置问题,Excution action的状态为Run造成. 解决方案: 将Excu ...

  6. OpenFOAM——设置自定义非均匀场区域

    在使用OpenFOAM进行计算的时候,我们需要对计算域设置非均匀场,比如最典型的溃坝算例,在开始计算以前,我们需要首先设定某一区域的水的体积分数为1,就是下面这样的: 有可能我们在计算传热问题的时候, ...

  7. python 操作redis,存取为字节格式,避免转码加

    这种情况连接数据库,对数据的存取都是字节类型,存取时还得转码一下 from redis import Redis # 实例化redis对象 rdb = Redis(host='localhost', ...

  8. 20189220 余超《Linux内核原理与分析》第九周作业

    理解进程调度时机跟踪分析进程调度与进程切换的过程 本章的基础知识总结 一般来说,进程调度分为三种类型:中断处理过程(包括时钟中断.I/O 中断.系统调用和异常)中,直接调用schedule,或者返回用 ...

  9. JavaBitSet学习

    一.背景 之前公司项目需要对会员人群进行去重过滤,人群的维度是user_id: 因此采用了BitSet做简单的去重,方案将user_id作为bitset中的bit索引: 通过and\or\xor基础运 ...

  10. 第06组 Beta冲刺(5/5)

    队名:拾光组 组长博客链接 作业博客链接 团队项目情况 燃尽图(组内共享) 组长:宋奕 过去两天完成了哪些任务 继续维护后端代码 准备beta版本的答辩 GitHub签入记录 接下来的计划 整理任务, ...