原创 ES分佈式特性與分佈式搜索的機制-筆記

不同的集羣通過名字來區分 節點類型 coordinating node 路由請求的節點,默認所有節點都是該種節點 比如創建索引的請求會被路由到Master節點 data node 數據節點,一個節點啓動默認就是data

原创 使用http作爲消息投遞協議的潛在問題(在實際業務中結合TCP協議的抓包分析)

背景 我們某個數據服務向位於公網的阿里雲的LogHub(可以理解爲一個Kafka)投遞消息,投遞的客戶端使用的是阿里雲提供的Java SDK,看其源碼發現其使用http批量投遞消息的方式向遠端投遞。 其內部邏輯大概如下 publi

原创 rocketmq消息索引是怎麼做的

rocketmq消息索引是怎麼做的 參考文章 形象的圖示舉例很棒:https://kunzhao.org/docs/rocketmq/rocketmq-message-indexing-flow/ 寫簡單代碼解析rocke

原创 FastDFS大量請求時報ClientAbortException問題解決記錄

FastDFS大量請求時異常解決記錄 起因 最近做畢業設計,圖片文件的保存用到了FastDFS,普通地用發現並沒有什麼問題,但是當大量的圖片請求涌向FastDFS時,會報ClientAbortException,具體如下: org

原创 rocketmq消息的存儲與讀取

消息實體的存儲 待添加… 消息位置的存儲 消息在commitLog的putMessage方法,一直到最後的doAppend方法將消息實體寫到了最新的一個MappedFile裏,然後根據用戶不同的配置進行同步刷盤或者異步刷盤,異步刷

原创 mysql 的兩個重要的日誌模塊

mysql 的兩個重要的日誌模塊 mysql查詢語句的執行過程 redo log(InnoDB特有的日誌,發生在引擎層) redo log是物理日誌,記錄了這個數據頁 “做了什麼改動”,發生在InnoDB引擎中,當修改數據時,I

原创 索引條件下推(index condition pushdown)

索引條件下推(index condition pushdown) 概念 ​ 當沒有icp時,存儲引擎會運用索引定位到符合索引條件的行,將這些行發送給MySQL server去計算where 條件是否正確。當有icp時,如果wher

原创 記一次實際業務中結合TCP協議的抓包分析

情景 抓包結合tcp協議分析”爲什麼會發送兩次請求“,這導致了我們的一個消息重複的問題。 先說結論,大概原因就是因爲網絡阻塞,發送的第一次請求,實際已經到達服務端,服務端已經寫入MQ,但是由於相關ack並沒有返回給客戶端,客戶端認

原创 TCP協議的seq、ack的計算與實際中tcp斷開的優化

TCP協議的seq、ack的計算與實際中tcp斷開的優化 wireshark顯示的seq是相對序號 seq與ack都爲4個字節 當連接建立後,每個包都必須把ACK置爲1,並攜帶ack seq的語義 序號範圍[0,

原创 併發對ArrayList讀寫

併發對ArrayList讀寫 代碼示例 class Demo{ private List<String> testStrList; void methodA() { //... //在使用的時候copy一份