原创 hessian序列化原理分析

文章目錄1. hessian序列化舉例1.1 hessian協議簡介1.1.1 特點1.1.2 hessian語法簡介1.2 hessian序列化與反序列化舉例1.3 hessian協議與jdk區別2. hessian序列化分析2

原创 JDK序列化分析

文章目錄1. Jdk序列化舉例1.1 JDK序列化簡介1.2 JDK序列化示例1.3 JDK序列化注意點2. JDK序列化分析2.1 JDK序列化爲什麼需要 serialVersionUID ?2.2 JDK序列化與反序列化源碼分

原创 營銷投票活動技術難點分析

文章目錄1. 投票活動簡介與場景描述2. 技術難點分析2.1 系統分析2.2 難點分析2.2.1 top20排行榜怎麼做到實時,怎麼查詢當前用戶的排名?2.2.2 投票怎麼解決併發場景,如多個用戶對同一個參賽用戶進行投票又互不影響

原创 記一次機器內存過高引起的線上故障

文章目錄1.案發經過2. 故障分析2.1 爲什麼cShareAct接口一直超時?2.2 爲什麼cShare接口調用量突增?2.3 cpu升高的原因分析2.4 機器負載高的原因2.5 Java進程爲什麼會死掉?2.6 測試環境內存文

原创 git revert詳情使用

文章目錄1. 背景2. 解決思路2.1 從簡單場景說起2.2 回到上面複雜的場景 1. 背景 描述一個git revert使用場景,加深一下對git revert的使用,場景如下: Step 1:小輝在分支dev1上開發,提交了

原创 disruptor異常分析

文章目錄1. 背景2. Disruptor生產者異常3. 消費者異常 1. 背景 最近做領域驅動設計使用到disruptor組件,爲了以後不會踩坑,閱讀了disruptor部分源碼,下面對disruptor生產者和消費者異常處理進

原创 RocketMQ生成消息ID邏輯

文章目錄1. 背景2. 客戶端生成消息ID時機與機制2.1 生成消息ID時機2.2 生成消息ID機制3. Broker生成消息ID時機與機制3.1 生成消息ID時機3.2 生成消息ID機制4. 生產者端發送消息產生的ID與Brok

原创 利用GeoHash優化查詢附近門店功能

文章目錄1.背景2. 方案2.1 思路2.2 GeoHash實踐2.2.1 活動綁定門店表增加geohash字段2.2.2 構造查詢SQL2.3 代碼 1.背景 有一個營銷砍價活動,當用戶報名完成後,需要選擇去領取活動商品的門店,

原创 dubbo源碼:HashedWheelTimer解析

文章目錄1.概要2源碼分析 1.概要 舊的dubbo使用了Executors.newScheduledThreadPool來進行定時重試,新的提交在2018-12-11號使用了HashedWheelTimer,其原理不再解釋,直接

原创 dubbo源碼:Google protocol buffer 序列化協議使用及接入

文章目錄1. Google protocol buffer 使用1.1 安裝過程1.2 使用過程1.2.1 本地 protoc 命令使用1.2.2 idea中使用2. Google protocol buffer 接入dubbo

原创 性能分析利器JFR和JMC的使用

文章目錄1 mac啓動jmc無法啓動修復流程2 開啓並使用JFR 1 mac啓動jmc無法啓動修復流程 Step 1:下載jar包 https://search.maven.org/search?q=g:org.eclipse

原创 架構分層個人理解

在剛工作不久時就對代碼的分層結構感到疑問,我對分層的理解主要分爲三個階段: 階段一:比如就MVC三層結構各層之間對象的對應關係及轉換哪些是有必要的,哪些是沒有必要的,代碼結構爲什麼要三層?如果三層不滿足怎麼辦,此時要不要類似像阿里規範中加

原创 零拷貝技術原理