原创 Maven: pom.xml文件中dependency標籤的scope屬性的幾種取值及對應的項目階段

簡述 pom.xml文件中,dependency標籤的scope屬性定義了依賴包在項目的使用階段。 項目階段包括: 編譯compile、測試test、運行run和發佈deploy。 本文對幾種scope進行簡單的對比總結。 總結

原创 一句話描述volatile關鍵字如何保證可見性

被volatile關鍵字修飾的變量,在每個寫操作之後,都會加入一條store內存屏障命令,此命令強制工作內存將此變量的最新值保存至主內存;在每個讀操作之前,都會加入一條load內存屏障命令,此命令強制工作內存從主內存中加載此變量的

原创 隨筆-在linux通過top命令查找問題線程的nid

最近比較忙,就簡單寫個隨筆吧。 簡述 對於cpu爆滿問題,常常會分析是否存在問題線程,本文記錄一種通過top快速找到問題線程nid的方式。 找到問題進程PID 通過top找到問題進程,例如下面有個進程CPU佔用率高達99%,他的P

原创 四張圖理解一致性哈希算法(Consistent Hashing)

1.簡述 1.1.哈希算法 哈希算法:將任意長度的輸入通過散列算法轉換成固定長度的輸出。 哈希算法是一種映射算法,將任意個數的輸入映射爲固定個數的哈希值。 1.2.應用場景舉例 分佈式緩存 現有用戶數據3000萬,爲提高訪問速度,

原创 dependencies與dependencyManagement的區別

原文鏈接:https://blog.csdn.net/liutengteng130/article/details/46991829 dependencies 即使在子項目中不寫該依賴

原创 負載均衡、DNS、F5、反向代理、LVS、四層與七層、CDN

1.負載均衡 負載均衡:將負載(大量請求)均勻的、平衡的分攤到多個服務節點上進行處理。 實現負載均衡有很多種手段,例如:DNS、硬件負載均衡設備、Nginx反向代理、LVS。 1.1.DNS DNS:Domain Name Sys

原创 記一次Mysql連接未滿但程序卻報錯連接已滿獲取連接超時GetConnectionTimeoutException的問題

1.問題描述 今天同事找到我,讓我幫忙查一個問題,據說已經持續一個月: 之前服務正常,問題在上個月開始出現。 服務運行大概1天左右,後臺開始報錯:獲取數據庫連接失敗GetConnectionTimeoutException。 服

原创 ElasticSearch: 數據刷新相關的刷新間隔refresh_interval、刷新接口_refresh和刷新策略RefreshPolicy

1.簡述 默認情況下ElasticSearch索引的refresh_interval爲1秒,這意味着數據寫1秒才就可以被搜索到。 因爲上述表現,所以稱ElasticSearch是近實時搜索引擎。 如果需要調整數據刷新方案,則有三種

原创 MQ: kafka的Java接入與入門示例(topic增刪改查,Producer多參發送,Consumer多分區接受)

本文主要通過實際編碼來對《MQ: 一張圖讀懂kafka工作原理》提到的部分原理進行驗證與實現。 相關文章參考: MQ: 消息隊列常見應用場景及主流消息隊列ActiveMQ、RabbitMQ、RocketMQ和Kafka的簡單對比

原创 分佈式概念簡單瞭解:數據一致性、CAP、BASE、分佈式事務、分佈式鎖

今天對分佈式相關的一些概念與理論進行學習。 1.集羣與分佈式 集羣:相同的應用部署在多臺服務器。 分佈式:不同的應用部署在多臺服務器。 1.數據一致性 在分佈式環境中,爲了提高系統整體性能,數據以多副本冗餘機制存儲,副本之間通過數

原创 MQ: 一張圖讀懂kafka工作原理

1.關於kafka Kafka是由Apache軟件基金會開發的一個開源消息隊列,由Scala和Java編寫。 相關文章參考: MQ: 消息隊列常見應用場景及主流消息隊列ActiveMQ、RabbitMQ、RocketMQ和Kaf

原创 Redis: 緩存過期、緩存雪崩、緩存穿透、緩存擊穿(熱點)、緩存併發(熱點)、多級緩存、布隆過濾器

1.緩存過期 緩存過期:在使用緩存時,可以通過TTL(Time To Live)設置失效時間,當TTL爲0時,緩存失效。 爲什麼要設置緩存的過期時間呢? 一、爲了節省內存 例如,在緩存中存放了近3年的10億條博文數據,但是經常被訪

原创 MQ: 消息隊列常見應用場景及主流消息隊列ActiveMQ、RabbitMQ、RocketMQ和Kafka的簡單對比

相關文章參考: MQ: 一張圖讀懂kafka工作原理 MQ: kafka的Java接入與入門示例(topic增刪改查,Producer多參發送,Consumer多分區接受) 1.關於消息隊列 消息隊列,外文名Message Q

原创 Redis: lua腳本支持以及搶紅包案例的簡單實現

1.關於lua Lua腳本可以調用大部分的Redis命令,Redis運行開發者通過編寫腳本傳入Redis,一次性執行多條命令。 使用Lua腳本的好處可以參考pipeline:Redis: pipeline基本原理以及Jedis和R

原创 Redis: 分佈式鎖的官方算法RedLock以及Java版本實現庫Redisson

1.簡介 在單機應用中,當多個線程訪問共享資源時,我們通常通過synchronized關鍵字、Lock鎖、線程安全對象等措施保證資源的安全使用。 在分佈式環境下,上述措施不再能滿足需求,這事,我們需要一種應用於分佈式換件的加鎖機制