原创 關於Java使用groupingBy分組數據亂序問題

這是對最近做的一個項目,其中一個知識點的總結。 真實的業務場景就不說了,我來模擬下業務場景,足夠說明問題就行了。 假設我有個對象,存儲人員的基本信息,如下: @AllArgsConstructor @Data @ToString

原创 你真的會用volatile嗎

文章目錄volatile的概念volatile詳解什麼時候需要使用volatilevolatile在標準庫裏的應用volatile會降低程序執行的效率volatile不是萬能的 volatile的概念 或者說,volatile解決

原创 如何優雅的判斷一個對象的屬性是否全部爲空

有一些業務場景下,我們需要判斷某個對象的屬性是否全部爲空。該怎麼做呢? 馬上能想到的一個方案是,一個一個判斷對象中的屬性。這個倒也可以,但是如果要判斷的對象比較多,就得給每個對象寫一個判斷方法(因爲每個對象的屬性都不一樣)。 其實

原创 通過一個示例瞭解kafka connect連接器

什麼是kafka連接器connect 在實際工作中使用 kafka ,有時候會有類似這樣的場景。我們需要把某些數據源的數據導入到 kafka,或者把 kafka 作爲數據源導出數據。或者兩種場景的需求都要。 這算是一種 kafka

原创 生產上遇到的一例mycat讀寫分離延時問題

問題描述 場景是這樣的,我們的支付系統在一筆支付完成後,需要發出通知給到商戶。支付完成的消息通過消息隊列發送給通知的服務。通知服務的有一部分處理邏輯是這樣的: notifyPersist.saveNotif

原创 ES分頁看這篇就夠了

文章目錄引言分頁的幾種方案from/size方案search after方案scroll api方案總結 引言 我們使用mysql的時候經常遇到分頁查詢的場景,在mysql中使用limit關鍵字來實現分頁。比如下面的示例。 sel

原创 不要被kafka的異步模式欺騙了

啥是異步模式 kafka的生產者可以選擇使用異步方式發送數據,所謂異步方式,就是我們調用 send() 方法,並指定一個回調函數, 服務器在返回響應時調用該函數。 kafka在客戶端裏暴露了兩個send方法,我們可以自己選擇同步或

原创 詳解 java CompletableFuture

文章目錄背景知識基本介紹使用示例總結 背景知識 要理解 CompletableFuture,首先要弄懂什麼是 Future。因爲後者是前者的擴展。本文並不打算詳細的介紹 Future,畢竟不是本文的重點。 Future是java1

原创 ES系列之嵌套文檔和父子文檔

需求背景 很多時候mysql的表之間是一對多的關係,比如訂單表和商品表。一筆訂單可以包含多個商品。他們的關係如下圖所示。 ElasticsSearch(以下簡稱ES)處理這種關係雖然不是特別擅長(相對於關係型數據庫),因爲ES和

原创 什麼鬼?ES主分片和副本大小居然不一樣!

引言 很多認爲Elasticsearch(以下簡稱ES),同一個分片的主分片和副本分片文檔數量肯定是樣的,數據大小也是一樣的。 這個其實值說對了一半,文檔數量是一樣的沒錯,但是數據大小不一定一樣。 產生這種現象的原因在於,主分片和

原创 給你總結幾個ES下最容易踩的坑

我本人接觸Elasticsearch(一下簡稱ES)有挺長一段時間了,本文結合自己的一些項目經驗,給你總結幾個實際項目中比較容易踩到的坑。希望讀者能夠避免犯這樣的錯誤。 坑一,時區問題 在我們的項目中,索引下一般都會存在一個時間的

原创 ES系列之利用filter讓你的查詢效率飛起來

bool查詢簡介 Elasticsearch(下面簡稱ES)中的bool查詢在業務中使用也是比較多的。在一些非實時的分頁查詢,導出的場景,我們經常使用bool查詢組合各種查詢條件。 Bool查詢包括四種子句, must filt

原创 ES主分片和副本數據大小不一樣的情況

引言 很多認爲Elasticsearch(以下簡稱ES),同一個分片的主分片和副本分片文檔數量肯定是樣的,數據大小也是一樣的。 這個其實值說對了一半,文檔數量是一陽臺的沒錯,但是數據大小不一定一樣。 產生這種現象的原因在於,主分片

原创 再聊聊fastjson的一個漏洞

引言 我曾經寫過一篇文章 fastjson遠程代碼執行漏洞問題分析 文章曾經比較詳細分析了fastjson在1.2.24以及之前版本存在遠程代碼執行高危安全漏洞的問題。 本文則是針對另一個漏洞的介紹和分析。 官方對這次漏洞的說明是

原创 關於kibana的可視化可能都在這篇文章裏了

引言 kibana是elasticsearch(以下簡稱ES)的可視化平臺,筆者平時使用kibana的dev tools比較多,在這裏可以更便捷的使用ES的各種命令,DSL查詢語句等。 但是kibana的可視化功能遠不止於次。Ki