APM监控-应用程序优化案例:接口被恶意攻击,产生大量调用

一、问题 Tomcat不停重启,数据库连接池动都不动就满了; 死链接超多。 二、监控现象 内存使用、GC情况正常; 数据库连接池用完,总体方法调用次数减少,且耗时大大增加,如下图:   三、分析定位原因 内存使用、GC情况正常:         说明To...

2018-10-29 19:47:45

阅读数 189

评论数 0

面向对象设计原则(五):依赖倒置原则(DIP)

依赖倒置原则(Dependency Inversion Principle,DIP)也称依赖反转原则,是面向对象设计(OOD)中比较重要、常见的一种,总结知识点包括:1、什么是依赖倒置原则?2、为什么需要遵守依赖倒置原则?3、在面向对象设计中如何实现依赖倒置原则?4、依赖倒置原则的实例应用(包括面...

2017-08-08 00:04:14

阅读数 1172

评论数 0

面向对象设计原则(四):接口隔离原则(ISP)

接口隔离原则(Interface Segregation Principle,ISP)是面向对象设计(OOD)中比较重要、常见的一种,总结知识点包括:1、什么是接口隔离原则?2、为什么需要接口隔离原则?3、怎么实现接口隔离原则?4、接口隔离原则的应用案例;5、怎么确定客户程序所需的接口?以及说明与...

2017-08-07 23:17:34

阅读数 887

评论数 0

设计模式(一):单例模式(Singleton Pattern)

单例模式(Singleton Pattern)是设计模式中常用的一种,知识点包括:1、理解什么是单例模式、单例模式有什么优点/缺点、单例模式的应用场景;2、再来看看Java单例模式的6种代码实现方式、每种实现方式有什么需要注意的;3、后面再来了解Java单例模式其他值得关注的地方,如比较静态方法、...

2017-08-02 11:52:58

阅读数 7014

评论数 2

面向对象设计原则(三):里氏替换原则(LSP)

里氏替换原则(Liskov Substitution Principle,LSP),知识点包括:1、什么是里氏替换原则?2、为什么需要遵守里氏替换原则? 3、怎么实现里氏替换原则,保证子类能透明的替换父类?3、里氏替换原则(LSP)与开闭原则(OCP)的区别与联系;5、里氏替换原则冲突时如何重构,...

2017-08-01 19:48:35

阅读数 1858

评论数 0

面向对象设计原则(二):开放-封闭原则(OCP)

开放-封闭原则(Open-closed principle,OCP)也称开闭原则,是面向对象设计(OOD)中比较重要的一种,下面来总结开放-封闭原则的知识点,包括:1、什么是开放-封闭原则?2、为什么需要遵守开放-封闭原则?3、怎么做到开放-封闭原则?4、开放-封闭原则需要注意什么?

2017-02-25 14:44:04

阅读数 2306

评论数 0

面向对象设计原则(一):单一职责原则(SRP)

单一职责原则(Single responsibility principle,SRP)是面向对象设计(OOD)中比较重要的一种,下面来总结单一职责原则的知识点,包括:1、什么是单一职责原则、什么是职责?2、为什么需要遵守单一职责原则,违反单一职责有什么坏处?3、单一职责原则需要注意什么?4、单一职...

2017-02-25 13:58:22

阅读数 1715

评论数 0

Tomcat(三) Tomcat安装配置:Tomcat+Nginx+keepalived 实现动静分离、Session会话保持的高可用集群

在前文了解到了Tomcat的配置及技术实现,而在Nginx系列文章中了解到了Nginx的配置,下面将在这些的基础上,先安装Tomcat,再进行配置Tomcat+Nginx+keepalived 的动静分离的高可用集群,最后再配置Tomcat集群,实现Session会话保持。

2017-01-20 22:09:43

阅读数 3431

评论数 1

Tomcat(二) Tomcat实现:Servlet与web.xml介绍 以及 源码分析Tomcat实现细节

下面将深入了解Tomcat技术的实现:先来了解JavaEE Servlet技术的一些对象组件;再来了Web应用程序部署文件web.xml中对Servlet组件的定义;最后再从Tomcat源码分析实现细节,重点关注:Tomcat的启动/初始化、并发线程模式、接收请求与处理、以及Servlet容器的实...

2017-01-20 21:56:51

阅读数 8143

评论数 2

Tomcat(一) Tomcat是什么:Tomcat与Java技术 Tomcat与Web应用 以及 Tomcat基本框架及相关配置

Tomcat是一个被广泛使用的Java WEB应用服务器,下面将认识Tomcat:先来了解Tomcat与Java技术的关系、以及在WEB中的应用场景;再来了解Tomcat的安装目录结构、Tomcat配置文件、Tomcat部署Web应用程序的目录结构;最后了解Tomcat基本架构、以及Tomcat各...

2017-01-18 23:18:34

阅读数 20933

评论数 5

Java虚拟机垃圾回收(四) 总结:内存分配与回收策略 方法区垃圾回收 以及 JVM垃圾回收的调优方法

Java虚拟机垃圾回收(四) 总结:内存分配与回收策略 方法区垃圾回收 以及 JVM垃圾回收的调优方法       在《Java对象在Java虚拟机中的创建过程》了解到对象创建的内存分配,在《Java内存区域 JVM运行时数据区》中了解到各数据区有些什么特点、以及相关参数的调整,在《Java虚拟机...

2017-01-17 23:16:27

阅读数 5656

评论数 0

Java虚拟机垃圾回收(三) 7种垃圾收集器:主要特点 应用场景 设置参数 基本运行原理

下面先来了解HotSpot虚拟机中的7种垃圾收集器:Serial、ParNew、Parallel Scavenge、Serial Old、Parallel Old、CMS、G1,先介绍一些垃圾收集的相关概念,再介绍它们的主要特点、应用场景、以及一些设置参数和基本运行原理。

2017-01-02 23:41:24

阅读数 21989

评论数 7

Java虚拟机垃圾回收(二) 垃圾回收算法:标记-清除算法 复制算法 标记-整理算法 分代收集算法 火车算法

在前文了解到如何判断Java对象已经死亡,下面来了解Java虚拟机垃圾回收的几种常见算法:标记-清除算法、复制算法、标记-整理算法、分代收集算法、火车算法,介绍它们的算法思路,有什么优点和缺点,以及主要应用场景。

2017-01-02 22:43:50

阅读数 6118

评论数 0

Java虚拟机垃圾回收(一) 基础:回收哪些内存/对象 引用计数算法 可达性分析算法 finalize()方法 HotSpot实现分析

下面先来了解Java虚拟机垃圾回收的基础内容:如何判断对象是存活还是已经死亡? 介绍相关的垃圾回收基础算法:引用计数算法、可达性分析算法,以及说明finalize()方法作用,最后再来说说HotSpot虚拟机中实现对象可达性分析的一些问题。

2017-01-02 22:13:45

阅读数 7573

评论数 1

Java编译(三) Java即时编译(JIT编译):运行时把Class文件字节码编译成本地机器码

下面详细了解JIT编译;从官方JDK中的HotSpot虚拟机的JIT编译器入手,先介绍解释器与JIT编译器是如何配合工作的,认识JIT编译器C1/C2;再看看JIT编译的是什么,以及触发条件是什么;而后再简单介绍JIT编译过程,认识几种编译技术;最后对比Java与C/C++的编译器。

2016-12-31 01:18:19

阅读数 8265

评论数 0

Java对象与JVM(三) Java对象在Java虚拟机中的引用访问方式

在前面两篇文章中了解到Java对象实例是如何在HotSpot虚拟机的Java堆中创建的,以及创建后的内存布局是怎样的。下面详细了解在Java堆中的Java对象是如何访问定位的:先来了解reference类型数据是什么,再来了解两种访问方式:使用句柄或者使用直接指针(HotSpot虚拟机使用直接指针...

2016-12-29 21:14:55

阅读数 3731

评论数 2

Java对象与JVM(二) Java对象在Java虚拟机中的内存布局

在前面文章了解到Java对象实例是如何在Java堆中创建的,下面我们详细了解Java普通对象创建后,在HotSpot虚拟机Java堆中的内存布局是怎样的,可以分为3个区域:对象头(Header)、实例数据(Instance)和对齐填充(Padding)。

2016-12-29 21:03:04

阅读数 2752

评论数 2

Java对象与JVM(一) Java对象在Java虚拟机中的创建过程

下面我们详细了解Java程序中new一个普通对象时,HotSpot虚拟机是怎么样创建这个对象的,包括5个步骤:相应类加载检查过程、在Java堆中为对象分配内存、分配后内存初始化为零、对对象进行必要的设置、以及执行对象实例方法,最后我们再从JVM指令角度来解释下Java对象创建。

2016-12-29 07:47:14

阅读数 6996

评论数 0

Java内存管理:Java内存区域 JVM运行时数据区

Java内存管理:在前面的一些文章了解到javac编译的大体过程、Class文件结构、以及JVM字节码指令,下面我们详细了解Java内存区域:先说明JVM规范定义的JVM运行时分配的数据区有哪些,然后分别介绍它们的特点,并指出给出一些HotSpot虚拟机实现的不同点和调整参数。

2016-12-29 00:36:20

阅读数 6351

评论数 0

Java语言层面和JVM层面方法特征签名的区别 及 实例分析

在前面文章中多次提到Java语言层面方法特征签名和JVM层面方法特征签名的区别,下面我们先来回顾一下Java语言层面方法特征签名和JVM层面方法特征签名的区别的是什么,再用测试程序实例来分析验证:Class文件中有两个同名同参数(类型、顺序都相同),但返回值类型不一样的方法也是允许的,可以正常运行。

2016-12-27 01:13:30

阅读数 3760

评论数 0

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