原创 Druid中的Kafka Indexing Service源碼分析

Kafka Indexing Service開發的目的是爲了增強Kafka中數據的實時攝入。其特性如下:保障數據攝入的Exactly Once。可以攝入任意時間戳的數據,而不僅僅是當前數據。可以根據Kafka分區的變化二調整任務的數量。影

原创 Java應用程序中的資源消耗分析

CPU的消耗查看CPU的消耗,目前最直接的辦法就是通過linux系統的top命令來查看。如上文所述。對Java應用程序而言,CPU的消耗主要體現在us,sy兩個值上,下面分析下這兩個值:1. us當us值過高時,表示運行的應用程序消耗了大

原创 Druid中的負載均衡策略分析

在生產環境中,Druid查詢通常能夠命中多個(幾十或幾百個)segment。由於His節點的資源有限,所以segment需要被按照一定的策略均勻的分不到整個集羣中,以確保集羣的負載不會出現傾斜。要確定最佳的負載分佈,需要對業務,查詢模式和

原创 流式處理框架的特點

分佈式的流處理是對無界的數據集進行連續不斷的處理,聚合,分析的過程。延遲需要儘可能的低(毫秒級或秒級)。這類框架通常採用有向無環圖(DAG)來描述和處理作業拓撲。(線性處理也是一種DAG)。他們一般會抽取此類系統的底層通用模型,保證其易用

原创 Druid中的Extension在啓動時是如何加載的?

Druid的Extension在開發時,按照Druid的Extension編寫規則,啓動Module寫在文件:META-INF/services/io.druid.initialization.DruidModule中。如HDFS存儲擴展

原创 深入解析OutOfMemoryError

譯文出處: shenzhang   原文出處:原文鏈接在Java中,所有對象都存儲在堆中。他們通過new關鍵字來進行分配,JVM會檢查是否所有線程都無法在訪問他們了,並且會將他們進行回收。在大多數時候程序員都不會有一絲一毫的察覺,這些工作

原创 Druid源碼解析之Coordinator

Coordinator時Druid的中心協調模塊,用於解耦各個模塊之間的直接聯繫,負責Segment的管理與分發,控制歷史節點上Segment的裝載和刪除,並保持Segment在各個歷史節點上的負載均衡。Coordinator採用定期運行

原创 查看Linux環境下MySQL是哪個java進程在鏈接

首先,在mysql cli中執行如下命令:MySQL [appcpa_bitmap]> show processlist; +-----------+--------+--------------------+--------------

原创 Spring Boot是如何啓動Web Container和Spring MVC的

Spring Boot一般使用starter來整合第三方框架與擴展功能。其套路是: 定義一個XXXXAutoConfiguration的類。其中XXXX一般可以寫成所需集成的功能或框架。其上可定義@Conditional相關注解,指定何時

原创 java中IP地址與long之間的轉換

IP地址轉爲long型: public static long ipToLong(String ip) { String[] ipArray = ip.split("\\."); List ipNums = new ArrayLi

原创 Druid原理分析之內存池管理(轉)

爲了減輕JVM垃圾回收帶來的性能波動,Druid儘量使用對外內存和系統內存。使用臨時文件,在索引創建和合並的過程中,中間臨時結果會佔用大量的內存。爲了減少JVM內存的使用,採用臨時文件,通過文件IO的方式,巧妙地利用內核的Page Cac

原创 Druid源碼分析之Query -- Sequence與Yielder

Druid設計了一種可以迭代的序列叫Sequence,其實現在java-util包中。它是對Iterator操作的高級封裝。但是它與普通的Iterator不同,它不會爲您提供從中提取值的方式,而是提供了一個累加器(Accumulator)

原创 ScyllaDB調研分析

ScyllaDB介紹ScyllaDB是用C++重寫的Cassandra,其官網宣稱其每節點每秒可處理100萬TPS。ScyllaDB完全兼容Apache Cassandra,擁有比Cassandra多10X倍的吞吐量,並降低了延遲。Scy

原创 Spring Boot常用註解總結

Spring Boot是Spring框架對“約定優於配置(Convention Over Configuration)”理念的最佳實踐產物。一個典型的Spring Boot應用本質上就是一個基於Spring框架的應用。Spring Boo

原创 DynamoDB的分區與存儲的注意事項

DynamoDB的分區如何計算呢?直接上公式:實際設置的讀容量/最大讀支持3000 + 實際設置的寫容量/最大寫支持1000 所得結果想上取整。即:(readCapacityUnits / 3000) + (writeCapacityUn