原创 Spring AOP(一)——基礎概念

前文的一些內容更多是針對Spring容器內部的一些特性的描述,接下來一個專題將描述Spring AOP的一些信息,配置細節等等。 介紹 面向切面編程(AOP)是一種新的針對程序結構的思路,它補足了面向對象編程(OOP)的一些細節上

原创 Compensating-Transaction模式

在應用中,會將一系列相關的操作定義爲一個連續的操作,當其中一個或者多個步驟失敗的時候,Compensating-Transaction模式會重置(回滾)這個連續的操作。在雲應用中,這些需要保證一致性的操作是較爲常見的,正是這些操作

原创 Java線程和多線程(九)——死鎖

Java中的死鎖指的就是一種多於兩個線程永遠阻塞的特殊狀況。Java中的死鎖狀態至少需要多於兩個線程以及資源的時候纔會產生。這裏,我寫了一個產生死鎖的程序,並且講下如何分析死鎖。 首先來看一下產生死鎖的程序: package co

原创 Java線程和多線程(五)——單例類中的線程安全

單例模式是最廣泛使用的創建模式之一。在現實世界之中,諸如Databae的連接或者是企業信息系統(EIS)等,通常其創建都是受到限制的,應該儘量複用已存在對象而不是頻繁創建銷燬。爲了達到這個目的,開發者通常會通過實現單例模式來創建一

原创 Cache-Aside模式

Cache-Aside 該模式是從數據倉庫中將數據加載到緩存中,從而提高訪問速度的一種模式。該模式可以有效的提高性能,同時也能一定程度上保證緩存中的數據和數據倉庫中的數據的一致性,和同步數據到數據倉庫中。 問題 應用通過緩存來優化

原创 Spring核心技術(十五)——BeanFactory

BeanFactory是Spring IoC功能的潛在基礎,但是現在BeanFactory一般僅僅用於直接集成第三方的框架,對於大多數的Spring用戶來說,BeanFactory已經算是一個歷史了。BeanFactory以及其相

原创 責任鏈模式

前一陣子仔細看了一下Tomcat的Filter實現,才知道這個叫做責任鏈模式。正好藉此機會瞭解了一下。 責任鏈模式屬於行爲設計模式中的一種。 概念 責任鏈模式用來在設計時實現鬆耦合的一種方式,適用於當客戶端發送的請求對象需要進行

原创 Sagas模式

Sagas屬於一個錯誤管理模式,也同時用於控制複雜事務的執行和回滾等。同時,Compensating-Transaction模式的的實現也是也是類似於Sagas策略的,可以對比參考一下。 Sagas的最開始的出現是因爲一些長時間的

原创 Java線程和多線程(八)——Thread Dump

Java的Thread Dump就是列出JVM中所有激活狀態的線程。 Java Thread Dump Java Thread Dump在分析應用性能瓶頸和死鎖的時候,是非常有效的。 下面將介紹多種不同的方式來獲取Java程序的T

原创 Data Consistency Primer

雲應用通常來說,使用的數據很多都是分散的,來自不同的數據倉庫。在這種環境下,管理和保持數據一致性是很複雜的,無論是在併發跟可用性上都可能出問題。開發者有的時候就需要爲了強一致性而犧牲可用性了。這也就意味着開發者需要需要針對應用最終

原创 Java線程和多線程(十四)——Synchronized關鍵字解析

曾經有一個比較有趣的面試問題,那就是,關於使用synchronized關鍵字,是用在方法上面尾號,還是用在一個代碼塊上面爲好? 答案就是使用鎖定代碼塊爲更好。因爲這樣不會鎖定對象。當synchronized關鍵字在實例方法的上面時

原创 Java線程和多線程(十一)——BlockingQueue

這次討論的是Java的BlockingQueue,java.util.concurrent.BlockingQueue是一個Java的隊列接口,支持一系列操作,比如,在獲取和移除對象的時候如果隊列爲空會來等待隊列變成非空的,而當隊

原创 Java線程和多線程(十)——TimerTask

Java中的java.util.Timer是一個工具類,可以用於調度一個線程在將來的某一個時刻執行特定的任務。Java Timer類可以將一個任務定時執行一次,或者是以後以每隔一定的時間間隔來觸發一次。 Java TimerTas

原创 Circuit Breaker模式

Circuit Breaker模式會處理一些需要一定時間來重連遠程服務和遠端資源的錯誤。該模式可以提高一個應用的穩定性和彈性。 問題 在類似於雲的分佈式環境中,當一個應用需要執行一些訪問遠程資源或者是遠端服務的時候,是很容易碰到一

原创 代理模式

本人最常用的模式是裝飾模式,一直搞不太清楚其跟代理模式的區別,今天來區分一下。 代理模式 代理模式是結構設計模式之一,也是非常好理解的一種模式。根據GoF中所說: 爲其他的對象提供代理或者佔位符,來控制其訪問的權限 從上面的定義就