自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 tomcat 源码总结

一、Tomcat的功能 对于一个web开发者而言,Tomcat 是一个请求处理的第一步,然后再进行我们业务处理。如下图: 从上图可以看出,Tomcat有2大块非常重要的功能:1、HTTP服务器的功能:socket 通信、解析报文。2、servlet 容器的功能。下面我们具体看下这2部分的功能(本文主要关注coyote、Catalina模块,对于EL、Jasper没做分析)。二、Tomcat的架构 Tomcat 为了完成上述的功能,封装了很对的组件,各...

2020-06-02 00:02:14 235

原创 类加载器工作模型简介(二)

文章目录一、类加载描述二、类加载流程加载连接验证准备解析初始化一、类加载描述类加载过程就是将class文件加载到内存,并对进行校验、解析、初始化等的过程,其实就是将编译后的java文件(.class文件)变成虚拟机中的class对象,每个类都有且只有一个class对象(class和类加载器确定一个class对象,类一样但是由不同的加载器加载也是不同的class对象),都是首次主动使用后被加载到...

2020-02-13 17:19:41 218

原创 类加载流程简介(一)

文章目录一、类加载描述二、类加载流程一、类加载描述 类加载过程就是将class文件加载到内存,并对进行校验、解析、初始化等的过程,其实就是将编译后的java文件(.class文件)变成class对象,每个类都有且只有一个class对象,都是首次主动使用后被加载到JVM的方法区中。类加载过程在程序运行期间完成。 类从被加载到内存开始,到卸载出内存为止,整个生命周期如下: ![在这里插入...

2020-02-12 01:05:04 261

原创 Flink学习(二) job 执行流程

Flink SourceFunction 学习记录SourceFunction 简单使用和描述SourceContext 详解合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML ...

2019-11-02 17:48:15 1049 1

原创 Kafka Consumer 消费逻辑

简介:本文主要叙述KafkaConsumer消费逻辑(本文使用的是flink 中的Kafka-client),是如何获取获取数据,这里直奔主题,从KafkaConsumer直接看起来。

2019-10-26 19:52:04 620

原创 flink学习(一) —Flink-Kafka-Connector基本描述

一、flink-connector-kafka 功能简介 flink Kafka Connector 是 flink 内置的Kafka连接器,包含了从topic读取数据的Flink Kafka Consumer 和 向topic写入数据的flink kafka producer,除了基本功能意外还提供了基于 checkpoint 机制提供了完美的容错能力。本片文章主要是Fli...

2019-10-25 00:20:48 1846 1

原创 Hadoop 安装(mac 环境,伪分布式)

Hadoop 可以部署成非分布式模式运行的一个java进程(主要用于本地调试),也可以可以在单节点上以所谓的伪分布式模式运,每一个Hadoop守护进程都作为一个独立的Java进程运行。下面主要说下Mac下面伪分布式的安装和启动一、安装前准备。 java环境配置 jdk 安装包下载,解压和配置环境变量的配置。 如果第一次配置环境变量,创建一个.bash_profile的隐藏配...

2019-10-01 17:25:07 302

原创 Flink Event Time 和WaterMark

flink watermark欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢...

2019-07-21 15:23:18 188

原创 类加载器简介

一、ClassLoader简介               Java的类加载器的作用就是在运行时加载类到虚拟机中,首先不管对于什么样的java应用肯定是由很多class组成实现的,不同的功能所在的class是不一样的(你说我把所有的功能放在一个class里面,那你很棒棒哦),比如当我们的入口函数被调用的时候,入口函数使用了其他class(静态代码块、实例)的功能,这时类加载器就会按需加载将需要...

2019-01-20 16:20:16 174

原创 tomcat 初始化

一、启动        对于tomcat的启动类,主要是Catalina和Bootstrap这2个类。我们先看下启动的流程图,然后针对这2个类单独叙说。 下面我们主要看下Bootstrap和Catalina这2个类(JMX这块会单独放到后续说)。   1、Bootstrap类是一个入口点,当我们在使用startup.bat(startup.sh)等启动脚本时实际上是调用的该类的main方...

2019-01-18 15:43:06 675

原创 Digester简介和使用

一、Digester简介                  1、sax简单介绍,对于XML的解析java有很多种实现,如DOM、SAX等,degister就是基于SAX实现,SAX提供了文件读取的底层接口,它是基于事件驱动类型。在解析XML的过程中,元素通过匹配模式(matching pattern)进行识别,比如当扫描到文节点元素(element)开始或者结束这些地方的时候会通知事件处理函数...

2019-01-13 17:42:42 8392 2

原创 TOMCAT源码环境搭建(maven方式)

一、TOMCAT 源码的获取        对于tomcat的源码,可以从github上面poll最新的:https://github.com/apache/tomcat或者从tomcat官网获取:https://tomcat.apache.org/download-90.cgi,(目前已经更新到9了,我们以最新的为主)。二、添加依赖       1、 由于tomcat是ant管理的,使用...

2019-01-10 23:13:09 1650 1

原创 HTTP请求的完整流程(tomcat)

1、HTTP协议的简单介绍  网络通信协议的本质就是规则,软件和硬件必须遵循的共同守则。我们先看下HTTP协议的请求体和响应体是什么样子:GET /servlet/myServlet HTTP/1.1Host: localhost:8080Connection: keep-aliveCache-Control: max-age=0Upgrade-Insecure-Requests...

2018-12-28 18:11:02 2345

原创 BeanPostProcessor和BeanFactoryPostProcessor浅析以及在spring初始化中回调

一、先看下BeanPostProcessor和BeanFactoryPostProcessor的各自的子类以及方法。    1、 BeanFactoryPostProcessor,是针对整个工厂生产出来的BeanDefinition作出修改或者注册。作用于BeanDefinition时期。从名称可以看出是容器级别的,继承关系如下:                        Bean...

2018-11-21 15:50:45 9845 1

转载 rabbitMQ、AMQP入门

本文参照:http://www.rabbitmq.com/tutorials/amqp-concepts.htmlRabbitMQ官方解释:消息系统允许软件、应用相互连接和扩展。这些应用可以相互链接起来组成一个更大的应用,或者将用户设备和数据进行连接。消息系统通过将消息的发送和接收分离来实现应用程序的异步和解偶。我们白话文的理解就是:是一个消息代理 - 一个消息系统的媒介。它可以为你的应...

2018-09-12 23:39:00 469

原创 spi模式

 一、java spi对于java spi大部分开发者都不会陌生,我们使用的第三方框架的配置如:jdbc、日志、spring、微服务框架等。spi全称:Service Provider Interface,实现了模块间的解耦,实现可拔插。java spi的约束如下:在META-INF/services/目录中创建以接口全限定名命名的文件该文件内容为Api具体实现类的全限定名 使用S...

2018-09-05 12:04:09 352

原创 ubuntu安装sqlserver

可参照官网教程:https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-2017一、安装sqlserver        1、导入公共存储库 GPG 密钥:              wget -qO- https://packages.microsoft.com...

2018-09-01 11:40:08 6715

原创 eureka-client服务启动

我们在看流程前看下下面的一个类图,其中client的流程基本都在DiscoveryClient的构造方法中,而eureka-server的逻辑大部分在PeerAwareInstanceRegistryImpl和PeerEurekaNodes中。这里再介绍下InstanceInfo和EurekClient的区别, 主要用于标示这个应用的实例信息,如应用名称、consumer(provider)...

2018-08-27 23:04:23 1158

原创 ApplicationContextInitializer的三种使用方法

概述:ApplicationContextInitializer是在springboot启动过程(refresh方法前)调用,主要是在ApplicationContextInitializer中initialize方法中拉起了ConfigurationClassPostProcessor这个类(我在springboot启动流程中有描述),通过这个processor实现了beandefinition...

2018-07-19 00:53:35 19547 3

原创 springboot bean的实例化过程和属性注入过程

了解过springboot的加载流程的都知道springboot初始化bean都在refresh方法中。这个方法代码如下:// Prepare this context for refreshing.prepareRefresh();// Tell the subclass to refresh the internal bean factory.新建beanFactoryConfigura...

2018-07-03 17:59:10 21026 2

原创 BeanDefinitionRegistryPostProcessor和ClassPathBeanDefinitionScanner实现自定义注解的接口代理和注入

123123

2018-06-28 14:24:46 5103 1

原创 window下面 用mod_wsgi集成apache2.2+django1.8+python2.7环境

版本 mod_wsgi 3.3  下载地址:https://code.google.com/p/modwsgi/downloads/detail?name=mod_wsgi-win32-ap22py27-3.3.so;python 2.7django1.8apache2.2 可以在官网下载;首先 安装python、django、 apache(这就不一一叙述怎么安装了)

2015-01-09 15:47:26 425

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除