原创 乾貨滿滿,從一個案例學習k8s基本架構 前言 一、基礎組件 二、從案例學習k8s整個框架 1)編寫namespce.yaml 三、分析流程

前言 Kubernetes(簡稱K8S,K和S之間有8個字母)是用於自動部署,擴展和管理容器化應用程序的開源系統。它將組成應用程序的容器組合成邏輯單元,以便於管理和服務發現。Kubernetes 源自Google15年的生產環境的運維經驗,

原创 絕對乾貨,超全的MyBatis動態代理詳解 前言 動態代理實戰 動態代理原理分析 Mybatis 源碼實現 無實現類完成動態代理 抽象類能否 JDK 動態代理 結言

前言 假如有人問你這麼幾個問題,看能不能答上來 Mybatis Mapper 接口沒有實現類,怎麼實現的 SQL 查詢 JDK 動態代理爲什麼不能對類進行代理(充話費送的問題) 抽象類可不可以進行 JDK 動態代理(附加問題) 答不上

原创 完全搞定,Java中反射的應用(取得類的結構) 一、基本概念 二、取得所實現的全部接口 三、取得父類 四、取得全部構造方法 五、取得全部方法 六、取得全部屬性

框架:半成品軟件,可以在框架的基礎上進行軟件開發,簡化編碼 反射:將類的各個組成部分封裝爲其他對象,這就是反射機制 好處: * 可以在程序運行過程中,操作這些對象。 * 可以解耦,提高程序的可擴展性。 一、基本概念 在反射

原创 可以了,基於Redis和Lua實現分佈式令牌桶限流 讀前提問 限流是什麼 限流的簡單瞭解 開始實踐 最後結尾

限流是一個很大的話題,準備把其中的所有限流器都實現一遍,以此也算全都寫過了,到時候再用也不至於會心虛,畢竟真實寫完成過。本文主要講述瞭如何基於 Redis 與 Lua實現分佈式令牌桶的限流方案。 讀前提問 我覺得學習任何東西前都應該有自己的

原创 哦喲!才知道,原來大廠的Redis分佈式鎖都這麼設計 本地鎖 2 分佈式鎖

本地鎖 常用的即 synchronize 或 Lock 等 JDK 自帶的鎖,只能鎖住當前進程,僅適用於單體架構服務。 而在分佈式多服務實例場景下必須使用分佈式鎖 2 分佈式鎖 2.1 分佈式鎖的原理 廁所佔坑理論 可同時去一個地方“佔坑

原创 太強了,5幅圖就拿下了ARP協議 前言 ARP 概要 ARP 的工作原理

前言 在上一篇文章 別再恐懼 IP 協議 中, 我們瞭解到,網絡層實現主機之間的通信,而鏈路層實現具體每段鏈路之間的通信。也就是說:只要在網絡層確定了 IP 地址,就可以向這個目標地址發送 IP 數據報。然而,在底層數據鏈路層,進行實際通信

原创 廢話不多少,終於弄懂了mybatis plugin

一、前言 1月份已經過了一半多,天氣回暖了許多,今天就來學習一下mybatis插件相關內容,可能mybatis插件使用得很少,但是對於某一些業務場景,plugin可以幫助解決一些問題,就比如脫敏問題,我們在實際中,我們需要導出Excel,但

原创 你不得不知道的,詳細完整的對象實例化過程 1、整體流程 2、類初始化檢查 3、類加載過程 4、分配內存 5、初始化零值 6、設置對象頭 7、實例對象初始化 8、創建引用,入棧

對象的實例化過程需要做哪些工作呢?首先Java是一門面向對象的語言,類是對所屬於一類的所有對象的抽象,對象的所有結構化信息都定義在了類中,因此對象的創建需要根據類中定義的類型信息,也就是類所對應的class二進制字節流,所以這就涉及到了類的

原创 注意,不能錯過的CAS+volatile實現同步代碼塊 前言: CAS操作和volatile簡述: CAS + volatile = 同步代碼塊

前言: 最近看到有人說可以使用 CAS + volatile 實現同步代碼塊。 心想,確實是可以實現的呀!因爲 AbstractQueuedSynchronizer(簡稱 AQS)內部就是通過 CAS + volatile(修飾同步標誌

原创 不是吧?爲了加快速度,Redis竟做了這麼“瘋狂”的設計 前言 列表對象 總結

前言 列表對象是 Redis 中 5 種基礎數據類型之一,在 Redis 3.2 版本之前,列表對象底層存儲結構有兩種:linkedlist(雙端列表)和 ziplist(壓縮列表),而在 Redis 3.2 版本之後,列表對象底層存儲結構

原创 數據庫遷移搞炸了!竟然沒用這款開源神器的鍋? 摘要 Flyway簡介 相關概念 命令行工具 Maven插件 結合SpringBoot使用 總結 參考資料

摘要 當我們的應用升級時往往會伴隨着數據庫表結構的升級,此時就需要遷移數據庫的表結構。一般我們會使用工具或者腳本來實現,手動操作畢竟有一定風險,要是能在應用啓動時自動升級數據庫表結構就好了!Flyway正是這麼一款工具,通過Flyway和S

原创 我今天才知道,原來TCP爲了保證可靠傳輸做了這麼多 前言 1.TCP 可靠傳輸概覽 2. 校驗和 3. 序列號和確認應答機制 4. 重傳機制 4. 滑動窗口協議 5. 流量控制 6. 擁塞控制

前言 本節內容有點多,不過關於 TCP 的話,除了三四次握手就是可靠傳輸了,高頻重點知識點,大家還是搞清楚比較好。 1.TCP 可靠傳輸概覽 首先解釋一下,什麼是可靠傳輸:可靠傳輸就是保證接收方收到的字節流和發送方發出的字節流是完全一樣的。

原创 哈?Redis百萬數據爲何上生產後憑空消失?恍然大悟了 爲何不見了? 正確的處理方式

爲何不見了? 先來說說場景: 項目在上生產之前,我們已經把所需要的數據提前加入到redis當中,因爲在生產環境中,rbd和aof持久化是需要兩個同時打開的,而redis默認只打開了rbd。 爲啥要兩個都打開呀? rdb 丟失數據較多,但是在

原创 避坑指南,Java中定時器Timer致命缺點,我差點就踩到了 簡介 案例1:定時器打印Hello World! 線程不死問題? 案例2:單線程問題 定時器實際應用場景 學習方法心得 總結

簡介 這篇文章我一直在糾結到底要不要寫,不想寫一來因爲定時器用法比較簡單,二來是面試中也不常問。後來還是決定寫了主要是想把自己分析問題思路分享給大家,讓大家在學習過程中能夠參考,學習態度我相信大部分人沒有問題,特別是正在看我博文的小夥伴那更

原创 面試被問公平鎖和非公平鎖,我竟用“排隊打飯”解釋得清清楚楚 簡介 公平鎖、非公平鎖概念 總結

簡介 有個小夥伴最近諮詢我,前段時間他被面試官問了synchronized是公平鎖還是非公平鎖?當時就蒙圈了,最後面試結果可想而知,今天我們就用一個通俗的案例加上代碼來說明公平鎖和非公平鎖。其實公平鎖這個概念是JUC工具包纔有的,比如Ree