1. 云架构(云原生) 1.1 何为云原生 云原生是一条最佳路径或者最佳实践。更详细的说, 云原生为用户指定了一条低心智负担的、敏捷的、能够以可扩展、可复制的方式最大化地利用云的能力、发挥云的价值的最佳路径。 云原生的技术范畴包括了以下几个方面: 第一部分是云应用定义与开发流程。这包括应用定义与镜像制作、配置 CI/CD、消息和 Streaming…
1. 请简单描述一下 Reactor 模型在 Netty 中的应用。 在Netty-Server 中一般使用的是 Reactor 的 多线程 池模型,而Netty-Client 中一般使用的是 Reactor 单线程池模型。具体来说,NioEventLoopGroup 充当着线程池。每一个 NioEventLoopGroup 中都包含了多个…
本章主题 1、认识 kubernetes (k8s) 在企业中应用场景? —– 为什么要学习K8s?? 2、云技术( 云计算 平台) — 虚拟化及虚拟化基本概念及原理 3、云技术(云计算平台) — 容器技术及容器技术基本概念及原理 前言 k8s 偏向运维技术 ,后端程序员为什么要学习k8s?? 1、以前项目开发:开发,运维是密不可分 — 上线…
NioEventLoopGroup和NioEventLoop 源码 分析 1. NioEventLoopGroup的构造分析 EventLoopGroup parentGroup = new NioEventLoopGroup(); EventLoopGroup childGroup = new NioEventLoopGroup();…
NioEventLoop 任务的执行 今天跟核心方法,关于任务的处理 下面是EventLoop第一次执行execute方法的时候,会触发的逻辑,会执行一个核心Runnable任务,该任务会进行 selector 的选择,然后处理三类任务,以及I/O就绪事件:…
1. 客户端启动 服务端启动已经说完了,接下来看下客户端启动,有了之前的经验,现在看客户端会容易的很多: public class SomeClient { public static void main(String[] args) throws InterruptedException { NioEventLoopGroup group = new…
Channel 的 inBound 与 outBound 处理器 1. 先了解一下相关核心类的API ChannelHandler、ChannelInbound/OutboundHandler…
Netty 源码解析 1. Reactor 模型 在解析 Netty 源码之前,我们首先要搞清楚 Reactor 模型。因为现在的网络通信框架,大多数都是基于 Reactor 模型进行设计和开发的,Netty 也不例外。 1.1 Reactor 单线程模型 Selector…
由于 Netty 的底层是 NIO,所以在读 Netty 源码之前,首先了解一下 NIO 网络编程 相关知识。 直接看官方的注释,因为注释是最权威的。 1. NIO 简介 NIO,New IO(官方),Non-blocking IO(非官方),是 JDK1.4 中引入的一种新的 IO 标准,是一种同步非阻塞 IO。NIO 是以 块…
手写 Tomcat 确切地说,这里要手写的是一个 Web 容器,一个类似于 Tomcat 的容器,用于处理 HTTP请求。该 Web 容器没有实现 JavaEE 的 Servlet 规范,不是一个 Servlet 容器。但其是类比着Tomcat 来写的,这里定义了自己的请求、响应及 Servlet,分别命名为了…