原创 ES入門筆記

1. ElasticSearch和Kibana 安裝版本號保持一致 2.  ElasticSearch從5.0版本開始廢除FilterBuilders,將query和filter合併。 3.  must和filter的區別 BoolQu

原创 elasticsearch RestHighLevelClient Client 連接池配置

@Slf4j @Configuration @AutoConfigureAfter(ElasticSearchProperties.class) public class ElasticSearchConfig extends Abst

原创 elasticsearch java客戶端封裝

url:https://gitee.com/zxporz/ESClientRHL/tree/es7  1.參考ElasticsearchTemplateImpl和ElasticsearchIndexImpl 2.client的封裝可參考 

原创 鎖的四種狀態及升級過程

jdk1.6之前的synchronized的實現依賴於底層操作系統的互斥鎖(mutex lock),這種鎖被稱爲重量級鎖,因爲阻塞或喚醒一個Java線程需要操作系統切換CPU狀態來實現,這種狀態切換需要耗費處理器時間,如果同步代碼塊中內容

原创 volatile和mesi(緩存一致性)

首先強調一點,volatile和mesi這兩個東西沒有半點關係。mesi是緩存一致性的一種實現手段,多核CPU爲了保證緩存數據的一致性,通常有兩種實現手段,一種是總線鎖,另一種是緩存鎖。總線鎖性能消耗大,緩存鎖則一般通過緩存一致性來實現。

原创 synchronized和reentrantLock的底層實現

實現synchronized的基礎: Java對象頭 + Monitor 對象頭的結構如下: 虛擬機位數 頭對象結構 說明 32/64bit Mark Word 默認存儲對象的hashcode,分代年齡,鎖類型,鎖標誌位等信息。 32/6

原创 Redis過期時間

過期通知的發送時間 Redis 使用以下兩種方式刪除過期的鍵: 當一個鍵被訪問時,程序會對這個鍵進行檢查,如果鍵已經過期,那麼該鍵將被刪除。 底層系統會在後臺漸進地查找並刪除那些過期的鍵(隨機抽樣),從而處理那些已經過期、但是不會被訪問到

原创 RocketMQ 如何基於mmap+page cache實現磁盤文件的高性能讀寫?

轉載: http://www.imooc.com/article/301624 1、mmap:Broker讀寫磁盤文件的核心技術 今天我們要給大家介紹一個非常關鍵的黑科技,很多人可能都不太熟悉,這個技術就是mmap技術,而Broker中就

原创 消息中間件—RocketMQ消息存儲

  消息中間件—RocketMQ消息存儲(一) https://www.jianshu.com/p/b73fdd893f98   消息中間件—RocketMQ消息存儲(二) https://www.jianshu.com/p/6d0c11

原创 對象進入老年代的時機

對象內存直接在老年代分配  1.分配的對象大小大於eden space或者進行ygc後,eden space剩餘空間仍然不足以存放新對象,適合所有收集器 2. Parallel Scavenge: 需要分配對象內存大小不小於eden sp

原创 DCL中的單例對象爲啥必須要用volatile修飾

創建一個對象時,內存中大致經歷如下三個步驟。 1.在堆中分配對象內存 2.填充對象必要信息+具體數據初始化+末位填充 3.將引用指向這個對象的堆內地址   什麼是指令重排序?有兩個層面: 在虛擬機層面,爲了儘可能減少內存操作速度遠慢於C

原创 空間分配擔保

在進行Minor GC之前,會判斷老年代最大連續可用空間是否大於新生代所有對象總空間,如果大於,說明Minor GC是安全的,否則會判斷是否允許擔保失敗,如果允許,判斷老年代最大連續可用空間是否大於歷次晉升到老年代的對象的平均大小,如果大

原创 RocketMq消息生產消費簡圖

  1.生產消息分爲:  同步,異步,單向發送。 建議使用異步回調的方式,注意這裏的retryTimesWhenSendFailed是指生產者連接到broker的通信失敗,連接成功後,因爲broker的page cache busy,導

原创 rocketmq快速失敗機制導致生產消息失敗

原創:https://www.sohu.com/a/396792314_115128 問題現象 首先接到項目反饋使用 RocketMQ 會出現如下錯誤: 錯誤信息關鍵點:MQBrokerException:CODE:2DESC:[TIM

原创 ScheduledThreadPoolExecutor使用過程中的兩個坑

  1.scheduleAtFixedRate和scheduleWithFixedDelay調度的Runnable,是否可以有條件終止。 這個可以參考https://blog.csdn.net/qian_348840260/article