原创 Rocket Mq 設計(design)

設計(design)   1 消息存儲   消息存儲是RocketMQ中最爲複雜和最爲重要的一部分,本節將分別從RocketMQ的消息存儲整體架構、PageCache與Mmap內存映射以及RocketMQ中兩種不同的刷盤方式三方面來分別

原创 JAVA 瑣碎知識

基礎 Java編譯後翻譯成字節碼,因此java程序與平臺無關。 常量,在Java 中利用關鍵字final聲明常量,習慣上常量全部用大寫。 在Java 中,若期望某個常量在類中的多個方法中使用,通常將這些常量稱爲類常量。 使用關鍵字: st

原创 Spring工程中 mysql 數據庫的使用

一、引言 數據庫相關的組件封裝和屏蔽了業務代碼對mysql數據庫訪問的諸多細節,有必要對這些細節進行深入的瞭解,構建完整的數據庫訪問的知識鏈路。 二、知識點 2.1 JDBC 參考:https://blog.csdn.net/luanlo

原创 Spring Boot Tomcat

一、引言 Spring boot默認集成了Tomcat,瞭解Tomcat對了解Web服務器的運轉過程和性能限制是極其重要的。 二、知識點 2.1 BIO、NIO、AIO 2.2 Tomcat 2.3 Spring boot內置Tomcat

原创 RocketMq 最佳實踐

最佳實踐   1 生產者   1.1 發送消息注意事項   1 Tags的使用 一個應用盡可能用一個Topic,而消息子類型則可以用tags來標識。tags可以由應用自由設置,只有生產者在發送消息設置了tags,消費方在訂閱消息時纔可以利

原创 GC 相關問題

1、美團經典文章:https://tech.meituan.com/2017/12/29/jvm-optimize.html 2、參考文章:https://www.cnblogs.com/Leo_wl/p/5393300.html 3、G

原创 RocketMq 專題

1、https://www.jianshu.com/p/453c6e7ff81c 2、https://github.com/a2888409/RocketMQ-Learning/blob/master/book/ch2/2-remotin

原创 Redis 專題

  1、幾種基礎數據類型 String 計數器,用戶信息(id)映射,唯一性(例如用戶資格判斷),bitmap Hash 常見場景:存儲對象的屬性信息(用戶資料) List 常見場景:評論存儲,消息隊列 Set 常見場景:資格判斷(例如用

原创 線程的深入理解

 wait和notify :https://blog.csdn.net/hemeinvyiqiluoben/article/details/82990817 線程狀態:https://blog.csdn.net/qq_22771739/a

原创 volitale 關鍵字

一、前言 volitale 知識點主要涉及JAVA內存模型的知識點,volitale提供了內存可見性和禁止指令重排的功能。 參考文章:https://blog.csdn.net/eff666/article/details/6764064

原创 應用日誌配置

一、引言 帶有trackId的日誌,對系統問題的定位很有幫助。 二、知識點 2.1 logback 日誌的主要元素 主要有3個元素: 1、pattern 控制單條日誌輸出的格式。 2、appender 是一個日誌打印的組件,這裏組件裏面定

原创 創建基於Spring boot項目的最小項目

一、引言 一般的開發都是在原有的項目基礎上進行,而且打包發佈都是基於公司內部系統。因此,如何從無到有創建一個項目,並打包部署到指定機器上,是一項必須補充和掌握的知識。 下面講解的是基於mvn構建的Spring boot項目。 二、知識點

原创 JAVA基礎-hashCode和equals

一、引言 hashCode和equals是object的公共方法,默認的hashCode和equals,均是基於內存地址的。String的equals是值比較,因爲String的equals被重寫過了。 二、知識點 自定義對象的equal

原创 JAVA基礎-String StringBuffer和StringBuilder的區別

一、前言 其實之前也大概知道這個知識點,只是沒有從源碼的角度去驗證過。通過idea發現JAVA所有的類,對於開發者而言都是可見的,這是學習的很好的途徑。 二、知識點 1、可變性 簡單的來說:String 類中使用 final 關鍵字修飾字

原创 JAVA基礎-引子

一、前言 工作近一年,雖然已經可以勝任當前的工作,但是卻也時常深感自己基礎不紮實,知識薄弱。因此本系列主要鞏固基礎知識,以GitHub上的一個項目作爲基本大綱,進行JAVA知識的學習。 附上GitHub地址:https://github.