原创 ReentrantLock介紹及源碼解析

ReentrantLock介紹及源碼解析 一、ReentrantLock介紹 ReentrantLock是JUC包下的一個併發工具類,可以通過他顯示的加鎖(lock)和釋放鎖(unlock)來實現線程的安全訪問,ReentrantLock

原创 聊聊JUC包下的底層支撐類-AbstractQueuedSynchronizer(AQS)

聊聊JUC包下的底層支撐類-AbstractQueuedSynchronizer(AQS) juc包下的一堆併發工具類是我們日常開發特別是面試中常被拿來問的八股文之一,爲了工作也好,爲了面試也罷,今天開始想嘗試着把這些給大夥描述明白,所以開

原创 redis集羣之分片集羣的原理和常用代理環境部署

上篇文章剛剛介紹完redis的主從複製集羣,但主從複製集羣主要是爲了解決redis集羣的單點故障問題,通過整合哨兵能實現集羣的高可用;但是卻無法解決數據容量以及單節點的壓力問題,所以本文繼續介紹redis的分片集羣;分片集羣即將不同的數據分

原创 redis集羣之主從複製集羣的原理和部署

最近在覆盤redis的知識,所以本文開始希望介紹下redis的集羣架構、原理以及部署;本文主要介紹redis的主從複製集羣,包括其架構模型,原理,高可用等; 一、主從集羣的介紹   redis的主從複製集羣爲了提高效率降低客戶端等待時長,主

原创 ES系列二之常見問題解決

上篇ES系列一之java端API操作結束後本以爲就相安無事了,但生產的問題是層出不窮的;下面我就再記錄下近幾周遇到的問題以及解決方案; 一 更新ES信息報錯 報錯信息如下: Use ElasticsearchException.getFai

原创 zk系列三:zookeeper實戰之分佈式鎖實現

一、分佈式鎖的通用實現思路 分佈式鎖的概念以及常規解決方案可以參考之前的博客:聊聊分佈式鎖的解決方案;今天我們先分析下分佈式鎖的實現思路; 首先,需要保證唯一性,即某一時點只能有一個線程訪問某一資源;比方說待辦短信通知功能,每天早上九點短

原创 ES的java端API操作

首先簡單介紹下寫這篇博文的背景,最近負責的一個聚合型的新項目要大量使用ES的檢索功能,之前對es的瞭解還只是純理論最多加個基於postman的索引創建操作,所以這次我得了解在java端如何編碼實現;網上搜索是一搜一大堆,但是大部分都是些複製

原创 zk系列二:zookeeper實戰之分佈式統一配置獲取

前面介紹了zk的一些基礎知識,這篇文章主要介紹下如何在java環境下獲取zk的配置信息;主要基於zk的監聽器以及回調函數通過響應式編程的思想將核心代碼糅合成一個工具類,幾乎做到了拿來即用; 在分佈式集羣中,配置信息一般都會拎出來單獨配置,這

原创 再聊聊zookeeper

聊完kafka必不可少的需要再聊一聊zk了,下面開始 一、ZK是什麼 ZooKeeper是分佈式應用程序的高性能協調服務。它可以實現分佈式的選主、統一配置管理,命名,分佈式節點同步,分佈式鎖等分佈式常用功能;它以path節點的形式保存數據,

原创 聊聊kafka

兩個月因爲忙於工作毫無輸出了,最近想給團隊小夥伴分享下kafka的相關知識,於是就想着利用博客來做個提前的準備工作了;接下來會對kafka做一個簡單的介紹,包括利用akf原則來解析單機下kafk的各個角色介紹、集羣下kafka的架構、生產者

原创 記一次線上頻繁fullGc的排查解決過程

發生背景 最近上線的一個項目幾乎全是查詢業務,並且都是大表的慢查詢,sql優化是做了一輪又一輪,前幾天用戶反饋頁面加載過慢還時不時的會timeout,但是我們把對應的sql都優化一遍過後,前臺響應還是很慢,數據庫測試sql運行時間在3s以內

原创 淺談MYSQL的索引以及它的數據結構

什麼是索引 mysql的數據是持久化到磁盤的,寫SQL查詢數據也就是在磁盤的某個位置查找符合條件的數據,但是磁盤IO比起內存效率是極慢的,特別是數據量大的時候,這時候就需要引入索引來提高查詢效率; 在我看來索引是爲了提高查詢效率而誕生的一種

原创 redis的緩存穿透、擊穿、雪崩以及實用解決方案

今天來聊聊redis的緩存穿透、擊穿、雪崩以及解決方案,其中解決方案包括類似於布隆過濾器這種網上一搜一大片但是實際生產部署有一定複雜度的,也有基於spring註解通過一行代碼就能解決的,其中各有優劣,咱們根據實際需要選型; 接下來會從穿透、

原创 聊聊分佈式鎖的解決方案

今天來聊聊分佈式鎖的解決方案,就從什麼是分佈式鎖和分佈式鎖的解決方案以及具體實現來進行分析,內容純屬個人見解,如有紕漏及錯誤還請指正! 什麼是分佈式鎖 傳統的單機應用中,需求在一臺jvm上如果有線程併發的安全問題使用jvm自帶的鎖機制就能

原创 聊聊mysql的事務

今天來聊聊事務的四大特性以及其實現原理,需結合之前寫的mysql是如何實現mvcc的來理解,因爲大多數的實現都是基於mvcc的,理論介紹完後會通過實例來演示mvcc又是如何實現這些隔離級別的 事務的四大特性 原子性 事務的執行要麼全部成功