ThreadLocal 导致Full GC 分析

难得出现了一次Full GC,抓住机会分析了一次。

事件回顾

之前服务线上总共有6台机器,其中2台机器为4核CPU+4G内存,另外4台机器为4核CPU+8G内存。

2017-08-01 早上11:00 开始FullGC报警,同时有两台,均为4G内存机器,其他8G内存机器未发现报警。监控无业务报警及Exception。

接到报警之后,马上摘除了一台机器留作jvm分析,另外一台重启。

dump 机器的堆栈信息

观察重启之后的机器情况,以及其他机器的运行情况,均未发现异常迹象。

事件背景

这个服务已经有超过一周的时间未发布也未重启过,之前一直没有出现过问题。

......

服务流量控制及限流

工作上在开发类似淘宝开放平台的点评到综的开放平台,需要针对不同的API做流量控制,后期还需要针对不同属性的服务商(上线状态,部分api的购买状态)做不同的流量控制策略,如 淘宝开放平台应用API流量规则。流量控制的维度主要有QPS流量控制以及一定时间区间(如/天、/小时)的调用次数。

网络流量控制(Network traffic control)是一种利用软件或硬件方式来实现对电脑网络流量的控制。它的最主要方法,是引入QoS的概念,从通过为不同类型的网络数据包标记,从而决定数据包通行的优先次序(from wiki)。

一般开发高并发系统常见的限流有:限制总并发数(比如数据库......

JVM结构

运行时数据区中的程序计数器、虚拟机栈和本地方法栈是线程私有的,堆和方法区是线程共享的。

1 运行时数据区

1.1 程序计数器(Program Counter Register)

程序计数器(Program Counter (PC))是在电脑处理器中的一个寄存器,用来指示电脑下一步要运行的指令序列。依照特定机器的细节而不同,他可能是保存着正在......

JVM 垃圾回收算法及垃圾回收器

JVM垃圾回收几乎成了Java程序员面试标配了,我自己在被面和面试别人的过程中都曾反复面试这些内容。今天就把之前了解到的垃圾回收知识整理一下。

前几天被面试的时候,就问到JVM垃圾回收,一般面试这个知识的基本就是P6,P7级别了(对标阿里),虽然在实际工作中用到的时候极少,但能当作过滤候选人的初步门槛。

0. 基础概念

对象头(Header)

对象头主要包含两部分信息:

对象的大小

对象的种类。

在Hotspot中对象头也分为两部分内容:

第一部分是存储对象自身的运行时数据

如哈希码(HashCode)、GC分代年龄、锁状态标志、......

美团点评KTV在线预订的架构演进

这是我在部门分享ppt的再整理。

0. 业务介绍

目前KTV主要包含了KTV在线预订和KTV酒水点单两个业务。

KTV在线预订

KTV在线预订是用户在线浏览商家的包房信息,并选择相关包房的套餐,支付预订;订单支付成功之后,系统将通过多种渠道撮合用户与商户,使其达成预订;预订成功之后,用户到店消费之后,系统将费用结算给商家,同时系统也提供了退款的逆向流程。