03 2019 档案

Tomcat一
摘要:Tomcat是如何处理http请求的 Tomcat有什么用? Tomcat是一个应用服务器,也是一个Servlet容器,用来接收前端传过来的请求,并将请求传给Servlet,并将Servlet的响应返回给客户端。 Tomcat的体系结构 Tomcat的两大核心组件:Connector和Contain 阅读全文

posted @ 2019-03-29 19:51 红绿森林 阅读(131) 评论(0) 推荐(0)

SpringBoot初探
摘要:SpringBoot核心概念 Spring Boot是什么? SpringBoot是一个为了简化Spring应用初始搭建和开发过程的框架,它是Spring整个技术栈的整合,是J2EE开发的一站式解决方案。 使用SpringBoot 1、新建一个Maven项目 2、引入依赖 3、编写主启动类 4、编写 阅读全文

posted @ 2019-03-27 15:21 红绿森林 阅读(177) 评论(0) 推荐(0)

Java中的日志框架
摘要:日志框架的介绍和使用 常见的日志框架 :JUL(Java.util.logging),JCL(jakarta commons logging),SLF4J,jboss logging,Log4j,Log4j2,LogBack。其中log4j,logback,slf4j均出自同一个人之手。它们分为日志 阅读全文

posted @ 2019-03-26 21:28 红绿森林 阅读(125) 评论(0) 推荐(0)

JVM类加载之创建对象的过程
摘要:JVM对象的创建 new一个对象到底发生了什么? 1.VM遇到new关键字:首先检查是否能在常量池中定位到一个类的符号引用,并检查这个符号引用代表的类是否被加载,验证,准备,解析,初始化过,如果没有,必须先执行相应的类加载过程 2.类加载检查通过后,VM为新生对象分配内存,对象所需的内存空间大小在类 阅读全文

posted @ 2019-03-26 19:46 红绿森林 阅读(528) 评论(0) 推荐(0)

JVM类加载机制二
摘要:类加载器与双亲委派模型 类加载器 类加载的操作不是有虚拟机完成的,而是由类加载器完成的,这样可以让程序定义决定加载哪个类。 类加载器的分类: 从虚拟机的角度有两种加载器,一种是启动类加载器Bootstrap Classloader,它是由C语言编写的,是虚拟机的一部分;另一种的其他的所有加载器,它是 阅读全文

posted @ 2019-03-26 15:07 红绿森林 阅读(126) 评论(0) 推荐(0)

JVM类加载机制一
摘要:类加载的过程 什么是类加载? Java编译器会将我们编写好的代码编译成class字节码文件,JVM会把这些class字节码文件加载到内存中,并对加载的数据进行校验、准备、解析并初始化,这个过程就是类加载机制。类加载分为三个阶段:加载,连接,初始化。 这三个阶段都是在程序运行期间完成的。其中加载,校验 阅读全文

posted @ 2019-03-26 12:59 红绿森林 阅读(142) 评论(0) 推荐(0)

JVM垃圾回收机制四
摘要:GCRoots与可达性分析 Java中的四种引用 强引用、软引用、弱引用、虚引用。这四种引用的强度是逐渐减弱的,JVM垃圾回收的力度是逐渐增强的。 四种引用的作用 1、可以让程序员通过代码来控制对象的生命周期 2、有利于JVM判断哪些引用是否回收。 强引用 强引用有引用变量回收时,永远不会被垃圾回收 阅读全文

posted @ 2019-03-26 12:56 红绿森林 阅读(125) 评论(0) 推荐(0)

JVM垃圾回收机制三
摘要:垃圾回收器 分代垃圾回收常见的垃圾回收器 判断一个垃圾回收器好坏的标准 1、吞吐量越高越好 2、工作线程暂停时间越短越好。 Serial垃圾回收器 串行回收器时最古老的最基本的垃圾回收器,工作线程会产生较长时间的停顿,只使用一个线程去回收。新生代使用复制算法,老年代使用标记压缩算法。 特点:它是单线 阅读全文

