原创 26.Elasticsearch生產集羣中的索引管理(五)

1、merge es裏的一個shard,就是一個lucene index,每個lucene index都是由多個segment file組成的。segment file負責存儲所有的document數據,而且segment file是不可

原创 Elasticsearch的底層模塊深入解析之node

node module,主要是用來處理各種不同類型的節點的,es有哪些類型的node,另外就是對這些類型的node有些什麼特殊的參數,對於一個較大的集羣來說,如何去規劃和配置各種各樣的node 1、node類型 如果我們啓動es的一個實例

原创 java8 Stream詳解

Stream是什麼 在探討探究stream的實現原理和動手實現之前,我們先要體會stream流計算的獨特之處。   舉個例子: 有一個List<Person>列表,我們需要獲得年齡爲70歲的前10個Person的姓名。 過程式的解決方案:

原创 java8 Comparator 比較器

在java8之後,comparator 是一個函數式接口,對接口進行了增強(增加了相當多的默認方法)。 reversed 倒敘 comparing 比較器(comparingInt 、 comparingLong、comparingDou

原创 java8 Collector(收集器)

Collector 什麼是Collector JavaDoc中對Collector的描述如下: A mutable reduction operation that accumulates input elements into a m

原创 java8接口新特性:default、static

java8之前接口中的方法默認類型都是public abstract,也就是抽象方法,具體實現都交給實現類。而java8對接口功能做了增強,增加了default方法和static方法,也就是說從java8開始接口中的方法不再只能是抽象的,

原创 Lambda表達式 分析詳解

什麼是Lambda表達式 我們可以把它看成是一種閉包,它允許把函數當做參數來使用,是面向函數式編程的思想,一定程度上可以使代碼看起來更加簡潔。 爲何需要Lambda表達式 在Java中,我們無法將函數作爲參數傳遞給一個方法,也無法聲明返回

原创 JAVA8 Optional

前言 身爲一名Java程序員,大家可能都有這樣的經歷:調用一個方法得到了返回值卻不能直接將返回值作爲參數去調用別的方法。我們首先要判斷這個返回值是否爲null,只有在非空的前提下才能將其作爲其他方法的參數。這正是一些類似Guava的外部A

原创 不要再被MYSQL的INT(M)給迷惑了

MYSQL裏有些比較隱晦的知識點,經常被稀裏糊塗的用錯而不自知。以前評審過程發生的次數較多,索性隨手寫一些出來。前人栽個樹,後人一定要乘涼啊! 表設計使用整型時,經常發現定義int括號裏的M是五花八門的。誤區是,不少人把M當成了數據庫中存

原创 Elasticsearch 6.X 新類型Join深入詳解

0、ES6.X 一對多、多對多的數據該如何存儲和實現呢? 引出問題: “某頭條新聞APP”新聞內容和新聞評論是1對多的關係? 在ES6.X該如何存儲、如何進行高效檢索、聚合操作呢? 相信閱讀本文,你就能得到答案! 1、ES6.X 新類

原创 JAVA 字節碼文件分析

​​​​ ​​​​Java不只是一種編程語言,還是一個完整的操作平臺。Java之所以可以跨平臺,這離不開JVM虛擬機。 JVM是一個軟件,在不同的平臺上,JVM有不同的版本。Java在編譯之後會生成一種.class文件,這種文件成爲字節碼

原创 JVM G1垃圾收集器

Hotspot關鍵組件 Java虛擬機的主要組件,包括類加載器、運行時數據區和執行引擎。 Java虛擬機有關性能的關鍵組件已經在下面的圖片上高亮顯示了。  Java虛擬機有三個組件關注着什麼時候進行性能優化,堆空間是你的對象所存儲的地方,

原创 Elasticsearch性能調優之慢查詢日誌

es裏面的操作,主要分爲兩種,一種寫入(增刪改),另一種是查詢(搜索) 我們分別要識別出來,哪些寫入操作性能比較慢,哪些查詢操作性能比較慢,先要識別出來有性能問題的這些慢查詢,慢寫入,然後才能去考慮如何優化寫入的性能,如何優化搜索的性能

原创 JVM 垃圾回收日誌 與 算法深度解讀

GC的時機 在分代模型的基礎上,GC從時機上分爲兩種:Scavenge GC 和 Full GC Scavenge GC (Mionr GC) 觸發時機:新對象生成時,Eden空間滿了 理論上Eden區大多數對象會在Scavenge

原创 JVM CMS收集器

CMS收集器 CMS收集器,以獲取最短回收停頓時間爲目標,多數應用於互聯網站或者B/S系統的服務器端上。 CMS是基於“標記-清除” 算法實現的,整個過程分爲4個步驟       1)初始標記 (CMS initial mark)