原创 完美的實現可重入分佈式鎖

本篇文章將會涉及以下內容: 可重入 基於 ThreadLocal 實現方案 基於 Redis Hash 實現方案 可重入 說到可重入鎖,首先我們來看看一段來自 wiki 上可重入的解釋: “ 若一個程序或子程序可以“在任意時刻

原创 看完這篇,數據同步還不會,能怪誰

應用開發中,爲了提升查詢性能或者做服務降級方案時,我們會使用緩存作爲解決方案,像分佈式緩存方案,比如 Redis、Memcache等;本地緩存方案,比如 Guava、Caffeine等。如果僅僅對當前服務的執行結果的緩存,用於下次相同查詢

原创 在處理億級數據的“定時任務”的時候,該如何縮短執行時間?

問題抽象: (1)用戶會員系統; (2)用戶會有分數流水,每個月要做一次分數統計,對不同分數等級的會員做不同業務處理;   數據假設: (1)假設用戶在100w級別; (2)假設用戶日均1條流水,也就是說日增流水數據量在100W級別,月

原创 面試官:爲什麼選擇B+樹作爲數據庫索引結構?談談你的理解

背景 首先,來談談B樹。爲什麼要使用B樹?我們需要明白以下兩個事實: 【事實1】 不同容量的存儲器,訪問速度差異懸殊。以磁盤和內存爲例,訪問磁盤的時間大概是ms級的,訪問內存的時間大概是ns級的。有個形象的比喻,若一次內存訪問需要1秒,則

原创 面試又掛了,只因被問:TCP三次握手和四次揮手

推薦閱讀: TCP/IP協議族終於更新(第4版)了,世界著名計算機精選PDF美滋滋   面試官:跟我講講TCP的三次握手和四次揮手流程,爲什麼是三次握手或四次揮手? 面試者:額......不太記得了.....gg.. 那麼接下來就是T

原创 一文詳解SpringBoot構建Docker鏡像的 3 種方式

本文將介紹3種技術,通過 Maven 把 SpringBoot 應用構建成 Docker 鏡像。 (1)使用 spring-boot-maven-plugin 內置的 build-image. (2)使用 Google 的 jib-mav

原创 萬字長文只爲說明白:一個HTTP請求的曲折經歷

從一個經典的面試題說起,輸入URL到頁面展現的過程: 輸入URL後,會先進行域名解析。優先查找本地host文件有無對應的IP地址,沒有的話去本地DNS服務器查找,還不行的話,本地DNS服務器會去找根DNS服務器要一個域服務器的地址進行查

原创 左手MongoDB,右手Redis!阿里架構師帶你從入門到實戰

本書針對MongoDB和Redis這兩個,採用“理論+實踐”的形式編寫,共計45個實例。 全書分爲4篇: 第1篇,介紹了什麼是NoSQL、MongoDB和Redis相對於傳統關係型數據庫的優勢; 第1章:進入MongoDB與Redis的世

原创 TCP/IP協議族終於更新(第4版)了,世界著名計算機精選PDF美滋滋

《世界著名計算機教材精選·TCP/IP協議族(第4版)》最新版進行了擴充,以體現計算機網絡技術的最新發展,全書含有七大部分共30章和7個附錄: 第一部分介紹一些基本概念和基礎底層技術; 第二部分介紹網絡層協議; 第三部分介紹運輸層協議;

原创 溫故而知新,最全面的Redis面試總結

1、什麼是Redis? Redis 是一個基於內存的高性能key-value數據庫。 (有空再補充,有理解錯誤或不足歡迎指正) 2、Reids有哪些特點? Redis本質上是一個Key-Value類型的內存數據庫,很像memcached,

原创 都2020了,還沒有入門 Spring Boot?

00、Spring Boot 簡介 我猜,大家一定編寫過基於 Spring 的應用程序,你就知道一個“Hello World”就需要大量的配置。想一想,我自己都有點懷疑,還能不能創建的出來,尤其是那些 XML 文件,完全敲不出來。 Sp

原创 萬字長文,帶你深入淺出五種負載均衡策略。

Dubbo的五種負載均衡策略 2020 年 5 月 15 日,Dubbo 發佈 2.7.7 release 版本。其中有這麼一個 Features   新增一個負載均衡策略。   熟悉我的老讀者肯定是知道的,Dubbo 的負載均衡我都寫

原创 昨天我去面試,問他SynchronousQueue沒答上來

SynchronousQueue容量爲0,就是這個東西它不是用來裝內容的,SynchronousQueue是專門用來兩個線程之間傳內容的,給線程下達任務的,老師講過一個容器叫Exchanger還有印象嗎,本質上這個容器的概念是一樣的。看下

原创 七八種變量,哪個纔是Java親生的

網上羅列了很多關於變量的理解,良莠不齊,不知道哪些是對的,哪些是錯的。所以筆者索性就這些博客和自己的理解寫出這篇文章,如果有不對的地方,希望讀者能夠指正,感謝。 變量是我們經常用到的一種,我在剛學 Java 的時候,也經常被各種變量的概

原创 萬字乾貨!一文詳解所有線上故障排查方法

線上故障主要會包括 CPU、磁盤、內存以及網絡問題,而大多數故障可能會包含不止一個層面的問題,所以進行排查時候儘量四個方面依次排查一遍。同時例如 jstack、jmap 等工具也是不囿於一個方面的問題的,基本上出問題就是 df、free、