- 博客(59)
- 收藏
- 关注
原创 nginx(三) nginx配置:反向代理 负载均衡 后端健康检查 缓存
在《nginx详解》中对基本认识nginx了,在《nginx编译安装及配置WEB服务》进行了编译安装以及配置WEB服务。下面进行nginx另一个应用场景的配置:包括配置反向代理、负载均衡、后端服务器健康状态检查、缓存。
2020-09-27 18:22:41
6474
原创 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
7235
3
原创 python操作统计excel表格,生成新excel表格
python操作excel表格有不少组件,如:xlwt、openpyxl、pandas、xlrd、xlwings,一些组件在使用时有问题;这里选用xlwings,从原Excel报表统计后再生成的新Excel表格。
2020-05-09 14:47:49
4166
原创 JVM监控:JVM监控指标、JVM监控界面实现、Java监控JVM
本文概要: 1、监控JVM的哪些指标; 2、一目了然的JVM监控的UI界面; 3、Java代码获取JVM监控状态。1、监控JVM的哪些指标 javaVersion /** Java版本号 */ ...
2020-01-13 19:22:40
15958
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
3683
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
11912
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
43388
1
原创 APM监控-应用程序优化案例:接口被恶意攻击,产生大量调用
一、问题 Tomcat不停重启,数据库连接池动都不动就满了;死链接超多。 二、监控现象 内存使用、GC情况正常;数据库连接池用完,总体方法调用次数减少,且耗时大大增加,如下图: 三、分析定位原因 内存使用、GC情况正常: 说明Tomcat运行问题不大。数据库连接池用完,总体方法调用次数减少,且耗时大大增加: ...
2018-10-29 19:47:45
1138
原创 面向对象设计原则(五):依赖倒置原则(DIP)
依赖倒置原则(Dependency Inversion Principle,DIP)也称依赖反转原则,是面向对象设计(OOD)中比较重要、常见的一种,总结知识点包括:1、什么是依赖倒置原则?2、为什么需要遵守依赖倒置原则?3、在面向对象设计中如何实现依赖倒置原则?4、依赖倒置原则的实例应用(包括面向对象程序设计、系统架构、社会活动中的应用)。
2017-08-08 00:04:14
11203
1
原创 面向对象设计原则(四):接口隔离原则(ISP)
接口隔离原则(Interface Segregation Principle,ISP)是面向对象设计(OOD)中比较重要、常见的一种,总结知识点包括:1、什么是接口隔离原则?2、为什么需要接口隔离原则?3、怎么实现接口隔离原则?4、接口隔离原则的应用案例;5、怎么确定客户程序所需的接口?以及说明与DIP、RSP的区别与联系。
2017-08-07 23:17:34
3392
原创 设计模式(一):单例模式(Singleton Pattern)
单例模式(Singleton Pattern)是设计模式中常用的一种,知识点包括:1、理解什么是单例模式、单例模式有什么优点/缺点、单例模式的应用场景;2、再来看看Java单例模式的6种代码实现方式、每种实现方式有什么需要注意的;3、后面再来了解Java单例模式其他值得关注的地方,如比较静态方法、以及Java反射、反序列化、垃圾回收的影响等。
2017-08-02 11:52:58
12612
原创 面向对象设计原则(三):里氏替换原则(LSP)
里氏替换原则(Liskov Substitution Principle,LSP),知识点包括:1、什么是里氏替换原则?2、为什么需要遵守里氏替换原则? 3、怎么实现里氏替换原则,保证子类能透明的替换父类?3、里氏替换原则(LSP)与开闭原则(OCP)的区别与联系;5、里氏替换原则冲突时如何重构,以及违反里氏替换原则的一些情况。
2017-08-01 19:48:35
6104
原创 面向对象设计原则(二):开放-封闭原则(OCP)
开放-封闭原则(Open-closed principle,OCP)也称开闭原则,是面向对象设计(OOD)中比较重要的一种,下面来总结开放-封闭原则的知识点,包括:1、什么是开放-封闭原则?2、为什么需要遵守开放-封闭原则?3、怎么做到开放-封闭原则?4、开放-封闭原则需要注意什么?
2017-02-25 14:44:04
4568
原创 面向对象设计原则(一):单一职责原则(SRP)
单一职责原则(Single responsibility principle,SRP)是面向对象设计(OOD)中比较重要的一种,下面来总结单一职责原则的知识点,包括:1、什么是单一职责原则、什么是职责?2、为什么需要遵守单一职责原则,违反单一职责有什么坏处?3、单一职责原则需要注意什么?4、单一职责原则的应用案例。
2017-02-25 13:58:22
3497
原创 Tomcat(三) Tomcat安装配置:Tomcat+Nginx+keepalived 实现动静分离、Session会话保持的高可用集群
在前文了解到了Tomcat的配置及技术实现,而在Nginx系列文章中了解到了Nginx的配置,下面将在这些的基础上,先安装Tomcat,再进行配置Tomcat+Nginx+keepalived 的动静分离的高可用集群,最后再配置Tomcat集群,实现Session会话保持。
2017-01-20 22:09:43
4348
1
原创 Tomcat(二) Tomcat实现:Servlet与web.xml介绍 以及 源码分析Tomcat实现细节
下面将深入了解Tomcat技术的实现:先来了解JavaEE Servlet技术的一些对象组件;再来了Web应用程序部署文件web.xml中对Servlet组件的定义;最后再从Tomcat源码分析实现细节,重点关注:Tomcat的启动/初始化、并发线程模式、接收请求与处理、以及Servlet容器的实现。
2017-01-20 21:56:51
11513
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
86169
8
原创 Java虚拟机垃圾回收(四) 总结:内存分配与回收策略 方法区垃圾回收 以及 JVM垃圾回收的调优方法
Java虚拟机垃圾回收(四) 总结:内存分配与回收策略 方法区垃圾回收 以及 JVM垃圾回收的调优方法 在《Java对象在Java虚拟机中的创建过程》了解到对象创建的内存分配,在《Java内存区域 JVM运行时数据区》中了解到各数据区有些什么特点、以及相关参数的调整,在《Java虚拟机垃圾回收(一) 基础》中了解到如何判断对象是存活还是已经死亡?在《Java虚拟机垃圾回收(二) 垃圾回
2017-01-17 23:16:27
7467
1
原创 Java虚拟机垃圾回收(三) 7种垃圾收集器:主要特点 应用场景 设置参数 基本运行原理
Java虚拟机垃圾回收(三) 7种垃圾收集器主要特点 应用场景 设置参数 基本运行原理 在《Java虚拟机垃圾回收(一) 基础》中了解到如何判断对象是存活还是已经死亡?在《Java虚拟机垃圾回收(二) 垃圾回收算法》了解到Java虚拟机垃圾回收的几种常见算法。 下面先来了解HotSpot虚拟机中的7种垃圾收集器:Serial、ParNew、Parall...
2017-01-02 23:41:24
30899
9
原创 Java虚拟机垃圾回收(二) 垃圾回收算法:标记-清除算法 复制算法 标记-整理算法 分代收集算法 火车算法
在前文了解到如何判断Java对象已经死亡,下面来了解Java虚拟机垃圾回收的几种常见算法:标记-清除算法、复制算法、标记-整理算法、分代收集算法、火车算法,介绍它们的算法思路,有什么优点和缺点,以及主要应用场景。
2017-01-02 22:43:50
10667
1
原创 Java虚拟机垃圾回收(一) 基础:回收哪些内存/对象 引用计数算法 可达性分析算法 finalize()方法 HotSpot实现分析
下面先来了解Java虚拟机垃圾回收的基础内容:如何判断对象是存活还是已经死亡? 介绍相关的垃圾回收基础算法:引用计数算法、可达性分析算法,以及说明finalize()方法作用,最后再来说说HotSpot虚拟机中实现对象可达性分析的一些问题。
2017-01-02 22:13:45
13247
2
原创 Java编译(三) Java即时编译(JIT编译):运行时把Class文件字节码编译成本地机器码
下面详细了解JIT编译;从官方JDK中的HotSpot虚拟机的JIT编译器入手,先介绍解释器与JIT编译器是如何配合工作的,认识JIT编译器C1/C2;再看看JIT编译的是什么,以及触发条件是什么;而后再简单介绍JIT编译过程,认识几种编译技术;最后对比Java与C/C++的编译器。
2016-12-31 01:18:19
14815
3
原创 Java对象与JVM(三) Java对象在Java虚拟机中的引用访问方式
在前面两篇文章中了解到Java对象实例是如何在HotSpot虚拟机的Java堆中创建的,以及创建后的内存布局是怎样的。下面详细了解在Java堆中的Java对象是如何访问定位的:先来了解reference类型数据是什么,再来了解两种访问方式:使用句柄或者使用直接指针(HotSpot虚拟机使用直接指针)。
2016-12-29 21:14:55
5208
原创 Java对象与JVM(二) Java对象在Java虚拟机中的内存布局
在前面文章了解到Java对象实例是如何在Java堆中创建的,下面我们详细了解Java普通对象创建后,在HotSpot虚拟机Java堆中的内存布局是怎样的,可以分为3个区域:对象头(Header)、实例数据(Instance)和对齐填充(Padding)。
2016-12-29 21:03:04
3509
原创 Java对象与JVM(一) Java对象在Java虚拟机中的创建过程
下面我们详细了解Java程序中new一个普通对象时,HotSpot虚拟机是怎么样创建这个对象的,包括5个步骤:相应类加载检查过程、在Java堆中为对象分配内存、分配后内存初始化为零、对对象进行必要的设置、以及执行对象实例方法,最后我们再从JVM指令角度来解释下Java对象创建。
2016-12-29 07:47:14
12979
2
原创 Java内存管理:Java内存区域 JVM运行时数据区
Java内存管理:在前面的一些文章了解到javac编译的大体过程、Class文件结构、以及JVM字节码指令,下面我们详细了解Java内存区域:先说明JVM规范定义的JVM运行时分配的数据区有哪些,然后分别介绍它们的特点,并指出给出一些HotSpot虚拟机实现的不同点和调整参数。
2016-12-29 00:36:20
9429
3
原创 Java语言层面和JVM层面方法特征签名的区别 及 实例分析
在前面文章中多次提到Java语言层面方法特征签名和JVM层面方法特征签名的区别,下面我们先来回顾一下Java语言层面方法特征签名和JVM层面方法特征签名的区别的是什么,再用测试程序实例来分析验证:Class文件中有两个同名同参数(类型、顺序都相同),但返回值类型不一样的方法也是允许的,可以正常运行。
2016-12-27 01:13:30
6355
1
原创 JVM字节码指令 及 反编译分析
通过前文知道Class文件中的各方法表的"code"属性存储了对应的JVM字节码指令,下面详细了解JVM字节码指令:先对字节码指令组成结构有个大体了解,并通过前面的"getMap"方法的字节码数据来分析JVM指令及操作码助记符,而后了解字节码指令与数据类型的关系,最后分类说明JVM指令的功能及注意事项。
2016-12-26 22:46:51
6980
原创 Java Class文件结构解析 及 实例分析验证
Class文件是JVM执行引擎的数据入口,也是Java技术体系的基础构成之一;下面我们详细了解Class文件:先对Class文件结构有个大体了解,并了解Class文件结构里的一些名称定义;而后再详细说明结构中每一项数据的含义,并用测试程序编译Class文件来分析验证Class文件结构。
2016-12-25 18:57:21
10963
原创 Java编译(二) Java前端编译:Java源代码编译成Class文件的过程
在上篇文章中了解到了Java前端编译 JIT编译 AOT编译各有什么优点和缺点,下面详细了解Java前端编译:Java源代码编译成Class文件的过程;我们从官方JDK提供的前端编译器javac入手,用javac编译一些测试程序,调试跟踪javac源码,看看javac整个编译过程是如何实现的。
2016-12-21 21:38:40
26620
1
原创 Java编译(一) Java三种编译方式:前端编译 JIT编译 AOT编译
Java编译涉及到非常多的知识层面:编译原理、语言规范、虚拟机规范、本地机器码优化等;下面我们先来看下Java体系中的三种编译方式:前端编译、即时编译(JIT编译)、静态提前编译(AOT编译)解它们各有什么优点和缺点,再来看看主流的前端编译+JIT编译方式的运作过程。
2016-12-19 21:24:00
14605
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
11634
5
原创 各种容器与服务器的区别与联系: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
18167
原创 Java发展:各版本JDK新特性 JVM发展 Java技术应用发展
上篇我们对Java平台体系有了一个全面的了解,下面先简单介绍Java发展历史,然后在整个的发展史的基础上,抽取几个关注点的时间线,分别介绍各JDK版本的新特性、JVM发展、以及Java技术的应用发展
2016-11-13 09:33:40
3357
原创 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
7362
1
原创 nginx(四) nginx+keepalived 实现主备+双主热备模型的高可用负载均衡代理服务
nginx+keepalived 实现主备+双主热备模型的高可用负载均衡代理服务:下面将在前文的一些基础上,用keepalived分别实现主备模型和双主模型的nginx反向代理服务器的高可用。
2016-11-05 22:17:11
5769
2
原创 nginx(二) nginx编译安装 及 配置WEB服务
下面先进行nginx编译安装,再进行nginx的WEB服务相关的应用配置:包括设置配置文件vim下语法高亮显示、配置虚拟主机、基于IP的访问控制、基于用户认证的访问控制、建立下载站点列表、URL地址重写、防盗链、Nginx状态页面、配置gzip压缩、日志、基于SSL提供https服务等。
2016-11-03 23:21:50
4154
1
原创 nginx(一) nginx详解
nginx(一) nginx详解 nginx是一个被广泛使用的集群架构组件,我们有必要对它有足够的了解。下面将先认识nginx:包括应用场景、nginx基本架构、功能特性、并发模型以及配置说明,最后我们再总结下,为什么选择nginx的原因。1、nginx应用 nginx (engine x)是一个可以作为HTTP WEB服务器、反向代理服务器、邮件代理服务器和一个通用的TC...
2016-11-03 23:03:04
43405
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
34624
15
原创 keepalived详解 及 keepalived配置LVS高可用集群
keepalived详解及配置LVS高可用负载均衡集群:keepalived设计组成、VRRP工作机制、VRRP与keepalived关系、脑裂问题、双主模型、keepalived配置文件说明;配置LVS ipvs + keepalived高可用负载均衡:配置ipvs、配置后端realserver健康状态检查、在director提供维护页面、实现模拟主备切换、主备切换及故障状态处理和邮件通知
2016-10-22 13:36:20
12592
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人