原创 Java在Linux下如何維持大量鏈接

Edit Java在Linux下如何維持大量鏈接 修改用戶進程可打開文件數限制 在Linux平臺上,無論編寫客戶端程序還是服務端程序,在進行高併發TCP連接處理時,最高的併發數量都要受到系統對用戶單一進程同時可打開文件數量的

原创 Flume數據傳輸事務分析

Flume數據傳輸事務分析 本文基於ThriftSource,MemoryChannel,HdfsSink三個組件,對Flume數據傳輸的事務進行分析,如果使用的是其他組件,Flume事務具體的處理方式將會不同。一般情況下,用Memo

原创 Phantomjs,Casperjs重要的概念:執行順序

Phantomjs,Casperjs重要的概念:執行順序 Phantomjs和Javascript一樣,是基於消息驅動的。代碼的執行都是異步化的。 要理解phantomjs的代碼執行是基於一個step棧。在執行腳本時,會將所有step壓

原创 ServiceLoader服務提供者模式,實現動態插件加載,類責任鏈模式

Edit ServiceLoader服務提供者模式,實現動態插件加載,類責任鏈模式 ServiceLoader的功能比ClassLoader簡單,它可以幫我們獲取所有實現了某接口或基類的類。當然前提是ClassLoader已經加載

原创 使用Elasticsearch,Kafka和Cassandra構建流式數據中心

在過去的一年裏,我遇到了一些軟件公司討論如何處理應用程序的數據(通常以日誌和metrics的形式)。在這些討論中,我經常會聽到挫折感,他們不得不用一組零碎的工具,隨着時間的推移將這些數據彙總起來。這些工具,如: - 運維人員使用的,用於

原创 關於GhostDriver的Cookie隔離問題

關於GhostDriver的Cookie隔離問題 GhostDriver包括了Java驅動phantomjsdriver,PhantomJS WebDriver,詳細的不再贅述。看上一片文章。 Java用phantomjsdriver時,

原创 Spring Boot自動配置源碼

SpringBoot初始化上下文環境 SpringBoot會從META-INF/spring.factories文件中加載Initializers,Auto Configure Initializers用於加載配置(Environment

原创 PhantomJS其他語言調用

PhantomJS其他語言調用 我本身是使用Java語言的,所以會考慮phantomjs如何與java交互。目前考慮方案有如下兩種: 1. Java Process 抓取邏輯還是用Javascript,封裝成JS腳本,用Java Pro

原创 Spring Actuator源碼分析

Actuator Endpoint Actuator模塊通過Endpoint暴露一些接口,可以是Rest方式,也可以是JMX等其他方式. 如果使用Rest方式,通常SpringMVC是使用@RequestMapping,以及@Contro

原创 Java Metrics

Java Metrics Java Metrics是一個功能比較強大的java統計庫,它的輸出組件也很強大,幫我們做好了: 輸出到Ganglia輸出到控制檯輸出到JMX輸出Json 詳細見:dropwizard.github.io

原创 Linux Shell的鎖:flock

Linux Shell的鎖:flock 在寫分佈式系統的時候,需要同步進程之間的調用順序。我的需求是,多個進程同時要在一個maven工程中編譯打包接口。通過new一個Process去跑一個Shell腳本,Shell腳本會將接口源代碼拷

原创 Java時間:GMT以及UTC

Edit Java時間:GMT以及UTC GMT即格林威治標準時間,以英國倫敦郊區皇家格林威治天文臺的標準時間。世界被分爲24個時區。而北京在東八區 UTC即世界協調時間,以格林威治時間爲準,經過平均太陽時等修正後,以秒爲單位的

原创 Java操作Mongo

Java操作Mongo // 創建連接 MongoClient mongoClient = new MongoClient(Arrays.asList(new ServerAddress("localhost", 27017),

原创 使用Netflix Hystrix編寫彈性可容錯的應用程序

彈性指的是在複雜網絡環境下,面對各種故障和挑戰,仍能提供和維持一個可以接受的服務水平,並正常運作。 -來自Wikipedia 自從長期服務和最近的微服務被大家熟知和使用,很多應用程序開發人員已經將整體式的API,轉換成簡單的、功能單一的

原创 Akka相關概念理解

Akka相關概念理解 Actor適用 Actors可以替代: 一個線程一個對象或者組件一個callback或者listener一個單例或者服務一個路由轉發者,負載均衡器,池一個Java EE的session bean或者事件驅動