原创 【clickhouse專欄】單機版的安裝與驗證

《clickhouse專欄》第三節內容,先安裝一個單機版的clickhouse,是後續學習多副本或者分佈式集羣安裝的基礎內容。但基本的clickhouse是不依賴於zookeeper的,只有涉及到集羣部署的clickhouse纔會使用到zo

原创 【clickhouse專欄】clickhouse性能爲何如此卓越

在《clickhouse專欄》上一篇文章中《數據庫、數據倉庫之間的區別與聯繫》,我們介紹了什麼是數據庫,什麼是數據倉庫,二者的區別聯繫。clickhouse的定位是“數據倉庫”,所以理解了上一篇的內容,其實就能夠知道clickhouse適用

原创 【clickhouse專欄】數據庫、數據倉庫之間的區別與聯繫

從本篇文章開始,筆者打算寫一個系列的《clickhouse專欄》,其全稱是Click Stream,Data WareHouse,簡稱ClickHouse。從其全稱中的“Data WareHouse”,我們可以看出clickhouse的定位

原创 linux-ext4格式文件誤刪除,該如何恢復?

在開始進行實驗之前,我已經新建了一個空目錄/data,並將該目錄掛載了一塊新硬盤,將硬盤分區格式化爲ext4的格式,所以當我操作/data目錄下的文件及文件夾的時候,實際上就是針對新掛載的硬盤進行數據讀寫操作。首先通過下面的命令準備一下實驗

原创 linux掛載新硬盤並進行分區格式化

最近要給小夥伴們寫幾篇文章,關於《linux下誤刪除文件之後該如何恢復》。對於沒有進程佔用的文件想要進行數據恢復,不同的文件系統格式需要使用不同的工具,比如:ext4、xfs等。我找遍了我所有的虛擬機服務器,都沒找到ext4文件格式的。因爲

原创 linux系統下文件誤刪除該如何恢復?

一、linux誤刪除數據的場景 在實際的工作中,朋友們可能會將linux服務器上的文件不小心誤刪除掉了。而且越是資歷老的工程師越容易犯這樣的錯誤,敲代碼的速度也是夠快,啪啪rm -rf一個回車,然後就是打臉時刻 。新人操作文件時往往戰戰兢

原创 [java併發編程]基於信號量semaphore實現限流器

目錄一、什麼是信號量二、信號量類Semaphore三、實現限流器歡迎關注我的博客,更多精品知識合集 一、什麼是信號量 “信號量”在編程術語中使用單詞semaphore,那什麼是“信號量”?信號量就好比你家廚房入口架子上擺了三把鍋。 如

原创 java併發編程-StampedLock高性能讀寫鎖

目錄一、讀寫鎖二、悲觀讀鎖三、樂觀讀歡迎關注我的博客,更多精品知識合集 一、讀寫鎖 在我的《java併發編程》上一篇文章中爲大家介紹了《ReentrantLock讀寫鎖》,ReentrantReadWriteLock可以保證最多同時有一個

原创 【java併發編程】ReentrantLock 可重入讀寫鎖

目錄一、ReentrantLock可重入鎖二、ReentrantReadWriteLock讀寫鎖三、讀鎖之間不互斥歡迎關注我的博客,更多精品知識合集 一、ReentrantLock可重入鎖 可重入鎖ReentrantLock 是一個互斥鎖

原创 【java併發編程】Lock & Condition 協調同步生產消費

一、協調生產/消費的需求 本文內容主要想向大家介紹一下Lock結合Condition的使用方法,爲了更好的理解Lock鎖與Condition鎖信號,我們來手寫一個ArrayBlockingQueue。 JDK實際上已經有這個類,基於Loc

原创 併發編程系列之Lock鎖可重入性與公平性

一、相似之處:Lock鎖 vs Synchronized 代碼塊 Lock鎖是一種類似於synchronized 同步代碼塊的線程同步機制。從Java 5開始java.util.concurrent.locks引入了若干個Lock鎖的實現類

原创 併發編程之volatile與JMM多線程內存模型

一、通過程序看現象 在開始爲大家講解Java 多線程緩存模型之前,我們先看下面的這一段代碼。這段代碼的邏輯很簡單:主線程啓動了兩個子線程,一個線程1、一個線程2。線程1先執行,sleep睡眠2秒鐘之後線程2執行。兩個線程使用到了一個共享變量

原创 併發編程之臨界區\阻塞\非阻塞\死鎖\飢餓\活鎖

本文介紹併發編程中的若干概念,實際上在筆者之前的文章中,已經介紹過很多概念。比如:併發與並行、同步與異步、鎖與信號量等等。參考《併發編程專欄》,本文計息介紹一些相對深入一些的概念 一、臨界區 爲了方便大家理解,我們先看下面的這樣一張圖,我們

原创 鏡像分層原理及容器層寫時複製

一、鏡像分層與容器層 在進行docker pull 下載鏡像的時候,通過下圖可以看到鏡像是分層下載並解壓的。如nginx:1.20.2的鏡像,其鏡像是分爲6層。 當我們運行一個新的容器的時候,實際上是在鏡像分層的基礎上新添加了一層:con

原创 消息隊列與快遞櫃之間的奇妙關係

提到消息隊列可能一些朋友經常聽別人說起一些名詞,比如:服務程序解耦,處理流量削峯,通過異步處理提升用戶體驗,緩衝批處理提高處理性能。筆者擅於白話解說,所以我就不用專業的術語去解釋專業的問題了。我一直覺得消息隊列的功能和快遞櫃的功能非常相似,