原创 JUC之重入鎖ReentrantLock

定義 重入鎖是一種遞歸無堵塞的同步機制。類似於synchronized,但是比synchronized更加的靈活,可自由選擇加鎖的位置。它有一個與鎖相關的獲取計數器,如果擁有鎖的某個線程再次得到鎖,那麼獲取計數器加1,並且鎖需要被

原创 JUC之Condition源碼解析

定義 Condition主要是用來處理線程之間的通信,當滿足某一條件時,喚醒其他的線程。 主要配合重入鎖完成等待喚醒的操作。 案例 此demo定義了一個容量爲5的數組。當數組容量達到容器最大容量時,寫線程等待,讀線程取走一個值,則

原创 JUC之同步組件核心AQS

定義 AQS是類AbstractQueuedSynchronizer的簡稱(以下均以AQS代替),提供了一種實現堵塞鎖(獨佔鎖)和一系列FIFO等待隊列(共享鎖)的同步框架。 獨佔鎖:此代碼有且只有一個線程能夠執行,如Reentr

原创 springboot+docker部署的踩坑

修改docker配置允許遠程上傳鏡像 //修改配置,見圖 vi /lib/systemd/system/docker.service //重啓docker systemctl daemon-reload sudo service

原创 SpringCloud使用Consul作爲註冊中心和配置中心

安裝consul集羣 1.這裏採用的是docker-compose的方式來部署consul集羣,代碼如下,docker的安裝以及docker-compose的安裝在此不做介紹。 創建docker-compose.yml文件並將其上傳到

原创 skywaling踩坑記錄

前言 隨着微服務概念的火熱,系統排錯的問題也越來越突出 。如何監控分佈式鏈路是每個團隊都會遇到的問題。目前市場上開源的APM有,推特的zikpin(在springcloud生態下較爲容易),美團的CAT,pinpoint以及skywa

原创 設計模式之策略模式

一:介紹 策略模式定義了算法族,繼承相同的接口,分別封裝起來,讓他們能夠相互替換。以此來達到運行時更改算法。此模式讓算法的變化獨立於使用算法的客戶。 二:設計原則 1.找出應用中可能變化之處,把他們獨立出來,不要和那些不需要變化的代碼

原创 設計模式之單例模式

此處介紹兩個線程安全的單例,分別使用餓漢式單例,懶漢式單例。 餓漢式單例代碼如下:在類加載初始就實例化對象。弊端:如果對象很大,在未使用對象的時候,就加載到內存中,是對內存的一種極大的浪費。 public class Starvati

原创 設計模式之觀察模式

一:介紹 定義:定義了對象之間一對多依賴,這樣一來,當對象改變狀態的時候,他所有依賴者都會接受到通知並自動更新。觀察者模式屬於行爲型模式。 二:設計原則 原則:爲了交互對象之間的鬆耦合設計而努力。 三:實戰 案例:天氣預報。此處就直接

原创 JVM垃圾回收器參數總結

UseSerialGC 虛擬機運行在client模式下的默認值,打開此開關後,使用Serial+SerialOld的收集器組合進行內存回收。 UserParNewGC 使用ParNew+Serial Old的收集器組合進行內存

原创 Http狀態碼記錄

類別 原因 1XX 信息性狀態碼 接收的請求正在處理 2XX 成功狀態碼 請求正常出完畢 3XX 重定向狀態碼 需要進行附加操作以完成請求 4XX 客戶端錯誤狀態碼 服務器無法處理請求 5XX 服務器錯

原创 Http首部字段記錄

通用首部字段 首部字段名 說明 Cache-Control 控制緩存的的行爲 Connection 逐跳首部,連接的管理 Date 創建報文的日期時間 Pragma 報文指令 Trailer 報文末端的首

原创 idea2018.3激活方式

步驟和上面差不多,有一點點不一樣. 下載jar包JetbrainsIdesCrack-3.4-release-enc.jar, http://idea.lanyus.com/jar/JetbrainsIdesCrack-3.4-re

原创 Grafana+Prometheus實現服務器監控----------window版

一:介紹 Prometheus官網是這麼介紹,一個最初在SoundCloud上構建的開源系統監視和警報工具包。 Prometheus是一個完整的監控和趨勢系統,包括基於時間序列數據的內置和主動抓取,存儲,查詢,繪圖和警報。 簡單來說,

原创 Springboot+elk實現分佈式日誌管理

本博文大部分內容來自http://blog.51cto.com/zero01/2079879,詳細內容可參考此博文。 一:準備工作 1.準備三臺機器: 10.2.0.151 主 10.2.0.152 數據中心 10.2.0.153