posted @ 2019-03-25 22:09 红绿森林 阅读(209) 评论(0) 推荐(0)

JVM垃圾回收机制二
摘要:对象的回收 垃圾的回收涉及的几个问题:何时回收,由谁回收,怎样回收。这几个问题我们一一来解决。 1、何时回收 对象的生死判定 对象达到什么条件才能判断这个对象已经无用了。常见的判断对象生死的方法有两种: (1)引用计数法 给每个对象添加一个引用计数器,只要有地方引用到这个对象,这个对象的计数器就会加 阅读全文

posted @ 2019-03-25 18:15 红绿森林 阅读(158) 评论(0) 推荐(0)

JVM垃圾回收机制一
摘要:JVM内存分配与回收 JVM 分代 JVM把堆分为年轻代和老年代,年轻代又分为1个Eden区和2个Survivor区,Eden和Survivor的内存的大小比例是8:1:1。 为什么要分代? 很大的原因就是分代之后便于垃圾回收,提高回收效率。如果不分代,所有的对象全部都分配在一块大的内存上,那么每经 阅读全文

posted @ 2019-03-24 17:22 红绿森林 阅读(182) 评论(0) 推荐(0)

kafka基础六
摘要:kafka中的高可用HA 1、replication副本 同一个partition会有一个leader和多个副本,这些副本存储的内容与leader相同,可以通过 server.properties 配置中的 default.replication.factor=N进行配置。producer只和Lea 阅读全文

posted @ 2019-03-24 13:29 红绿森林 阅读(210) 评论(0) 推荐(0)

kafka基础五
摘要:Kafka与Zookeeper Zookeeper存储了什么 kafka架构中角色: 1.producer: 消息生产者,发布消息到 kafka 集群的终端或服务。 2.broker: kafka 集群中包含的服务器。 3.topic: 每条发布到 kafka 集群的消息属于的类别,即 kafka 阅读全文

posted @ 2019-03-24 11:54 红绿森林 阅读(113) 评论(0) 推荐(0)

kafka基础四
摘要:消费者消费过程(二) 消费组状态机 :消息的产生存储消费看似是杂乱无章的,但万物都会遵循一定的规则成长,任何事物的发展都是有迹可循的。 开始消费组初始状态为Stable,经过第一次Rebalance之后,正常的还没有向消费组注册过的消费者会执行状态为Stable,在经过第一次rebalance之后, 阅读全文

posted @ 2019-03-23 20:04 红绿森林 阅读(114) 评论(0) 推荐(0)

kafka基础三
摘要:消费者消费消息过程(一) 消费者组 消费者是以消费者组consumer group的方式进行消息消费的,一个消费者组是由一个或者多个消费者组成的,共同消费一个topic,在每个分区同一时间只能由消费者组中的一个消费者读取,一个消费者组中的消费者可以同时读取同一个topic中的多个partition。 阅读全文

posted @ 2019-03-23 18:32 红绿森林 阅读(212) 评论(0) 推荐(0)

kafka基础二
摘要:kafka生产者工作流程 消息产生分析 1.写入方式: producer采用推(push)模式将消息发布到broker,每条消息都会被追加(append)到分区Partition上,属于顺序写磁盘(顺序写磁盘效率比随机写内存要高,保障了kafka的吞吐率) 消息的路由 producer将消息发给br 阅读全文

posted @ 2019-03-23 14:44 红绿森林 阅读(169) 评论(0) 推荐(0)

kafka基础一
摘要:基本概念: 消息系统的组成由生产者,消费者以及存储系统。消费者从存储系统中读取生产者生产的消息。Kafka作为分布式的消息系统支持多个生产者多个消费者,写消息时允许多个生产者写到同一个Partition中,一个Partition中的消息只允许一个消费者组中的一个消费者消费。 1.Producer:消 阅读全文

posted @ 2019-03-23 13:57 红绿森林 阅读(339) 评论(0) 推荐(0)