原创 圖解常用的Map

原创 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> //