自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 nginx(三) nginx配置:反向代理 负载均衡 后端健康检查 缓存

在《nginx详解》中对基本认识nginx了,在《nginx编译安装及配置WEB服务》进行了编译安装以及配置WEB服务。下面进行nginx另一个应用场景的配置:包括配置反向代理、负载均衡、后端服务器健康状态检查、缓存。

2020-09-27 18:22:41 6210

原创 MySQL监控:MySQL监控指标、MySQL监控界面实现、Python监控MySQL

本文概要: 0、前言; 1、监控MySQL的哪些指标; 2、一目了然的MySQL监控的UI界面; 3、Python代码获取MySQL监控状态。0、前言 我们知道“SHOW STATUS”命令是获取MySQL实例状态的,“SHOW VARIABLES”命令是获取MySQL实例设置变量的,也是监控数据的最重要来源。 这两个命令使用如下: “SHOW VARIABLES”命令获取...

2020-05-11 17:17:00 6561 3

原创 python操作统计excel表格,生成新excel表格

python操作excel表格有不少组件,如:xlwt、openpyxl、pandas、xlrd、xlwings,一些组件在使用时有问题;这里选用xlwings,从原Excel报表统计后再生成的新Excel表格。

2020-05-09 14:47:49 3965

原创 JVM监控:JVM监控指标、JVM监控界面实现、Java监控JVM

本文概要: 1、监控JVM的哪些指标; 2、一目了然的JVM监控的UI界面; 3、Java代码获取JVM监控状态。1、监控JVM的哪些指标 javaVersion /** Java版本号 */ ...

2020-01-13 19:22:40 14983 10

原创 JVM监控:python脚本JMX获取JVM状态

python脚本JMX获取JVM状态主要原理: 主要通过python库jmxquery,jmxquery是通过python脚本调用它里面的JAR包的JAVA方法连接JMX端口,以获取JVM的状态。 jmxquery github: https://github.com/dgildeh/JMXQuery/tree/master/...

2019-09-12 17:30:45 3403 3

原创 CAT分布式监控系统(二):CAT埋点方案 项目接入CAT监控说明

CAT分布式监控系统(二):CAT埋点方案 项目接入CAT监控说明本文概要: 前面《CAT监控功能介绍》已经介绍了CAT监控系统是什么、能做什么; 而本文主要是基于自己编写的CAT采集端埋点SDK,来说明CAT埋点方案,以及项目中如何接入CAT监控。1、配置/data/appdatas/cat/client.xml...

2019-09-10 18:03:36 11217 5

原创 CAT分布式监控系统(一):CAT功能介绍 CAT监控系统是什么、能做什么?

