原创 MySQL窗口函數的妙用

問題引入 有一張成績表,裏面有若干個學生,他們來自三個班級,每個學生學習了兩門課程,現在要求查詢出各個班級每門課程的前兩名學生id。 分析 要各個班級每門課程的前兩名,第一反應肯定要根據班級和課程去分組,但實際上你要是用gr

原创 緩存一致性問題 一、什麼是一致性問題 二、使用緩存存在的問題 三、緩存一致性問題的解決方案

一、什麼是一致性問題 爲了提升服務的性能,我們一般會把熱點放進緩存,那麼這些熱點數據就同時存在於數據庫和緩存中,緩存中的數據和數據庫中的數據要保持一致,這便是緩存一致性問題。 二、使用緩存存在的問題 加了緩存之後,讀寫流程大概如下: 1.

原创 手把手教你搭建ELK

一、分佈式系統查詢日誌存在的問題 假如我訂單服務總共部署在20臺服務器上,如果我們直接登錄服務器查詢日誌的話,那得先看一號機器,沒有再看二號機器……並且日誌量較多的話,可能一個時間段內日誌就被切分成好幾個文件,這樣查詢實在是太麻煩了,ELK

原创 java面試題 --- MySQL②

1. 說說你對索引的認識? 索引是幫助 SQL 高效獲取數據的一種數據結構。 2. 既然你說索引是一種數據結構,那它底層到底是什麼呢? 索引底層數據結構主要有兩種,B+ 樹和 Hash 表,InnoDB 用的就是 B+ 樹。

原创 java面試題 --- Spring③

1. 什麼是 SpringCloud Alibaba? 阿里巴巴推出的一套微服務解決方案,主要提供了 nacos,sentinel 和 seata。 2. nacos 有什麼作用? nacos 可以用來做註冊中心和配置中心。它

原创 java面試題 --- MySQL③

1. 生產環境中一條 SQL 執行特別慢,你要如何排查問題? 可以查看 SQL 的執行計劃。 2. 執行計劃怎麼用? explain 後面加上要執行的 SQL。 3. 執行計劃包含了哪些信息? id:執行計劃的 id

原创 java面試題 --- Spring②

1. SpringBoot 有哪些優點? 簡單輕量,遠離繁瑣配置,開箱即用; 提供了大量的 starter,不用導入大量的 maven 依賴,不用擔心版本問題。 2. SpringBoot 的核心註解是什麼? @SpringB

原创 java面試題 --- Spring①

1. Spring 有哪些特點? 輕量級:不管是 spring 的代碼量還是運行所需要的開銷,都算是輕量級的; 控制反轉:控制反轉就是創建對象的權利轉交給 spring,程序要用的時候注入就行,降低了耦合度; 面向切面:將與業務無關卻影

原创 java面試題 --- MQ

1. 什麼是 MQ,有什麼作用? MQ 就是消息中間件,它的作用有異步,解耦,削峯。 2. 市場上有很多 MQ 產品,我們要如何選擇? 常見的 MQ 有 ActiveMQ,它是老牌的 MQ,性能不算太好;還有 RocketMQ

原创 java面試題 --- MySQL④

1. 一張表的數據量是百萬級的,要做分頁查詢你怎麼優化? 查詢字段少的話可以考慮查詢的字段都加索引,使用索引覆蓋來提升性能; 子查詢優化,比如 select * from students where id in ( select id

原创 業務處理成功,發送MQ失敗?

記得上次面試官問了我一個問題: 面試官:你說你們項目用到了MQ,那麼你往MQ發消息是在你業務事務提交之前還是之後呢? 我:…… 那接下來分析一下這個問題。 場景復現 比如有個搶購,用戶服務點擊搶購,訂單服務先返回排隊中,訂單服務處理完

原创 java面試題 --- 分佈式

1. 什麼是分佈式? 將服務部署在多臺機器上,就叫分佈式。分佈式有兩種形式,一種是水平擴展,即將同樣的系統部署在多臺機器上,讓流量分發到這多臺機器上;另一種是垂直拆分,就是把一個系統拆分成若干個子系統,不同的子系統負責不同的服務。

原创 java面試題 --- JVM之體系結構

1. JVM 由哪些區域構成? 由類加載器和運行時數據區構成;運行時數據區又分爲線程私有和線程共享兩大區域,線程私有的包括程序計數器、虛擬機棧和本地方法棧,線程共享的包括堆和方法區。 2. 類加載器的作用是什麼? 加載 cla

原创 java面試題 --- IO

1. IO流的分類有哪些? 按照流向分爲輸入流和輸出流; 按照實現功能分爲節點流和處理流。節點就是從一個特定的地方讀寫數據,包括數組操作,管道操作和文件操作;處理流對已存在的流進行封裝和處理,包括緩衝操作,打印操作和轉化操作等; 按照處

原创 java面試題 --- 集合

1. java 集合你瞭解嗎? java 集合最頂層接口是 Collection 和 Map; Collection 有三個核心接口,分別是 List,Set,Queue; List 是有序可重複的,它的主要實現類有 ArrayList