原创 kafka源碼閱讀之MacBook Pro M1搭建Kafka2.7版本源碼運行環境

原創/朱季謙 最近在閱讀Kafka的源碼,想可以在閱讀過程當中,在代碼寫一些註釋,便決定將源碼部署到本地運行。 日常開發過程中,用得比較多一個版本是Kafka2.7版本,故而在MacBook Pro筆記本上用這個版本的源碼進行搭建,進行K

原创 Docker部署系列之Docker Compose安裝Redis三主三從集羣

總結/朱季謙 在日常開發或者編程當中,經常需要用到redis集羣,若是按照傳統的方式,一個機器一個機器搭建,難免過於繁瑣,故而可以通過dock er-compose編排方式,快速搭建。我在搭建過程當中,將操作記錄下來,方便以後需要搭建三主三

原创 基於源碼理解通透Iterator迭代器的Fail-Fast快速失敗與Fail-Safe安全失敗機制

原創/朱季謙 在Java編程當中,Iterator迭代器是一種用於遍歷如List、Set、Map等集合的工具。這類集合部分存在線程安全的問題,例如ArrayList,若在多線程環境下,迭代遍歷過程中存在其他線程對這類集合進行修改的話,就可

原创 [2023年度回顧總結]凡是過往,皆爲序章

原創/朱季謙 2023年12月初,傍晚,在深圳的小南山看了一場落日。 那晚我們坐在山頂的草地上,拍下了這張照片——彷彿在秋天的枝頭上,結出一顆紅透的夕陽。 這一天很快就會隨着夜幕的降臨,化作記憶的碎片,然而,總會有一些難忘的痕跡,在逐漸落

原创 Java SPI機制總結系列之萬字最詳細圖解Java SPI機制源碼分析

原創/朱季謙 我在《Java SPI機制總結系列之開發入門實例》一文當中,分享了Java SPI的玩法,但是這只是基於表面的應用。若要明白其中的原理實現,還需深入到底層源碼,分析一番。 這裏再重溫一下SPI機制的概念:SPI,是Servi

原创 Java SPI機制總結系列之開發入門實例

原創/朱季謙 在該文章正式開始前,先對 Java SPI是什麼做一個簡單的介紹。 SPI,是Service Provider Interface的縮寫,即服務提供者接口,單從字面上看比較抽象,你可以理解成,該機制就像Spring容器一樣,通

原创 基於Spark對消費者行爲數據進行數據分析開發案例

原創/朱季謙 本文適合入門Spark RDD的計算處理。 在日常工作當中,經常遇到基於Spark去讀取存儲在HDFS中的批量文件數據進行統計分析的案例,這些文件一般以csv或者txt文件格式存在。例如,存在這樣一份消費者行爲數據,字段包括

原创 SpringCloudAlibaba Seata在Openfeign跨節點環境出現全局事務Xid失效原因底層探究

原創/朱季謙 曾經在SpringCloudAlibaba的Seata分佈式事務搭建過程中,跨節點通過openfeign調用不同服務時,發現全局事務XID在當前節點也就是TM處,是正常能通過RootContext.getXID()獲取到分佈

原创 圖解Spark排序算子sortBy的核心源碼

原創/朱季謙 一、案例說明 以前剛開始學習Spark的時候,在練習排序算子sortBy的時候,曾發現一個有趣的現象是,在使用排序算子sortBy後直接打印的話,發現打印的結果是亂序的,並沒有出現完整排序。 例如,有一個包含多個(姓名,金額

原创 圖解Spark Graphx基於connectedComponents函數實現連通圖底層原理

原創/朱季謙 第一次寫這麼長的graphx源碼解讀,還是比較晦澀,有較多不足之處,爭取改進。 一、連通圖說明 連通圖是指圖中的任意兩個頂點之間都存在路徑相連而組成的一個子圖。 用一個圖來說明,例如,下面這個叫graph的大圖裏,存在兩個連

原创 圖解Spark Graphx實現頂點關聯鄰接頂點的collectNeighbors函數原理

一、場景案例 在一張社區網絡裏,可能需要查詢出各個頂點鄰接關聯的頂點集合,類似查詢某個人關係比較近的都有哪些人的場景。 在用Spark graphx中,通過函數collectNeighbors便可以獲取到源頂點鄰接頂點的數據。 下面以一個

原创 Spark RDD惰性計算的自主優化

原創/朱季謙 RDD(彈性分佈式數據集)中的數據就如final定義一般,只可讀而無法修改,若要對RDD進行轉換或操作,那就需要創建一個新的RDD來保存結果。故而就需要用到轉換和行動的算子。 Spark運行是惰性的,在RDD轉換階段,只會記錄

原创 Scala連接Hbase集羣出現異常彙總

總結/朱季謙 一、出現java.lang.IllegalAccessError: tried to access method com.google.common.base.Stopwatch.()V from class org.apac

原创 Vue + Element ui 實現動態表單,包括新增行/刪除行/動態表單驗證/提交功能

總結/朱季謙 最近通過Vue + Element ui實現了動態表單功能,該功能還包括了動態表單新增行、刪除行、動態表單驗證、動態表單提交功能,趁熱打鐵,將開發心得記錄下來,方便以後再遇到類似功能時,直接拿來應用。 簡化的頁面效果圖如下:

原创 SpringBoot結合easyexcel處理Excel文件

文/朱季謙 假如有這樣一個需求,每天需要讀取以下表頭的Excel文件,統計文件裏擊中黑名單的比例,該文件is_blacklist列的1表示擊中了黑名單,0表示未擊中黑名單。 基於該需求,可以在定時任務通過easyexcel工具進行處理。