原创 MySQL uuid及其相關的一些簡單性能測試

運維同事導入一批大約500萬左右的數據,耗時較久。他使用的是純SQL導入,主鍵使用的是UUID,因爲業務原因沒有使用自增ID。 因爲是內網,不能遠程訪問。 通過溝通,大致覺得有兩個原因,一是因爲UUID作爲主鍵,二是表字段繁多,單行加起來接

原创 本週SQL優化實戰分享

分享一下本週SQL優化的兩個場景。 如果能對讀者有一定的啓發,共同探討,不勝榮幸。 版本信息:mysql,5.7.19 引擎: innodb 場景1 我們有一張常口表,裏面的數據由各種數據源合併而來,所以人員可能有多個手機號其中還包括座

原创 一個線上全文索引BUG的排查:關於類阿拉件數字的分詞與檢索

說到全文檢索的分詞,多半講到的是中(日韓)文分詞,少有英文等拉丁文系語言,因爲英語單詞天然就是分詞的。 但更少講到阿拉伯數字。比如金額,手機號碼,座機號碼等等。 以下不是傳統的從0開始針對mysql全文索引前世今生講起。 我更喜歡從一個小問

原创 扯什麼kafka順序消費,然後呢?古爾丹,代價是什麼

著名面試八股文之kafka爲什麼讀寫效率高,寫的答案之一是partition順序寫,因而能保證分區內的不連續的有序性。 這裏的重點是有序追加到磁盤,而不是嚴格意義上的完全有序性。 幾年前參加了一大數據崗位面試,95%的時間在扯java基礎(

原创 爲了弄清起點小說如何算字扣錢,我特意註冊了作家賬號

閒來無事,想起這些年也算給起點貢獻了不少流量和金錢。 在起點的會員訂閱規則裏,如下圖所示,重點關注2,3和6點,一個是怎麼算錢的,一個是怎麼算字數的。 計費跟字數相關,歸根結底,都是怎麼算錢的事兒。 1. 怎麼算字數 “作品字數以起點計數

原创 揭開神祕面紗,會stream流就會大數據

目錄準備工作1.map類1.1 java stream map1.2 spark map1.2.1 MapFunction1.2.2 MapPartitionsFunction2.flatMap類2.1 java stream flatMa

原创 關於spring嵌套事務,我發現網上好多熱門文章持續性地以訛傳訛

事情起因是,摸魚的時候在某平臺刷到一篇spring事務相關的博文,文章最後貼了一張圖。裏面關於嵌套事務的表述明顯是錯誤的。 更奇怪的是,這張圖有點印象。在必應搜索關鍵詞PROPAGATION_NESTED出來的第一篇文章,裏面就有這這部份內

原创 實現聲明式鎖,支持分佈式鎖自定義鎖、SpEL和結合事務

目錄2.實現2.1 定義註解2.2 定義鎖接口2.3 鎖的實現2.3.1 什麼是SPI2.3.2 通過SPI實現鎖的多個實現類2.3.3 通過SPI自定義實現鎖3.定義切面3.1 切面實現3.2 SpEL表達式獲取動態key3.3 鎖與事務

原创 分享一個生產者-消費者的真實場景

0.背景 現在有一個大數據平臺,我們需要通過spark對hive裏的數據讀取清洗轉換(etl)再加其它的業務操作的過程,然後需要把這批數據落地到tbase數據庫(騰訊的一款分佈式數據庫)。 數據導入的特點是不定時,但量大。每次導入的數據量在

原创 來自jackson的靈魂一擊:@ControllerAdvice就能保證萬無一失嗎?

前幾天寫了篇關於fastjson的文章,《fastjson很好,但不適合我》。裏面探討到關於對象循環引用的序列化問題。作爲spring序列化的最大競品,在討論fastjson的時候肯定要對比一下jackson的。所以我也去測試了一下Jack

原创 fastjson很好,但不適合我

記者:大爺您有什麼特長呀? fastjson:我很快。 記者:23423乘以4534等於多少? fastjson:等於2343. 記者:?? fastjson:你就說快不快吧! 這個略顯馬麗蘇的標題,各位看官將就着看吧。主要是怕被噴。

原创 一次spark任務提交參數的優化

起因 新接觸一個spark集羣,明明集羣資源(core,內存)還有剩餘,但是提交的任務卻申請不到資源。 分析 環境 spark 2.2.0 基於yarn集羣 參數 spark任務提交參數中最重要的幾個: spark-submit --

原创 當transcational遇上synchronized

工作當中經常會遇到既需要開啓事務管理,同時也需要同步保證線程安全的場景。 比如一個方法 @Transactional public synchronized void test(){ // } 不知道大家有沒有這樣寫過? 這樣寫

原创 一個由public關鍵字引發的bug

先來看一段代碼: @Service @Slf4j public class AopTestService { public String name = "真的嗎"; @Retryable public void

原创 記錄一次鎖的優化

項目背景 老規矩,先講講項目背景。可跳過。 小工具類的微系統。 我們會有一些文本語義描述的事件。譬如某小區兩戶人家因爲寵物發生了爭吵,比如某人撥打12345熱線反映小區深夜還在跳廣場舞等等。這些統稱事件。 小學語文老師告訴我們描述事件的敘述