列苗

越学习,越发现自己的无知

[OOM] hbase堆外内存溢出底层定位

单台服务器刚发布时 java 进程占用3g,以一天5%左右的速度增长,一定时间过后进程占用接近90%,触发服务器报警,而此时 old 区占用在 50%,未触发 CMS GC,而导致堆外内存溢出。本文记录了完整的排查过程,涉及 JVM、hbase 读写源码、JDK 原理、MAT 等排查工具使用。

2019-02-17 16:00:46

阅读数 403

评论数 0

[SpringMVC] HTTP 请求与响应过程底层源码解析

本文从使用 SpringMVC 出现的两种常见的错误场景展开,深入 SpringMVC 处理 HTTP 请求与响应的底层源码,从中分析错误的原因,并提供相应的解决方案。

2017-12-21 01:29:50

阅读数 1225

评论数 0

[Spring] 自定义标签解析

Spring 除了实现了默认的标签解析,如 bean, beans, import, alias,还提供了自定义的标签解析机制,由用户实现解析自定义标签的逻辑,如: aop, tx, context 等。

2019-05-21 23:57:45

阅读数 19

评论数 0

[Dubbo] connections 参数

为某个接口创建独立的连接通道,若未配置该参数,则共享一个连接通道。

2019-03-15 15:12:04

阅读数 235

评论数 0

[MySQL] 在线 DDL 工具 gh-ost 原理简介

github 提供的针对 MySQL 无触发器式在线架构迁移解决方案。

2019-03-13 15:17:02

阅读数 174

评论数 0

[MySQL] 主从延迟现象及原理分析

凌晨对线上一张表添加索引,表数据量太大(1亿+数据,数据量50G以上),造成主从延迟几个小时,各个依赖从库的系统无法查询数据,最终影响业务。 现在就梳理下主从延迟的原理。

2019-01-28 15:42:26

阅读数 63

评论数 0

[Java] 线程的状态及转换

主要介绍: 1.JDK 的线程状态枚举类 java.lang.Thread.State,及如何相互转换;2. Java 对象的 monitor 和 wait set 。

2019-01-21 18:01:27

阅读数 94

评论数 0

[Java] 序列化之基本认识

Java 序列化即将 Java 对象转换为二进制序列的过程,主要用于网络通信、持久化存储。

2018-10-15 15:47:01

阅读数 52

评论数 0

[Java] 查看占用 CPU 最高的线程

先用 top 命令找出进程中占用 CPU 最高的线程pid,再用 jstack 找出具体的线程堆栈。

2018-10-06 14:53:44

阅读数 251

评论数 0

记一次堆外内存溢出排查过程

服务器发布/重启后,进程占用内存 21%(3g),观察进程占用内存,以一天4%左右的速度增长,一定时间过后,java 进程内存增长到接近 90%,服务器报警。此时 old 区占用 50%,未达到 CMS GC 阈值,因此不会触发 CMS GC,而导致服务器崩溃。本文记录排查过程,以及最后的解决方案。

2018-09-30 12:58:14

阅读数 2130

评论数 0

内存溢出分析之垃圾回收知识

主要介绍Java 垃圾收集算法、垃圾收集器、JDK 命令行工具 jstat, jmap, jstack 等的使用。

2018-09-30 12:55:58

阅读数 215

评论数 0

内存溢出分析之工具篇

主要介绍 性能压测工具 jmeter;JDK 自带工具JConsole、JVisualVM;google 推出的 malloc 分析工具 gperftools;eclipse 的 dump 文件分析工具 MAT;sun 推出的 Java 动态追踪工具 btrace;linux 查看进程内存软件 g...

2018-09-28 16:26:57

阅读数 1202

评论数 0

[maven] maven-assembly-plugin 打包插件简介

主要介绍 maven 打包插件 maven-assembly-plugin 的使用。

2018-05-10 15:23:53

阅读数 1060

评论数 0

[Redis] 数据类型

主要介绍 Redis 基本数据类型,以及常用的命令。

2018-02-27 14:05:28

阅读数 93

评论数 0

[SpringMVC 源码] 415 (Unsupported Media Type) 原因及解决方案

一、现象描述前端 ajax 方式调用 springmvc 接口时,返回 415 (Unsupported Media Type) 错误:前端代码:function fSave(url) { var obj = {}; obj['cateId'] = $("input[nam...

2017-12-19 22:31:01

阅读数 1635

评论数 0

[Java] socket 简介

Socket 是网络上两个程序间双向交流连接的一个端点(类似于打电话时的两台手机),基于TCP/IP协议,稳定有序。

2017-12-14 14:15:13

阅读数 217

评论数 0

[Java] 浅拷贝与深拷贝

Java 中的拷贝分为浅拷贝和深拷贝两种,其中浅拷贝指只拷贝按值传递的数据类型,如基本数据类型、String 类型;而深拷贝除了拷贝浅拷贝的内容外,还负责拷贝引用类型的数据。

2017-12-10 17:43:27

阅读数 154

评论数 0

[设计模式] 原型模式

主要内容来自《研磨设计模式》 一、模式定义用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。原型的本质:克隆生成对象。创建型模式。二、模式结构三、代码示例功能描述:当订单数量大于1000时,拆分订单,直至订单数量小于1000。对外统一的订单接口: package com.kascend...

2017-12-10 15:48:59

阅读数 71

评论数 0

[Java] 抽象类与接口

抽象类和接口的关系: 接口是一种特殊的抽象类,所有接口中的属性自动是 public final static 类型,而接口中的方法必须是抽象的 抽象类是 abstract 修饰的类。抽象类和抽象方法的关系:抽象类中不一定包含抽象方法,而有抽象方法的类一定是抽象类 抽象类与接口比较最大的特点是,抽象...

2017-12-10 00:36:48

阅读数 99

评论数 0

[设计模式] 模板方法模式

一、模式定义定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。二、模式结构三、代码示例场景:有普通登录、管理员登录两种登录方式,其中登录判断的逻辑一致,根据用户名获取登录密码不同。根据模板方法模式设计如下: 登录模板类:...

2017-12-01 17:40:41

阅读数 131

评论数 0

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