原创 Java線程和多線程(七)——ThreadLocal

Java中的ThreadLocal是用來創建線程本地變量用的。我們都知道,訪問某個對象的所有線程都是能夠共享對象的狀態的,所以這個對象狀態就不是線程安全的。開發者可以通過使用同步來保證線程安全,但是如果不希望使用同步的話,我們也可

原创 Retry模式

Retry模式能夠通過重複之前失敗的操作來處理那些在調用遠端服務或者網絡資源的時候發生的一些可以預期的臨時性的錯誤。Retry模式可以提高應用的穩定性。 問題 應用中,負責鏈接其他服務的組件必須要對環境中可能發生的臨時性錯誤十分敏

原创 Java線程和多線程(六)——守護線程

當我們在Java中創建線程的時候,這個線程在默認的情況下是一個用戶線程,並且,如果這個線程在運行,那麼JVM就不會終結這個應用。和用戶線程不同,當一個線程被標記爲守護線程的時候,JVM在用戶線程結束的時候,是不會持續等待守護線程結

原创 Java線程和多線程(十三)——Callable,Future,FutureTask

在Java多線程之中,Callable和Future的使用時非常廣泛的。在之前的文章中,我們瞭解了關於Java線程池基礎的一些內容,知道如何提交Runnable的任務。但是,Runnable的任務是無法有返回值,也不能拋出異常的。

原创 Java線程和多線程(十二)——線程池基礎

Java 線程池管理多個工作線程,其中包含了一個隊列,包含着所有等待被執行的任務。開發者可以通過使用ThreadPoolExecutor來在Java中創建線程池。 線程池是Java中多線程的一個重要概念,因爲通過Thread模型

原创 Java內存管理(一)

好久沒有寫博客了,深感慚愧,今天聊一下Java的內存管理 簡介 Java相比傳統語言(C,C++)的一個優勢在於其能夠自動管理內存,從而將開發者管理內存任務剝離開來。 本文大體描述了J2SE 5.0 release中JVM對於內存是如何

原创 Java內存管理(二)

前文描述了一些關於串行收集器的知識,本文繼續針對垃圾收集器進行描述。 並行收集器(parallel collector) 在硬件發展到今天,很多的機器上面的物理內存會更高,並且擁有更多的CPU資源。並行收集器,也被稱作吞吐收集器,就是用來

原创 Command and Query Responsibility分離模式

CQRS模式,就是命令和查詢責任分離模式。 CQRS模式通過使用不同的接口來分離讀取數據和更新數據的操作。CQRS模式可以最大化性能,擴展性以及安全性,還會爲系統的持續演化提供更多的彈性,防止Update命令在域模型Level發生衝突。

原创 Top命令基礎

top命令顯示多個PID的詳細信息,同時可以通過uptime來獲得同樣的第一行數據 top返回: top - 19:58:17 up 63 days, 9:46, 1 user, load average: 0.00, 0.02,

原创 公平鎖與非公平鎖

在ReentrantLock中很明顯可以看到其中同步包括兩種,分別是公平的FairSync和非公平的NonfairSync。公平鎖的作用就是嚴格按照線程啓動的順序來執行的,不允許其他線程插隊執行的;而非公平鎖是允許插隊的。 默認情況下Re

原创 Sharding模式

將數據存儲爲一組水平的數據分區。這種模式可以在存儲和訪問大量的數據的時候提高可擴展性。 場景和問題 由單個服務器託管的數據存儲可能受到下列限制: 存儲空間限制。基於大規模雲應用所使用的數據倉庫,可能會包含海量的數據,並且數據增長速度非常

原创 Pessimistic and Optimistic locking

事務隔離通常通過鎖定任何對事務中資源的訪問來實現的。總的來說,有兩種方法針對事務的鎖定:樂觀鎖(Pessimistic locking)和悲觀鎖(Optimistic locking) 悲觀鎖(Pessimistic locking) 悲

原创 Spring ORM數據訪問——概述

介紹一下Spring中的ORM Spring框架在實現資源管理、數據訪問對象(DAO)層,和事務策略等方面,支持對Java持久化API(JPA)以及原生Hibernate的集成。以Hibernate舉例來說,Spring有非常讚的IoC功

原创 Spring ORM數據訪問——Hibernate

Hibernate 我們將首先介紹Spring環境中的Hibernate 5,然後介紹使用Hibernate 5來演示Spring集成O-R映射器的方法。本節將詳細介紹許多問題,並顯示DAO實現和事務劃分的不同變體。這些模式中大多數可以直

原创 Competing-Consumers模式

Competing-Consumers模式支持多個併發消費者來處理消費消息隊列上接收到的消息。該模式令系統能夠併發的處理消息,並且優化吞吐,增加擴展性和可用性,同時平衡工作負載。 問題 在雲環境中運行的程序可能需要處理大量的請求。相對於同