原创 Docker之網絡篇

在Docker中需要在容器間相互訪問是非常困難的,默認Docker不會開放任何端口,因此需要將容器與宿主機進行端口映射,使容器可外部訪問。而容器間互相訪問,除了可以基於端口映射進行訪問外,還可以通過容器鏈接(Link)的方式,也可以通過D

原创 響應式編程之數據訪問:ADBA與R2DBC

這個世界在變,技術也一直在變化着。JDBC具有阻塞性 - 沒有什麼可以減輕JDBC的阻塞性質,什麼時候可以使用API​​進行響應性關係數據庫集成?先用有Oracle宣佈推出ADBA,再有在 SpringOne平臺華盛頓大會上宣佈的 R2D

原创 EpollEventLoopGroup 與 NioEventLoopGroup你知道嗎

Java NIO根據操作系統不同,比如 macosx 是KQueueSelectorProvider、windows有WindowsSelectorProvider、Linux有EPollSelectorProvider (Linux k

原创 Class.forName和ClassLoader.loadClass

衆所周知Class.forName和ClassLoader.loadClass都可以用來加載目標類,它們之間有一個小小的區別,那就是 Class.forName() 方法可以獲取原生類型的 Class,而 ClassLoader.load

原创 值得一讀的《架構整潔之道》筆記

“如何寫出整潔的架構”這樣的話題,的確每個人都可以侃侃而談,但真理往往掌握在少數人的手中,他們是資深專家,他們是技術達人。其實某年之前我也範範的談過應用架構設計應遵循的原則,那如何才能獲取少數人的架構思想呢?《架構整潔之道》是一本非常棒的

原创 RxJava 健壯性行總結:錯誤處理

Rxjava是一種Java語言實現的響應式編程,是創建基於事件的異步程序,是以數據流爲核心,處理數據的輸入,處理以及輸出的。本節將要分享RxJava2 一些異常處理方面的經驗: 當出現異常時,通過 onErrorReturn* 轉換成一個

原创 Pandora Boot和spring Boot

在阿里集體內部,幾乎所有的應用都用到了各式各樣的中間件,比如HSF、TDDL、Diamond等等。本身中間件之間可能就有版本依賴的問題,比如你的應用HSF和Diamond分別依賴了同名jar包的不同版本,maven只會引入其中一個版本。同

原创 java冷知識:突破雙親委派模型的CurrentClassLoader和ContextClassLoader

java類加載器機制真可謂最神祕的技術,在之前的文章中深入簡出的介紹過。這裏補充兩方面的問題,第一個就是CurrentClassLoader和ContextClassLoader,第二個就是深入的談下Class.forName和Class

原创 經典問題:緩存穿透/熱點數據集中失效/雪崩/一致性問題

緩存系統一定程度上極大提升系統併發能力,但同樣也增加系統的複雜度,下面針對緩存系統設計與使用中面臨的常見問題展開。主要是針對熱門問題:緩存穿透/熱點數據集中失效/雪崩/一致性問題的總結及解決方案。 There are only two

原创 @Import注入之ImportSelector和ImportBeanDefinitionRegistrar

在spring-boot中隨處可以見的就是@Import, 它的作用就是通過導入的方式把實例注入到IOC中,本文主要介紹下@Import的用法。 知識點回顧: 給IOC容器中註冊Bean的方式: 包掃描+組件標註註解(@Controlle

原创 window7下同時使用github和gitlab

最近公司的代碼管理慢慢從svn遷移至gitlab,而個人也一般會採用github託管一些開源代碼代碼。如何能在本機環境下二者切換自如,免密,無衝突提交,這個分享下。 注:個人環境是window7,TortoiseGit 2.5.0.,gi

原创 nginx gzip帶來的啓示

網站的流量越來越多大,對於使用nginx的優化變得非常重要,經過gzip(GNU-ZIP)壓縮後頁面大小可以變爲原來的30%甚至更小,當用戶瀏覽頁面的時候速度會塊得多。gzip 是規定的三種標準HTTP壓縮格式之一,目前絕大多數的網站都在

原创 spring cloud 系列之Netflix Archaius

在之前的系列講過Hystrix的核心實現源碼,多次提及到Archaius(Netflix公司開源項目之一),其實Netflix的所有組件都是通過它獲取配置。Archaius主要用於多配置存儲的動態獲取,基於對apache common c

原创 ElasticSearch update_by_query

項目中需要定時對ElasticSearch的某些數據進行更新,數據量十幾萬,採用RestClient更新,在沒有設置超時的情況下,報錯如下:java.io.IOException: listener timeout after waiti

原创 微服務框架 spring-cloud 絕非你唯一的選擇

Spring Cloud全家桶的構建是建立在Spring Boot基礎上的,特別上容器化技術已經成熟,以快而著稱,號稱3秒內啓動。其實企業級的docker容器一般內存低於4g(快),如何解決SpringBoot巨耗內存,構建慢,啓動也很慢