- 博客(134)
- 收藏
- 关注
原创 Netty源码------Pipeline详细分析
Netty源码------Pipeline详细分析目录Netty源码------Pipeline详细分析1、Channel 与ChannelPipeline2、再探ChannelPipeline 的初始化:3、ChannelInitializer 的添加4、自定义ChannelHandler 的添加过程5、ChannelHandler 默认命名规则6、Pipeline 的事件传播机制6.1 Outbound 事件传播方式6.2 Inbound 事件传播方式6.3
2020-06-01 14:23:39 602 1
原创 Netty源码------NioEventLoop源码详解
Netty源码------NioEventLoop目录Netty源码------NioEventLoop1、初识NioEventLoop2、NioEventLoop创建3、NioEventLoop启动4、NioEventLoop执行过程5、Netty 解决JDK 空轮询Bug6、总结1、初识NioEventLoop1.1先来简单回顾一下Netty模型Netty中的Channel系列类型,对应于经典Reactor模型中的client, 封装了用户的...
2020-05-31 21:43:55 882
原创 Netty源码------Channel的创建到底干了什么?
Channel的创建到底干了什么?目录Channel的创建到底干了什么?1、先来了解一些什么是Netty的Channel2、Netty的Channel创建的时序图3、源码分析Channel创建Channel初始化Channel注册Channel绑定总结1、先来了解一些什么是Netty的Channel什么是Channel?channel是一个管道,用于连接字节缓冲区Buf和另一端的实体,这个实例可以是Socket,也可以是File, 在Nio网络编程模型中
2020-05-30 14:48:45 1089
原创 Netty------为什么Netty性能如此之高?
Netty高性能之道目录Netty高性能之道1、Netty模型2、Netty性能高的原因1、Netty模型netty线程模型采用“服务端监听线程”和“IO线程”分离的方式,与多线程Reactor模型类似。抽象出NioEventLoop来表示一个不断循环执行处理任务的线程,每个NioEventLoop有一个selector,用于监听绑定在其上的socket链路。说明:1) Netty抽象出两组线程池 BossGroup专门负责接收客户端的连接, Worker Grou
2020-05-29 23:59:02 5466
原创 Netty基础------NIO 和 AIO
Netty基础------NIO1、基本概念java.nio全称java non-blocking IO(实际上是 new io),是指JDK 1.4 及以上版本里提供的新api(New IO) ,为所有的原始类型(boolean类型除外)提供缓存支持的数据容器,使用它可以提供非阻塞式的高伸缩性网络。NIO采用内存映射文件的方式来处理输入输出,NIO将文件或文件的一段区域映射到内存中,这样就可以像访问内存一样访问文件了。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同, NIO支持
2020-05-27 12:02:22 582
转载 Netty基础------Java NIO 底层原理
Netty------Java NIO 底层原理目录Netty------Java NIO 底层原理1.1. JavaIO读写原理1.1.1. 内核缓冲与进程缓冲区1.1.2. java IO读写的底层流程1.2.四种主要的IO模型1.3.同步阻塞IO(Blocking IO)1.4.同步非阻塞NIO(None Blocking IO)1.5.IO多路复用模型(I/O multiplexing)1.6.异步IO模型(asynchronous IO)小结...
2020-05-26 23:37:44 444
原创 Netty基础------ BIO
Netty基础------ BIO(同步阻塞IO)目录Netty基础------ BIO1、什么是BIO2、BIO的工作机制3、代码实操演示4、总结1、什么是BIOJava BIo就是传统的 java io编程,其相关的类和接口在 java.io BlO( blocking I/O):同步阻塞,我们熟知的Socket编程就是BIO,每个请求对应一个线程去处理。一个socket连接一个处理线程(这个线程负责这个Socket连接的一系列数据传输操作)。阻塞的原因在于:操作系统
2020-05-26 21:08:28 253
原创 Mybatis 逆向工程的使用
Mybatis 逆向工程的使用目录Mybatis 逆向工程的使用1、需要准备的jar包2、需要编写的配置文件3、编写一个启动类1、需要准备的jar包三个必备的jar包: <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <v.
2020-05-17 18:25:36 183
原创 Spring源码------AOP源码分析
Spring源码------AOP源码分析目录Spring源码------AOP源码分析1、AOP简介2、AOP时序图3、源码分析(简约版)3.1 准备工作3.2 源码分析1、AOP简介AOP是什么?AOP技术利用一种称为“横切”的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其名为“Aspect”,即切面。所谓“切面”,简单地说,就是将那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模.
2020-05-13 09:03:08 212
原创 Spring源码------DI依赖注入源码分析
Spring源码------DI依赖注入源码分析1、什么是依赖注入DIDI—Dependency Injection,即“依赖注入”:组件之间依赖关系由容器在运行期决定,形象的说,即由容器动态的将某个依赖关系注入到组件之中。依赖注入的目的并非为软件系统带来更多功能,而是为了提升组件重用的频率,并为系统搭建一个灵活、可扩展的平台。通过依赖注入机制,我们只需要通过简单的配置,而无需任何代码就可指定目标需要的资源,完成自身的业务逻辑,而不需要关心具体的资源来自何处,由谁实现。 理解DI的关键是:“
2020-05-12 21:14:49 297
原创 Spring源码------IoC源码分析详解
Spring源码------IoC源码分析详解目录Spring源码------IoC源码分析详解1、控制反转(IoC)2、Spring IoC 源码时序图(详细版)3、源码追踪3.1详细版链接 3.2 个人总结浓缩版(方便记忆)4、总结1、控制反转(IoC)控制反转(IoC)原理的Spring Framework实现。IoC也称为依赖注入(DI)。这是一个过程,通过这个过程,对象只能通过构造函数参数,工厂方法的参数或在构造或从工厂方法返回后在对象实例上设置的属性..
2020-05-11 10:11:20 720 1
原创 Spring源码------手写体验AOP
Spring源码------手写体验AOP目录Spring源码------手写体验AOP1、前言2、AOP的实现原理3、核心代码4、总结1、前言本篇博客并非是对Spring源码的深入研究。过程中主要是体验Spring AOP的过程。那么这篇博客涉及到的知识点大致有以下几点:如何自定义注解,如何通过反射机制去赋予注解强大的功能(说白了,就是体验在反射机制下,注解功能是多么的强大) Spring Ioc容器的实现原理 SpringDI 注解注入 Java反射机制 .
2020-05-10 07:12:48 268
原创 Spring源码------手写体验MVC(升级版)
Spring------手写体验MVC(升级版)目录Spring------手写体验MVC(升级版)1、前言2、构建思想2.1 Spring MVC的大致工作流程2.2 Spring MVC的九大组件2.3 Spring MVC的核心执行流程3、核心代码4、总结1、前言本篇博客并非是对Spring源码的深入研究。而是对上一篇博客《Spring源码------手写体验MVC》结构的优化:进行职责对的解耦。过程中主要是体验Spring IOC和DI的初始化过程。那么
2020-05-09 18:46:57 179
原创 Spring源码------手写体验IOC与DI
Spring源码------手写体验IOC与DI目录Spring源码------手写体验IOC与DI1、前言2、Spring IOC和DI原理流程3、核心代码4、总结1、前言本篇博客并非是对Spring源码的深入研究。而是对上一篇博客《Spring源码------手写体验MVC》结构的优化。过程中主要是体验Spring IOC和DI的初始化过程。那么这篇博客涉及到的知识点大致有以下几点:如何自定义注解,如何通过反射机制去赋予注解强大的功能(说白了,就是体验在反射机制下,
2020-05-08 20:47:20 349
原创 Spring源码-------手写体验MVC
Spring源码-------手写体验MVC目录Spring源码-------手写体验MVC1、前言2、Spring实现MVC的基本思路3、实现MVC核心代码4、总结1、前言本篇博客并非是对spring的原理进行深入的研究,而是通过模拟实现springmvc的功能来体验spring框架的强大之处。那么这篇博客涉及到的知识点大致有以下几点:如何自定义注解,如...
2020-05-07 19:45:59 389
原创 设计模式------中介者模式和解释器模式
中介者模式和解释器模式1、中介者模式1.1 什么是中介者模式中介者模式就是定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。中介者模式又叫调停模式,它是迪米特法则的典型应用。1.2 结构图 中介模式共分为四种角色: Mediator(抽象中介者):声明具体中介者公共的方法,被抽象同事类所引用,供具体同事类...
2020-05-05 14:57:17 300
原创 设计模式------备忘录模式和状态模式
备忘录模式和状态模式目录备忘录模式和状态模式1、备忘录模式1.1 什么是备忘录模式1.2 结构图1.3 实例演示1.4 小结2、状态模式2.1 什么是状态模式2.2 结构图2.3 实例演示2.4 小结1、备忘录模式1.1 什么是备忘录模式备忘录模式(Memento Pattern):在不破坏封装的前提下,捕获一个对象的内部状态,并在该对...
2020-05-05 12:21:44 417
原创 设计模式------迭代器模式和命令模式
迭代器模式和命令模式目录迭代器模式和命令模式1、迭代器模式1.1 什么是迭代器模式1.2 结构图1.3 实例1.4 小结2、命令模式2.1 什么是命令模式2.2 结构图2.3 实例2.4 小结1、迭代器模式1.1 什么是迭代器模式迭代器模式又称为游标模式,它主要是提供了一种顺序访问集合或者容器的方法,而无须暴露集合的内部表示。迭代器模式...
2020-05-04 22:28:22 247
原创 设计模式------责任链模式详解
责任链模式目录责任链模式1、什么是责任链模式2、结构图3、实例4、小结1、什么是责任链模式责任链模式是将每链中每一个结点看做是一个对象,每个结点处理的请求均不相同,且内部类自动维护一个下一个节点对象。每一个请求从链式的首端出发时,会沿着链的路径依次传递给每一个结点对象,直至有对象处理这个请求为止。它属于行为性模式。举个简单的例子,比如我们进行登录验证时,首先需...
2020-05-04 20:21:32 307
原创 设计模式------委派模式和模板方法模式
委派模式和模板模式目录委派模式和模板模式1、委派模式1.1 什么是委派模式1.2 结构图1.3 实例演示1.4 总结2、模板方法模式2.1什么是模板方法模式2.2结构图2.3实例2.4小节1、委派模式1.1 什么是委派模式委派模式不属于23种设计模式,在平常其他设计模式中可能也有体现。同样在现实生活中也有相关的体现,比如一个具体...
2020-05-04 15:33:58 378
原创 设计模式------适配器模式
适配器模式和桥接模式目录适配器模式和桥接模式1、适配器模式1.1 什么是适配器模式1.2 结构图1.3 实例演示1.4 小结1.5手写模拟springmvc适配器模式1、适配器模式1.1 什么是适配器模式适配器模式又叫变压器模式,就是将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能在一起工作的那些类可以一起工作。属于...
2020-05-04 12:03:06 192
原创 设计模式------享元模式和组合模式
享元模式和组合模式1、享元模式1.1 什么是享元模式享元模式就是将系统中细粒度的相同的或者相似的对象以共享的方式存放在享元池中供客户端使用。运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。由于享元模式要求能够共享的对象必须是细粒度对象,因此它又称为轻量级模式,它是一种对象结构型模式。享元模式结构较为复杂,...
2020-05-03 22:13:26 319
原创 设计模式------门面模式与装饰模式
门面模式与装饰模式目录门面模式与装饰模式1、门面模式1.1什么是门面模式1.2结构图1.3实例演示1.4小总结2、装饰模式2.1什么是装饰模式2.2结构图2.3实例演示2.4小总结1、门面模式1.1什么是门面模式门面模式又叫外观模式,提供一个统一的接口,用来访问子系统中的一群接口。其主要特征是定义了一个高层接口,让子系...
2020-05-03 16:32:26 1129 1
原创 设计模式------代理模式详解
代理模式详解1、什么是代理模式代理模式是指为其他对象提供一种代理,以控制这个对象的访问。代理对象在客户端和目标对象之间起到一种中介的作用。他属于结构型设计模式。举个例子就是,想象一下我们生活中的购买火车票的情节,我们可以从官网上直接购买,也可以到售票的窗口购买,如果从官网购买,那么这就可以认为是一个代理,代理对象就是app。当然了,我们也可以从售票厅旁边的小超市,或者其他地方代售...
2020-05-03 10:17:16 320
原创 设计模式------原型模式与建造者模式
设计模式--------原型模式与建造者模式目录设计模式--------原型模式与建造者模式1、原型模式1.1什么是原型模式1.2结构图1.3浅克隆与深克隆实例1.4典型应用1.5小总结2、构建者模式2.1什么是构建者模式2.2结构图2.3实例演示2.4典型应用2.5小总结1、原型模式1.1什么是原型模式...
2020-05-02 21:24:30 1568
原创 DockerFile解析
DockerFile解析1、DockerFile是什么DockerFile是用来构建docker镜像的构建文件,由一系列命令和参数构成的脚本。构建docker镜像分三步走:1.编写dockerfile文件2.dockerbuild3.docker run初始DockerFile2、DockerFile解析过程小总结:从应用软件的角度来看,D...
2020-04-26 11:39:43 205
原创 Docker 镜像和容器数据卷
Docker镜像和容器数据卷1、Docker镜像1.1docker镜像是什么操作系统分为内核和用户空间,对于Linux而言,内核启动后,会挂载root文件系统为其提供用户空间支持。而Docker镜像(Image),就相当于是一个root文件系统。 Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名...
2020-04-26 11:39:17 384
原创 Docker 常用命令
Docker常用命令目录Docker常用命令1、基本命令2、镜像命令3、容器命令4、小节1、基本命令2、镜像命令 2.1列出本地所有镜像docker images列出本机所有镜像 REPOSITORY 镜像的仓库源 TAG ...
2020-04-26 11:38:35 148
原创 Docker简介
Docker简介目录Docker简介1、Docker是什么 2、Docker有什么用3、Docker的框架原理4、Docker与虚拟机有何区别1、Docker是什么 (1)Docker ...
2020-04-26 11:36:39 202
原创 Dubbo------原理篇
Dubbo------原理篇目录Dubbo------原理篇1、RPC原理2、netty通信原理3、dubbo原理1、RPC原理 一次完整的RPC调用流程(同步调用,异步另说)如下:1)服务消费方(client)调用以本地调用方式调用服务;2)client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体;3)clie...
2020-04-23 20:48:12 259
原创 Springboot整合dubbo的三种方式
Springboot整合dubbo的三种方式目录Springboot整合dubbo的三种方式1、使用xml配置文件2、使用注解的方式3、使用配置类文件进行配置1、使用xml配置文件导入dubbo-starter依赖使用这种方式需要在启动类加一个注解: @ImportResource(locations="classpath:provider.xml")例如...
2020-04-23 10:08:18 422
原创 Dubbo-------配置篇
Dubbo-------配置篇具体的dubbo配置信息可以参考dubbo的官方文档: dubbo官方文档目录Dubbo-------配置篇1、配置原则2、常用的一些配置1、配置原则官方文档规定,配置生效的顺序:JVM 启动 -D 参数优先,这样可以使用户在部署和启动时进行参数重写,比如在启动时需改变协议的端口。XML 次之,如果在 XML 中...
2020-04-23 10:07:39 175
原创 Dubbo-------入门篇
Dubbo-------入门篇目录Dubbo-------入门篇1、dubbo简介2、dubbo基本架构3、dubbo入门案例1、dubbo简介Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布...
2020-04-22 17:50:17 183
原创 分布式系统与RPC概述
分布式系统与RPC概述目录分布式系统与RPC概述1、分布式系统1.1 分布式系统概念1.2 分布式系统的特点1.3 分布式系统的优缺点1.4系统的发展演变过程2、RPC概述2.1 什么叫RPC2.2 有了Http接口,为什么还需要RPC呢2.3 Http与RPC的对比1、分布式系统1.1 分布式系统概念《分布式系统原理与范型》定义:“分...
2020-04-22 17:49:56 1348
原创 Zookeeper-------Apache Curator操作API
Zookeeper-------Apache Curator操作API1、操作前准备工作和原生API的一些缺点 idea创建一个maven项目,并引入以下依赖,并使用centos启动zookeeper服务。 <dependency> <groupId>org.apache.zookeeper</groupId&...
2020-04-20 13:10:17 266
原创 Zookeeper-------原生API 操作
Zookeeper原生API 操作目录Zookeeper原生API 操作1、操作前的准备工作2、Zookeeper API详解2.1 构造器摘要2.2 创建节点2.3 删除结点2.4 修改结点的值2.5 获取结点的值,和设置watch事件2.6 获取子节点信息,和设置watch事件2.7 是否存在结点,和设置watch事件2.8获取节点权限和设置节...
2020-04-20 13:10:07 178
原创 Zookeeper进阶篇
Zookeeper--------进阶篇1、Zookeeper集群的搭建2、Zab协议详解3、Leader选举源码篇4、zk原理浅析5、ACL 源码详解6、watch 源码详解
2020-04-18 23:55:10 133
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人