原创 寫了個追蹤業務異常的工具,歡迎體驗!

基於java的註解處理器寫了個自動植入業務追蹤日誌的工具,目前snapshot版本已上線,歡迎體驗和提出意見,感謝!  原文檔(建議直接閱讀這個):LogTrace使用指南 建議的版本號: jdk:8、9、10、11 gradle:7+

原创 編譯時註解處理器的一次使用經歷

編譯時註解處理器在《深入理解Java虛擬機》一書中有一些介紹(前端編譯篇有提到),但一直沒有機會使用,直到碰到這個需求,覺得再合適不過了,就簡單用了一下,這裏做個記錄。------原文寫於2021年2月8日。 一、需求 我們爲公司提供了一

原创 JAVA有關位運算的全套梳理

一、在計算機中數據是如何進行計算的? 1.1:java中的byte型數據取值範圍 我們最開始學習java的時候知道,byte類型的數據佔了8個bit位,每個位上或0或1,左邊第一位表示符號位,符號位如果爲1表示負數,爲0則表示正數,因此要推

原创 Resilience4j熔斷器-使用與源碼解析

🌏 環境: 🌳 JDK11 🌱 IDEA 2019.03 🌾 Resilience4j    0.13.2 🍃 知識依賴:juc,位圖 一、什麼是熔斷 在分佈式系統中,各服務間的相互調用更加頻繁,上下游調用中充滿了可能性,一個服務可能會

原创 InfluxDB(一)初探時序數據庫

初探時序數據庫-InfluxDB 最近公司有個需求需要藉助InfluxDB實現(或者更準確的說,使用該數據庫可以更容易的實現),因此稍微看了下這個數據庫,把比較重要的一些東西先簡單記錄一下,日後如果踩坑,也會繼續在下面補充。 零、下載&安

原创 【初探】java性能火焰圖的生成

前言 開始之前,你需要準備的環境: Linux系統機器或者虛擬機一臺,裏面需要安裝的軟件:git、jdk、perl。   簡單介紹: java性能分析火焰圖的所做的事情就是能夠分析出java程序運行期間存在的性能問題,因爲某段代碼拖慢整個

原创 Java NIO學習與記錄(四): SocketChannel與BIO服務器

 SocketChannel與BIO服務器 SocketChannel可以創建連接TCP服務的客戶端,用於爲服務發送數據,SocketChannel的寫操作和連接操作在非阻塞模式下不會發生阻塞,這篇文章裏的客戶端採用SocketChan

原创 Java NIO學習與記錄(二):FileChannel與Buffer用法與說明

上一篇簡單介紹了NIO,這一篇將介紹FileChannel結合Buffer的用法,主要介紹Buffer FileChannel的簡單使用&Buffer的介紹 1.FileChannel例子 上一篇說到,這個Channel屬於文件通道,專

原创 Java NIO學習與記錄(六): NIO線程模型

NIO線程模型  上一篇說的是基於操作系統的IO處理模型,那麼這一篇來介紹下服務器端基於IO模型和自身線程的處理方式。 一、傳統阻塞IO模型下的線程處理模式 這種處理模型是基於阻塞IO進行的,上一篇講過,阻塞IO會阻塞每一個IO操作,直到

原创 Java NIO學習與記錄(七): Reactor單線程模型的實現

 一、Selector&Channel 寫這個模型需要提前瞭解Selector以及Channel,之前記錄過FileChannel,除此之外還有以下幾種Channel: ServerSocketChannel:用於監聽新的TCP連接的通道,

原创 鏈路追蹤(一)-分佈式鏈路追蹤系統的介紹

分佈式鏈路追蹤系統的介紹 一、分佈式鏈路追蹤可以做什麼? 1.1簡單集羣架構&微服務架構  先來看下最簡單的網站集羣架構圖: 圖1 在這個圖裏,存在從1~n個服務器,通過負載均衡器SLB進行請求分發,在每個服務器裏,都做同一件事情。 現

原创 池化技術(二)HikariCP是如何管理數據庫連接的?

基於依賴程序的版本信息:HikariCP:3.3.1               驅動程序mysql-connector-java:8.0.17 上一篇:Druid是如何管理數據庫連接的 零、類圖和流程圖 開始前先來了解下HikariC

原创 JVM基礎回顧記錄(二):垃圾收集

垃圾收集流程&HotSpot對該流程的實現方式 上一篇介紹了jvm的內存模型,本篇將介紹虛擬機中最爲複雜的一部分:垃圾收集,本篇會從垃圾回收前的準備工作到後面的收集階段的方式以及HotSpot虛擬機對這些工作的實現做個較爲系統的記錄,方便

原创 [溫故]圖解java多線程設計模式(二)

join & interrupt 這倆方法屬於線程對象裏的方法,屬於線程本身的操作。 join方法 用於等待一個線程的終止,等待期間將會阻塞,直到被等待的線程終止結束。 所以join可以用來做多任務異步處理,比如還是拿利用Completab

原创 Java NIO學習與記錄(五): 操作系統的I/O模型

操作系統的I/O模型 在開始介紹NIO Reactor模式之前,先來介紹下操作系統的五種I/O模型,瞭解了這些模型,對理解java nio會有不小的幫助。 先來看下一個服務端處理一次網絡請求的流程圖: 圖1  一、圖1解析 1.內核空間