草庐IT

最近迷上了源码,Tomcat源码,看我这篇就够了

1ApacheTomcat源码环境构建1.1ApacheTomcat源码下载https://tomcat.apache.org/download-80.cgi环境:jdk11下载对应的zip包下载到本地任意磁盘下1.2Tomcat源码环境配置1.2.1增加POM依赖管理文件解压apache-tomcat-8.5.63-src压缩包,得到⽬录apache-tomcat-8.5.63-src进⼊apache-tomcat-8.5.63src⽬录,创建⼀个pom.xml⽂件,⽂件内容如下4.0.0org.apache.tomcatapache-tomcat-8.5.63-srcTomcat8.58.

最近迷上了源码,Tomcat源码,看我这篇就够了

1ApacheTomcat源码环境构建1.1ApacheTomcat源码下载https://tomcat.apache.org/download-80.cgi环境:jdk11下载对应的zip包下载到本地任意磁盘下1.2Tomcat源码环境配置1.2.1增加POM依赖管理文件解压apache-tomcat-8.5.63-src压缩包,得到⽬录apache-tomcat-8.5.63-src进⼊apache-tomcat-8.5.63src⽬录,创建⼀个pom.xml⽂件,⽂件内容如下4.0.0org.apache.tomcatapache-tomcat-8.5.63-srcTomcat8.58.

JVM运行数据区深度解析

运行数据区字节码只是一个二进制文件存放在那里。要想在jvm里跑起来,先得有个运行的内存环境。也就是我们所说的jvm运行时数据区。1)运行时数据区的位置运行时数据区是jvm中最为重要的部分,执行引擎频繁操作的就是它。类的初始化,以及后面我们讲的对象空间的分配、垃圾的回收都是在这块区域发生的。2)区域划分根据《Java虚拟机规范》中的规定,在运行时数据区将内存细分为几个部分线程私有的:Java虚拟机栈(JavaVirtualMachineStack)、程序计数器(ProgramCounterRegister)、本地方法栈(NativeMethodStacks)大家共享的:方法区(MethodAre

JVM运行数据区深度解析

运行数据区字节码只是一个二进制文件存放在那里。要想在jvm里跑起来,先得有个运行的内存环境。也就是我们所说的jvm运行时数据区。1)运行时数据区的位置运行时数据区是jvm中最为重要的部分,执行引擎频繁操作的就是它。类的初始化,以及后面我们讲的对象空间的分配、垃圾的回收都是在这块区域发生的。2)区域划分根据《Java虚拟机规范》中的规定,在运行时数据区将内存细分为几个部分线程私有的:Java虚拟机栈(JavaVirtualMachineStack)、程序计数器(ProgramCounterRegister)、本地方法栈(NativeMethodStacks)大家共享的:方法区(MethodAre

IO、NIO、BIO傻傻分不清吗,让我对象告诉你~~

1、Stream与Channelstream不会自动缓冲数据,channel会利用系统提供的发送缓冲区、接收缓冲区(更为底层)stream仅支持阻塞API,channel同时支持阻塞、非阻塞API,网络channel可配合selector实现多路复用二者均为全双工,即读写可以同时进行虽然Stream是单向流动的,但是它也是全双工的2、IO模型同步:线程自己去获取结果(一个线程)例如:线程调用一个方法后,需要等待方法返回结果异步:线程自己不去获取结果,而是由其它线程返回结果(至少两个线程)例如:线程A调用一个方法后,继续向下运行,运行结果由线程B返回当调用一次channel.read或strea

IO、NIO、BIO傻傻分不清吗,让我对象告诉你~~

1、Stream与Channelstream不会自动缓冲数据,channel会利用系统提供的发送缓冲区、接收缓冲区(更为底层)stream仅支持阻塞API,channel同时支持阻塞、非阻塞API,网络channel可配合selector实现多路复用二者均为全双工,即读写可以同时进行虽然Stream是单向流动的,但是它也是全双工的2、IO模型同步:线程自己去获取结果(一个线程)例如:线程调用一个方法后,需要等待方法返回结果异步:线程自己不去获取结果,而是由其它线程返回结果(至少两个线程)例如:线程A调用一个方法后,继续向下运行,运行结果由线程B返回当调用一次channel.read或strea

【手把手】光说不练假把式,这篇全链路压测实践探索

Hello,大家好呀,前两篇文章,我们说了下关于全链路压测的意义、整体架构,以及5种压测的方案。前面两篇基本都属于比较理论的内容,今天这篇咱们来点实践的东西,手把手带你搞出一个压测来如果不清楚之前两篇的文章的小伙伴,可以先看下,在这里7环境准备7.1环境服务列表需要在虚拟机或者linux服务器启动运行环境服务ip端口备注mysql172.18.0.103306数据库服务rabbitMQ172.18.0.205672,5672RabbitMQ消息服务redis172.18.0.306379Redis缓存服务nacos172.18.0.408848微服务注册中心skywalking172.18.0

【手把手】光说不练假把式,这篇全链路压测实践探索

Hello,大家好呀,前两篇文章,我们说了下关于全链路压测的意义、整体架构,以及5种压测的方案。前面两篇基本都属于比较理论的内容,今天这篇咱们来点实践的东西,手把手带你搞出一个压测来如果不清楚之前两篇的文章的小伙伴,可以先看下,在这里7环境准备7.1环境服务列表需要在虚拟机或者linux服务器启动运行环境服务ip端口备注mysql172.18.0.103306数据库服务rabbitMQ172.18.0.205672,5672RabbitMQ消息服务redis172.18.0.306379Redis缓存服务nacos172.18.0.408848微服务注册中心skywalking172.18.0

Docker仓库管理镜像 -- 公共仓库【Docker Hub】和私人仓库【Registry】和【harbor】

镜像仓库管理docker仓库,用来管理镜像。主要分为公共仓库和私人仓库。下面介绍了公共仓库DockerHub、私人仓库Registry和harbor。DockerHUb仓库管理什么是DockerHUb保存和分发镜像的最直接方法就是使用DockerHub。​ DockerHub是Docker公司维护的公共Registry。用户可以将自己的镜像保存到DockerHub免费的repository中,如果不希望别人访问自己的镜像,也可以购买私有repository。账号注册和登陆一般,你需要先在docker中心创建一个账户(如果您尚未有)。你可以直接在DockerHub创建你的账户。如果有已有账号可

Docker仓库管理镜像 -- 公共仓库【Docker Hub】和私人仓库【Registry】和【harbor】

镜像仓库管理docker仓库,用来管理镜像。主要分为公共仓库和私人仓库。下面介绍了公共仓库DockerHub、私人仓库Registry和harbor。DockerHUb仓库管理什么是DockerHUb保存和分发镜像的最直接方法就是使用DockerHub。​ DockerHub是Docker公司维护的公共Registry。用户可以将自己的镜像保存到DockerHub免费的repository中,如果不希望别人访问自己的镜像,也可以购买私有repository。账号注册和登陆一般,你需要先在docker中心创建一个账户(如果您尚未有)。你可以直接在DockerHub创建你的账户。如果有已有账号可