原创 java基礎之動態代理原理分析

文章目錄JDK動態代理案例源碼分析總結Cglib案例源碼分析總結 JDK動態代理 靜態代理要爲每個目標類創建一個代理類,當需要代理的對象太多,那麼代理類也變得很多。同時代理類違背了可重複代理只寫一次的原則。jdk給我們提供了

原创 Mysql之隔離級別

文章目錄RC隔離級別RR隔離級別幻讀實驗 RC隔離級別 RC 的本質就是事務中每一條 SELECT 語句均可以看到其他已提交事務對數據的修改,那麼只要該事物已經提交其結果就是可見的,與這兩個事務開始的先後順序無關,不完全適用於

原创 Mysql之MVCC

文章目錄簡介InnoDB實現插入刪除修改查詢 簡介 MVCC(Multiversion Concurrency Control),即多版本併發控制技術。它使得大部分支持行鎖的事務引擎,不再單純的使用行鎖進行數據庫的併發控制,取而

原创 序列化之ProtoBuf3

文章目錄簡介使用入門安裝準備生成並運行java代碼語法變量變量類型變量默認值Tag變量規則廢棄變量枚舉引用其他的proto文件packagesJSON映射升級proto的原則定義RPC Service命名規範遇到的問題 簡介

原创 Kafka之Consumer Rebalance

文章目錄Kafka版本rebalancerebalance策略rebalance generationrebalance協議rebalance流程rebalance監聽器 Kafka版本 kafka版本1.1.1,可能絕大

原创 序列化之Kryo

文章目錄入門讀寫方式API介紹kryo-serializers 入門 Kryo(github地址)是一個快速,高效的對象圖序列化Java框架。該項目的目標是速度,效率和易於使用的API。無論何時需要將對象持久化到文件,數據庫

原创 kafka之Producer

文章目錄Kafka版本Java API同步發送異步發送分區策略攔截器多線程多進程發送防止producer消息丟失 Kafka版本 kafka版本1.1.1,可能絕大部分也適用於kafka 0.10.x及以上版本。 Jav

原创 kafka之消息格式

文章目錄Kafka版本消息格式V0版本V1版本Message SetV0與V1的缺陷V2版本 Kafka版本 kafka版本1.1.1,可能絕大部分也適用於kafka 0.10.x及以上版本。 消息格式 目前Kafka消

原创 Mysql之count

文章目錄實現方式大表統計問題 實現方式 MyISAM引擎把一個表的總行數存在了磁盤上,因此執行count(*)的時候會直接返回這個數,效率很高。(沒有過濾條件的情況下) InnoDB執行count(*)的時候,需要把數

原创 Gradle之任務(二)

文章目錄版本GroovyDSL任務創建任務任務中調用方法添加動作默認任務任務順序任務依賴任務禁用與啓用任務斷言剔除任務跳過任務常用任務發佈私服獲取git信息 版本 gradle-4.8.1 GroovyDSL 屬性訪問器

原创 Mysql之大字段溢出問題

文章目錄Mysql版本InnoDB數據頁存儲行溢出(off-page)行格式Compact行記錄格式Barracuda總結如何優化大字段 Mysql版本 查看版本 mysql> select version(); +----

原创 Mysql之加鎖規則

文章目錄InnoDB鎖行鎖算法Next-Key Lock鎖實驗準備數據等值查詢間隙鎖非唯一索引等值鎖非唯一索引等值鎖for Update主鍵索引範圍鎖非唯一索引範圍鎖 InnoDB鎖 InnoDB實現了兩種標準的行級鎖 共

原创 Mysql之B+Tree

文章目錄B+Tree數據頁 B+Tree Mysql沒有選擇B-Tree的原因 B-Tree每個結點都保存數據,每個結點的大小有限,這樣會導致樹的深度變高,從而導致磁盤I/O操作次數增加 不能很好的利用操作系統讀取磁盤的特性

原创 RocketMQ源碼分析之消息發送

文章目錄Message啓動流程MQClientManager消息發送發送流程發送核心代碼驗證消息查找路由選擇隊列故障延遲機制總結 Message 消息結構 public class Message implements Se

原创 Mysql之Explain

文章目錄執行計劃列信息idselect_typetablepartitionstypepossible_keyskeykey_lenrefrowsfilteredExtra 執行計劃 所謂的執行計劃就是Mysql如何執行一