CAT分布式监控系统(一):CAT监控系统功能介绍 本文概要: 1、CAT监控系统是什么。 2、CAT监控系统能做什么,能监控些什么。 下面有些截图是CAT 2.0版本的,但和3.0版本没什么区别的。一、简介 CAT(Central Application Tracki...

2019-06-03 21:13:08 41916 1

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

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

2018-10-29 19:47:45 1060

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

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

2017-08-08 00:04:14 6365

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

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

2017-08-07 23:17:34 2794

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

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

2017-08-02 11:52:58 12033 2

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

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

2017-08-01 19:48:35 5688

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

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

2017-02-25 14:44:04 4026

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

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

2017-02-25 13:58:22 3152

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

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

2017-01-20 22:09:43 4232 1

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

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

2017-01-20 21:56:51 11334 3

原创 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 68109 8

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

Java虚拟机垃圾回收(四) 总结:内存分配与回收策略 方法区垃圾回收 以及 JVM垃圾回收的调优方法       在《Java对象在Java虚拟机中的创建过程》了解到对象创建的内存分配,在《Java内存区域 JVM运行时数据区》中了解到各数据区有些什么特点、以及相关参数的调整,在《Java虚拟机垃圾回收(一) 基础》中了解到如何判断对象是存活还是已经死亡?在《Java虚拟机垃圾回收(二) 垃圾回

2017-01-17 23:16:27 7363 1

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

Java虚拟机垃圾回收(三) 7种垃圾收集器主要特点 应用场景 设置参数 基本运行原理 在《Java虚拟机垃圾回收(一) 基础》中了解到如何判断对象是存活还是已经死亡?在《Java虚拟机垃圾回收(二) 垃圾回收算法》了解到Java虚拟机垃圾回收的几种常见算法。 下面先来了解HotSpot虚拟机中的7种垃圾收集器:Serial、ParNew、Parall...

2017-01-02 23:41:24 30282 15

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

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

2017-01-02 22:43:50 10238 1

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

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

2017-01-02 22:13:45 12799 3

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

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

2016-12-31 01:18:19 14410 3

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

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

2016-12-29 21:14:55 5136 2

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

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

2016-12-29 21:03:04 3464 2

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

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

2016-12-29 07:47:14 12607 2

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

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

2016-12-29 00:36:20 9105 3

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

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

2016-12-27 01:13:30 6226 1

原创 JVM字节码指令 及 反编译分析

通过前文知道Class文件中的各方法表的"code"属性存储了对应的JVM字节码指令,下面详细了解JVM字节码指令:先对字节码指令组成结构有个大体了解,并通过前面的"getMap"方法的字节码数据来分析JVM指令及操作码助记符,而后了解字节码指令与数据类型的关系,最后分类说明JVM指令的功能及注意事项。

2016-12-26 22:46:51 6827

原创 Java Class文件结构解析 及 实例分析验证

Class文件是JVM执行引擎的数据入口,也是Java技术体系的基础构成之一;下面我们详细了解Class文件:先对Class文件结构有个大体了解,并了解Class文件结构里的一些名称定义;而后再详细说明结构中每一项数据的含义,并用测试程序编译Class文件来分析验证Class文件结构。

2016-12-25 18:57:21 10748

原创 Java编译(二) Java前端编译:Java源代码编译成Class文件的过程

在上篇文章中了解到了Java前端编译 JIT编译 AOT编译各有什么优点和缺点,下面详细了解Java前端编译:Java源代码编译成Class文件的过程;我们从官方JDK提供的前端编译器javac入手,用javac编译一些测试程序,调试跟踪javac源码,看看javac整个编译过程是如何实现的。

2016-12-21 21:38:40 26315 7

原创 Java编译(一) Java三种编译方式:前端编译 JIT编译 AOT编译

Java编译涉及到非常多的知识层面:编译原理、语言规范、虚拟机规范、本地机器码优化等;下面我们先来看下Java体系中的三种编译方式:前端编译、即时编译(JIT编译)、静态提前编译(AOT编译)解它们各有什么优点和缺点,再来看看主流的前端编译+JIT编译方式的运作过程。

2016-12-19 21:24:00 14347 5

原创 CentOS上编译OpenJDK8源码 以及 在eclipse上调试HotSpot虚拟机源码

想深入了解Java的运行机制,我们有必要了解HotSpot虚拟机;下面我们先在CentOS6.4 64位系统上编译OpenJDK8源码,然后用gdb断点调试hotspot源码,最后再配置在eclipse上调试hotspot源码;主要包括: 1、编译OpenJDK8源码; 2、gdb断点进入源码调试hotspot; 3、在eclipse上调试hotspot源码; 4、配置hotspot调试运行eclipse的java工程;

2016-12-18 09:50:38 11477 9

原创 各种容器与服务器的区别与联系:Servlet容器 WEB容器 Java EE容器 应用服务器 WEB服务器 Java EE服务器

经常看到各种容器名称:Servlet容器、WEB容器、Java WEB容器、Java EE容器等,还有各种服务器名称:应用服务器、WEB服务器、WEB应用服务器、Java WEB应用服务器、Java EE服务器等, 下面我们尝试区分它们,找出他们之间的联系,最后通过Apache、nginx、tomcat等举例说明容器以及服务器的联系。

2016-11-13 11:48:41 17800 1

原创 Java发展:各版本JDK新特性 JVM发展 Java技术应用发展

上篇我们对Java平台体系有了一个全面的了解,下面先简单介绍Java发展历史,然后在整个的发展史的基础上,抽取几个关注点的时间线,分别介绍各JDK版本的新特性、JVM发展、以及Java技术的应用发展

2016-11-13 09:33:40 3280

原创 Java体系:组成结构 运行机制 JRE/JDK/OpenJDK Java SE/EE/ME Java优点

Java体系:组成结构 运行机制 JRE/JDK/OpenJDK Java SE/EE/ME Java优点       Java平台是一个庞大的体系,为了更好的使用Java,我们需要对Java体系有一个全面的了解。下面我们将会了解到:1、什么是 Java 技术?为何需要 Java?2、Java体系:       Java组成结构以及Java程序运行机制;    

2016-11-13 09:01:48 7056 1

原创 nginx(四) nginx+keepalived 实现主备+双主热备模型的高可用负载均衡代理服务

nginx+keepalived 实现主备+双主热备模型的高可用负载均衡代理服务:下面将在前文的一些基础上,用keepalived分别实现主备模型和双主模型的nginx反向代理服务器的高可用。

2016-11-05 22:17:11 5630 2

原创 nginx(二) nginx编译安装 及 配置WEB服务

下面先进行nginx编译安装,再进行nginx的WEB服务相关的应用配置:包括设置配置文件vim下语法高亮显示、配置虚拟主机、基于IP的访问控制、基于用户认证的访问控制、建立下载站点列表、URL地址重写、防盗链、Nginx状态页面、配置gzip压缩、日志、基于SSL提供https服务等。

2016-11-03 23:21:50 3948 1

原创 nginx(一) nginx详解

nginx(一) nginx详解       nginx是一个被广泛使用的集群架构组件,我们有必要对它有足够的了解。下面将先认识nginx:包括应用场景、nginx基本架构、功能特性、并发模型以及配置说明,最后我们再总结下,为什么选择nginx的原因。1、nginx应用       nginx (engine x)是一个可以作为HTTP WEB服务器、反向代理服务器、邮件代理服务器和一个通用的TC...

2016-11-03 23:03:04 38811 2

原创 5种IO模型、阻塞IO和非阻塞IO、同步IO和异步IO

5种IO模型、阻塞IO和非阻塞IO、同步IO和异步IO 看了一些文章,发现有很多不同的理解,可能是因为大家入切的角度、环境不一样。所以,我们先说明基本的IO操作及环境。本文是在《UNIX网络编程 卷1:套接字联网API》6.2节"I/O 模型 "的基础上,即UNIX/LINUX环境下的网络 IO环境下的理解,它里面给出的例子是读取(接收)网络UDP数据。下面简单写写自己对这些IO...

2016-10-28 20:01:41 34128 15

原创 keepalived详解 及 keepalived配置LVS高可用集群

keepalived详解及配置LVS高可用负载均衡集群:keepalived设计组成、VRRP工作机制、VRRP与keepalived关系、脑裂问题、双主模型、keepalived配置文件说明;配置LVS ipvs + keepalived高可用负载均衡:配置ipvs、配置后端realserver健康状态检查、在director提供维护页面、实现模拟主备切换、主备切换及故障状态处理和邮件通知

2016-10-22 13:36:20 12194

空空如也

空空如也

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

TA关注的人

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