原创 CyclicBarrier的使用實例

CyclicBarrier允許給定數量的線程全部到達關卡點時,關卡就被成功突破,關卡被重置以備下一次使用。跟CountDownlatch特別類似,但是CountDownLatch不同的是不能被重新重置再使用。   前面的blog說到用co

原创 一些常用的軟件設計原則

在架構設計過程中,瞭解一些先輩們總結出來的常用的設計原則非常有用,在實踐過程中,結合這些理論,相信架構水平會有質的提升,就像是一本武功祕籍,在學的過程中遵循它的rule,你的武功自然就上去了。我真的感覺這些原則非常有用: 1.Don'

原创 LVS三種負載均衡模式之-網絡地址轉換

LVS全稱是Linux Virtual Service   1.通過NAT實現虛擬服務器(VS/NAT)   由於IPv4中IP地址空間的日益緊張和安全方面的原因,很多網絡使用保留IP地址(10.0.0.0/255.0.0.0、172.1

原创 設計模式-Facade模式

Facade模式   當軟件系統需要跟子系統進行復雜的交互時,爲了減少系統的交互從而簡化系統之間交互的目地,可以用外觀模式。   外觀模式用到了一個常用的規則:最小知識原則也叫迪米特原則,如果你的應用有很多類,並且他們有複雜的依賴關係,那

原创 數據庫事務隔離級別

數據在操作過程中,可能出現3個不確定的情況: 1.Dirty Reads(髒讀) 一個事務讀取了另外一個事務未提交的數據   2.Non-repeatable Reads(不可重複讀) 一個事務再次讀取之前曾經讀取過的數據時,發現改數據已

原创 使用LinkedHashMap構建LRU的Cache

這段時間好好整理了一下基礎,發現很多對我來說新的東西,裏面博大精深的東西真的很多,經常使用HashMap,對HashMap的結構和原理非常瞭解,但是忽略了還有LinkedHashMap這個好東西。   先轉一篇blog:   Linked

原创 IBatisVSHibernate

下面是IBatis和Hibernate的比較,多年前做了個presentation,現在拿出來看一下:<!-- [if gte mso 9]><xml>   License – Hibernate: LGPL – Ibatis:

原创 Garbage First - Card Table

之前一直以爲只是在Garbage First垃圾回收器中,有Card Table,終於在這篇文章中有些提示,讓我對Card Table的作用有了清晰的認識,對Garbage First基本上有所瞭解了,應該可以進行總結了。。。。。。  

原创 設計模式-組合模式

組合模式的定義: 將對象組合成樹的形式來表示整體和局部之間的關係,使得客戶端對單個對象和組合對象的使用有了一致性。   適用場合: 1.需要表示一個對象整體或者局部的關係,在具有整體和部分的層次結構中,希望通過一種方式忽略整體和部分的

原创 設計模式-策略模式

定義一組算法,對每一種進行封裝,讓它們之間可以相互替換,可以獨立於客戶端程序而變化。

原创 Spring的七種事務傳播途徑和隔離級別

PROPAGATION_REQUIRED--支持當前事務,如果當前沒有事務,就新建一個事務。這是最常見的選擇。 PROPAGATION_SUPPORTS--支持當前事務,如果當前沒有事務,就以非事務方式執行。 PROPAGATION_

原创 設計模式-適配器模式

適配器模式: 系統之間集成,常由於接口之間不兼容,很多能滿足功能的軟件模塊,由於接口不同,而導致無法使用。在這種情況下可以使用適配器模式。   使用場合:當原來的類已經存在,但是不能一起工作,這個時候,適配器模式是個好的解決方案。 1.適

原创 CompleteService介紹和使用實例

當向Executor提交批處理任務時,並且希望在它們完成後獲得結果,如果用FutureTask,你可以循環獲取task,並用future.get()去獲取結果,但是如果這個task沒有完成,你就得阻塞在這裏,這個實效性不高,其實在很多場合

原创 LVS負載均衡(調度)算法-內核中的連接調度算法

  此次主題主要講述LVS 負載均衡策略和算法,這裏面完全是羅列了章博士裏面的blog,屬於總結和轉發性質。   如何將請求流調度到各臺服務器,使得各臺服務器儘可能地保持負載均衡。文章主要由兩個部分組成。第一 部分描述IP 負載均衡軟件I

原创 sudo: /etc/sudoers.d/README is mode 0777, should be 0440

問題原因: 修改了sudo文件, 導致sudo權限在0640,或者sudo的配置格式錯誤。因此,要把sudo權限更改回0440。   所以呢,修改sudo,請用命令visudo。   http://blog.csdn.net/chz870