2024年3月6日
Netty 中的 ByteBuf 组件是一个高性能的字节缓冲区,它可以用于网络通信、文件 IO 等场景。ByteBuf 的实现基于 Netty 的内存管理机制,可以有效地减少内存拷贝和内存分配的开销。以下是 Netty 中 ByteBuf 组件的部分代码,并添加了中文注释: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40……
阅读全文
2024年3月6日
Netty 是一个高性能、异步事件驱动的网络应用程序框架,它使用了 NIO 技术来提供高性能的网络通信。在 NIO 中,有三种常用的多路复用器(Multiplexor):Selector、Poll 和 Epoll。这些多路复用器可以同时监听多个网络连接的 IO 事件,从而提高网络通信的效率。 Selector Selector 是 Java NIO 中的一种多路复……
阅读全文
2024年3月6日
网上关于各种 IO 的博文已经多到飞起,如果你是大神,可以跳过我这个菜鸟的拙文,本博文没有什么特别 NB 的东西,只是集百家之长,并且以自己感到简单舒适的方式输出自己的理解,及学习过程中的经验。 IO 及基本概念 1、流的概念和作用 流:代表任何有能力产出数据的数据源对象或者是有能力接受数据的接收端对……
阅读全文
2024年3月6日
传统的 BIO 编程 网络编程的基本模型是 Client/Server 模型,也就是两个进程之间进行相互通信,其中服务端提供位置信息(绑定的 IP 地址和监听端口),客户端通过连接操作向服务端监听的地址发起连接请求,通过三次握手建立连接,如果连接建立成功,双方就可以通过网络套接字(Socket) 进行通信。 在基于传统同步阻塞……
阅读全文
2024年3月6日
Selector、SelectionKey 和 Channel 这三个组件构成了 Java nio 包的核心,也是 Reactor 模型在代码层面的体现。Selector 能让单线程同时处理多个客户端 Channel,非常适用于高并发,传输数据量较小的场景。要使用 Selector,首先要将对应的 Channel 及 IO 事件(读、写、连接)注册到 Sel……
阅读全文
2024年3月6日
Linux 网络 IO 模型简介 Linux 的内核将所有外部设备都看做一个文件来操作,对一个文件的读写操作会调用内核提供的系统命令,返回一个 fd (file descriptor,文件描述符)。而对一个 socket 的读写也会有相应的描述符,称为 socket fd (socket 描述符),描述符就是一个数字,它指向内核中的一个结构体(文件路径,数据区等一些属……
阅读全文
2024年3月6日
作为一个高性能的 NIO 通信框架,Netty 被广泛应用于大数据处理、互联网消息中间件、游戏和金融行业等。大多数应用场景对底层的通信框架都有很高的性能要求,作为综合性能最高的 NIO 框架 之一,Netty 可以完全满足不同领域对高性能通信的需求。本章我们将从架构层对 Netty 的高性能设计和关键代码实现进行……
阅读全文
2024年3月6日
简介 Netty 是一个高性能的 NIO 客户端服务器框架,它用于快速开发可维护的高性能协议服务器和客户端程序,例如协议服务器、文件服务器、代理服务器等。Netty 在设计上强调了可扩展性、可复用性和高性能,是一个非常优秀的网络应用程序开发框架。 下面,我们将介绍 Netty 的一些高级特性和高可靠性设计。 高级特性……
阅读全文
2024年3月6日
本博文用于重点分析 Netty 的逻辑架构及关键的架构质量属性,希望有助于大家从 Netty 的架构设计中汲取营养,设计出高性能、高可靠 性和可扩展的程序。 Netty 的三层架构设计 Netty 采用了典型的三层网络架构进行设计和开发,其逻辑架构图如下所示。 通信调度层 Reactor 它由一系列辅助类完成,包括 Reactor 线程 NioEventLoop 及其父类,NioSock……
阅读全文
2024年3月6日
GenericTokenParser Author: HuiFer 源码阅读工程: SourceHot-Mybatis 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 /** * Copyright 2009-2019 the original author or authors. * <p> * Licensed under the……
阅读全文