原创 Spring事務回滾配置

1、Spring的默認事務機制,當出現unchecked異常時候回滾,checked異常的時候不會回滾; unchecked異常包括error和runtime異常;checked異常包括IOException異常,需要try ca

原创 Lock接口,和Synchronized區別,分佈式鎖

什麼是鎖:同步的本質是通過鎖來實現的。爲了實現多個線程在一個時刻同一個代碼塊只能有一個線程可執行,那麼需要在某個地方做個標記,這個標記必須每個線程都能看到,當標記不存在時可以設置該標記,其餘後續線程發現已經有標記了則等待擁有標記的

原创 併發容器1 vs 同步容器

同步容器vs併發容器 同步容器:Vetor HashTable 特點: (1)不保證線程安全,需要額外加鎖訪問,訪問方式使用Iterator迭代器或for-each遍歷,加鎖訪問時間長,若不想加鎖,使用克隆的方式,但創建副本的時候

原创 logback實踐總結

logback的日誌滾動策略實踐總結: 1、如果日誌打印的多的話,很容易佔滿磁盤,引起宕機。所以要配置日誌滾動策略rollingPolicy,設置最大文件容量,超過最大值,再下一次產生新文件的時候,自動清空最早的文件。 2、假設某

原创 一文弄懂Nginx最核心的配置

背景 在日常的工作中,跟Nginx打交道的時候挺多的。之前對location的匹配規則是一知半解的,爲了搞明白location是如何匹配的,查了些資料總結此文。希望能給大家帶來幫助。 語法規則 location [ = | ~ |

原创 DATETIME與TIMESTAMP的區別,該不該使用自動更新

今天遇到一個問題,明明數據有更新,update_time字段卻還停留在創建數據的時候。 按常理來說這個字段應該是自動更新的纔對。 查了一下表結構,update_time datetime NOT NULL DEFAULT CURR

原创 Nginx配置upstream實現負載均衡

1、在http節點下,加入upstream節點。 upstream linuxidc { server 10.0.6.108:7080; server 10.0.0.85:8980; } 2、將se

原创 動態改變日誌級別

動態的修改線上環境的日誌級別,在分佈式環境,一次修改一臺,改變的途徑有: (1)通過http訪問,處理請求,改變日誌級別。可以使用輕量級的httpServer(推薦 NanoHTTPD)監聽指定端口,http請求ip,訪問到具體的

原创 值判斷的性能比較

經常寫業務代碼,會有對字段值的判斷,首先要校驗非空,然後做值判斷。如果值爲null,不校驗直接判斷會引起異常,如果異常處理不當會引發事故。 所以,這樣寫會很簡便: new Integer(8).equals(d) 把比對的值放在

原创 使用CloseableHttpClient 模擬發送HttpGet和HttpPost請求

項目中經常會用到模擬Http請求,而jdk 下的 rt.jar核心庫中也有 java.net提供了這方面的功能,但是總體而言,功能還是缺少靈活性和全面性,HttpClient的出現就是彌補了其缺失的功能。HttpClient不是

原创 使用maven Profile實現多環境構建

項目構建的時候,需要根據不同的場景來改變項目中的屬性資源,最爲常見的莫過於數據庫連接配置等資源配置了,試想有生產環境、預發環境、測試環境等,需要爲不同的場景下來動態的改變資源配置值。而使用maven Profile就可以幫我們解決

原创 併發中鎖的分類

1、自旋鎖 線程狀態及上下文切換消耗系統資源,當訪問共享資源的時間短,頻繁切換上下文不值得。jvm使線程在沒有獲得鎖的時候,執行空循環,循環幾次之後,如果還沒獲得鎖,再被掛起。 2、阻塞鎖 改變了線程的運行狀態,讓線程進入阻塞狀態

原创 volatile和synchronized

如何把非原子性操作變成原子性操作? 1、volatile關鍵字只能保證可見性,並不保證原子性 2、synchronized關鍵字,使操作具有原子性 區分一下synchronize內置鎖和互斥鎖 1、內置鎖,在對象頭,自動獲取釋放,

原创 ReentrantLock源碼分析

首先,想先梳理一下自己看源碼的目的,最近有篇文章特別火《程序員12小時驚魂記:凌晨遷移數據出大事故!》,裏面強調了解決問題的能力很重要,這給我一種只看源碼和設計模式關鍵時刻不給力的感覺,週末去看了魯能和恆大的比賽,那種在瞬間做出決

原创 併發容器和框架

1、HashMap和Hashtable的區別 HashMap和Hashtable都實現了Map接口,主要的區別有:線程安全性,同步(synchronization),以及速度。HashMap幾乎可以等價於Hashtable,除了H