事务隔离级别

1. 介绍

事务具备ACID的特性,本次主要回顾下事务隔离性的理解。 这个概念网上讨论的也很多,甚至自己之前也写过一篇文章总结,但是以前的理解还是不够到位,这次再重新回顾下。

2. 定义多种隔离性的原因

事务隔离的不同程度,实际上是通过不同的上锁要求来控制事务并发的能力。所以谈论事务隔离的时候,我们首先要想到“锁”和“并发”。上锁最严格,则意味着事务之间隔离性性越好,效率最低,但是自然也是最安全的。 上锁要求宽松,不仅减少了锁的开销,也提升了事务并发的能力,但是也增大了死锁的概率,以及并发带来的不可重复度、脏读和幻读等问题。

3. 基于锁的事务隔离级别

一般我们说的事务......

使用MAT分析堆栈

1. 介绍

Eclipse MAT是eclipse提供的插件用于分析JAVA heap。试过很多分析heap的,但是没有比这个更好用的了。

PS:在mac high sierra上直接下载独立运行的MAT貌似会出问题卡死,我是本地直接下载了个。

请先阅读下MAT官方的DOC:MAT官方DOC

2. 基本概念

2.1 堆中包含的内容

All Objects:Class, fields, primitive values and references

All Classes:Classloader, name, super class, static fields......

jstack分析线程的技巧

1. 关于jstack的说明

jstack prints Java stack traces of Java threads for a given Java process or core file or a remote debug server.

jstack用于打印一个JAVA进程里面的线程堆栈,是我们排查性能瓶颈时常用的工具。

2. 准备知识

2.1 Java Thread的状态

一般操作系统中线程的生命周期是这样的:

使用tshark在命令行进行网络抓包

使用wireshark的客户端进行抓包,或者tcpdump抓包再用wireshark分析,网上已经有很多资料了,这里就不再赘述了。不熟悉的可以看看网上的资料:http://www.jianshu.com/p/a62ed1bb5b20 或者官方文档user guide:https://www.wireshark.org/docs/wsug_html_chunked/

线上问题排查,有时候时间争分夺秒,或者一些私有云环境完全隔离,根本没法让你导出抓包的文件,这时候需要直接使用命令行进行抓包分析。今天我们就来学习下tshark的使用。PS: tshark基本上可以替代tcpdump,抓包的文......

jenv来管理多个版本的java

1. 安装

我们这里以mac系统为例说明安装和使用。如果Linux安装可以参考jenv官网

brew install jenv

# for bash

echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile

echo 'eval "$(jenv init -)"' >> ~/.bash_profile

# for zsh

echo 'export PATH="$HOME/.jenv/bin:$PATH&quo......