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……
阅读全文
2024年3月6日
sqlCommand Author: HuiFer Description: 该文介绍 mybatis sqlCommand 类的源码 源码阅读工程: SourceHot-Mybatis org.apache.ibatis.binding.MapperMethod.SqlCommand 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 /** * 核心内容: sql id , Sql 类型 */ public static class SqlCommand { /** * sql id */ private final String name; /** * sql 类型……
阅读全文
2024年3月6日
ParamNameResolver 源码解析 Author: HuiFer Description: 该文介绍 mybatis @Param 注解和ParamNameResolver 源码阅读工程: SourceHot-Mybatis 源码 org.apache.ibatis.reflection.ParamNameResolver 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……
阅读全文
2024年3月6日
Mybatis ObjectWrapper Author: HuiFer 源码阅读工程: SourceHot-Mybatis 源码位于: org.apache.ibatis.reflection.wrapper.ObjectWrapper‘ 类图: 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……
阅读全文
2024年3月6日
MethodSignature Author: HuiFer Description: 该文介绍 mybatis MethodSignature 类 源码阅读工程: SourceHot-Mybatis org.apache.ibatis.binding.MapperMethod.MethodSignature 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 115 116 117 118 119 120……
阅读全文