原创 JVM相關概念總結
目錄 1.jvm內存結構 2.對象分配規則 3、解釋內存中的棧(stack)、堆(heap)和靜態區(static area)的用法 4、Perm Space中保存什麼數據?會引起OutOfMemory嗎? 5、什麼是類的加載 6、如
原创 Spring 事務的坑
前言 Spring事務管理我相信大家都用得很多,但可能僅僅侷限於一個@Transactional註解或者在XML中配置事務相關的東西。不管怎麼說,日常可能足夠我們去用了。但作爲程序員,無論是爲了面試還是說更好把控自己寫的代碼,還是應該得多
原创 OOM分析與常見OOM 類型
1)什麼是OOM? OOM,全稱“Out Of Memory”,翻譯成中文就是“內存用完了”,來源於java.lang.OutOfMemoryError。看下關於的官方說明: Thrown when the Java Virtual Ma
原创 Hashmap的結構
https://blog.csdn.net/lovezhaohaimig/article/details/86595113
原创 分佈式ID 生成方案
ID是數據的唯一標識,傳統的做法是利用UUID和數據庫的自增ID,在互聯網企業中,大部分公司使用的都是Mysql,並且因爲需要事務支持,所以通常會使用Innodb存儲引擎,UUID太長以及無序,所以並不適合在Innodb中來作爲主鍵,自增
原创 LSM樹 Log-Structured Merge Tree
代表數據庫:nessDB、leveldb、hbase、InfluxDB等 核心思想的核心就是放棄部分讀能力,換取寫入的最大化能力。LSM Tree ,這個概念就是結構化合並樹的意思,它的核心思路其實非常簡單,就是假定內存足夠大,因此不需要
原创 分佈式鎖-超賣問題案例分析
我們先來看一個業務場景: 系統A是一個電商系統,目前是一臺機器部署,系統中有一個用戶下訂單的接口,但是用戶下訂單之前一定要去檢查一下庫存,確保庫存足夠了纔會給用戶下單。 由於系統有一定的併發,所以會預先將商品的庫存保存在redis中,
原创 併發中的三大特性詳解
前言:Java併發編程的三大特性:原子性、可見性、有序性。要保證併發代碼的安全性則必須滿足這三大特性 原子性:一個或者多個操作,要麼全部執行(執行的過程是不會被打斷的)、要麼全部不執行。 案例分析:http://www.51testing
原创 常見OutOfMemoryError 分析與解決
java.lang.OutOfMemoryError:Javaheap space 當堆內存(Heap Space)沒有足夠空間存放新創建的對象時,就會拋出 java.lang.OutOfMemoryError:Javaheap spa
原创 GC 時間過長的優化一般思路
JVM 的調優首要任務就是縮短GC 時stop working 的時間。下面是GC分析、調優的一般思路。 發現分析的過程: 用戶、運維反映、XX頁面卡頓->前端人員分析頁面代碼沒問題。->繼續分析XX數據接口相應的時間太長 ->反映給後臺
原创 Springboot 自動裝配源碼分析
點擊去之後可以看到 核心註解springbootApplication 包含了三個註解 @SpringBootConfiguration :實現配置功能 @EnableAutoConfiguration :實現自動配置功能 @Compo
原创 Redis 常見的錯誤(坑)
從redis 的設計規範、命令的使用、分佈式場景的使用、集羣 等角度來說說常見的坑。 目錄 Bigkey問題: bigkey是指某個key所對應的值過大,如string 應該控制在10kb,hash、list、set、zset元素不要超過
原创 分佈式會話(session)
基概:Session 即服務器與客戶端保持整個通訊的會話基本信息 客戶端在第一次訪問服務端的時候,服務端會響應一個sessionId並且將它存入到本地cookie中,在之後的訪問會將cookie中的sessionId放入到請求頭中去訪問服
原创 基於ZK的分佈式集羣管理
分佈式集羣管理常見的需求 主動查看線上服務節點 查看服務節點資源使用情況 服務離線通知 服務資源(CPU、內存、硬盤)超出閥值通知 架構設計 節點結構 root-manger // 根節點 server00001 :<json> //