原创 Guava本地緩存

  LoadingCache<String, Trie> localCache = Caffeine.newBuilder() .maximumSize(1000) .re

原创 kafka注意事項

Broker Controller是由zk選舉產生,從多個broker中選舉一個作爲controller; patition Leader由controller選出。   每個patition可以有多個副本,但有且僅有一個作爲Leader

原创 kafka根據offset查找消息原理

kafka消息文件有兩個:索引文件和數據文件 索引文件和數據文件對應關係   1、一個partition包含多個segment文件,每個segment文件爲1G左右; 2、index文件:左邊爲本segment文件中的順序編號,右邊爲數

原创 接口多實現優雅設計

那dubbo中cache功能舉例,dubbo cache有jcache、lru、threadlocal三種緩存實現,具體要調用哪個,看dubbo協議cache參數,獲取到cache參數後,獲取對應的cache的實現;通過一個map集合,可

原创 RPC和servlet異步處理場景

同步情況下:只有一種線程,接到請求,並繼續處理業務 異步情況下:分成兩部分線程,處理請求線程和工作線程   同步模式下,當存在多種場景的業務時,有些業務處理時間較長或者IO等待時間長,比如遠程調用,此時線程會被長時間佔用,導致線程被佔滿,

原创 dubbo RPC調用超時處理--DefaultFuture

一、每次發起一次RPC調用,就創建一個Future對象,並將對象放入集合中 //存放channel對象 private static final Map<Long, Channel> CHANNELS = new ConcurrentH

原创 springboot 自定義starter原理

  總結: 1、提供模塊需要的配置 2、使用需要的配置對模塊需要的bean進行自動裝配 3、實例化一個Bean對象返回,依賴放就可以直接使用   過程: 1、新建配置類,寫好配置項和默認的配置值,指明配置項前綴; 2、新建自動裝配類,使用

原创 CMS GC日誌分析

Young GC: GC (Allocation Failure) [ParNew...] 2020-03-20T15:59:50.339+0800: 261.249: [GC (Allocation Failure) 2020-03-2

原创 地理位置查找方式

一、其中一個是固定座標,比如商場、商店等,指定位置查找1公里範圍內的地標 使用es的geo進行查找,將固定地標的經緯度存入es中,在輸入經緯度,匹配範圍 搜索出200km內的酒店 GET /hotel_app/hotels/_search

原创 全局事務ID在多應用中遠程傳遞

代碼原理來自seata的分佈式事務中,全局事務ID在多應用中的傳遞: https://blog.csdn.net/f4761/article/details/89077400 https://blog.csdn.net/yunqiinsi

原创 消息隊列數據有序性

一、生產過程 同一個訂單的所有業務都發送到同一個patition   二、消費過程 一個patition只有一個消費者,保證節點數大於等於patition的數量 每個消費者再維護多個queue,相同的key進入同一個queue 每個que

原创 Dubbo服務Cluster

1.簡介 爲了避免單點故障,現在的應用通常至少會部署在兩臺服務器上。對於一些負載比較高的服務,會部署更多的服務器。這樣,在同一環境下的服務提供者數量會大於1。對於服務消費者來說,同一環境下出現了多個服務提供者。這時會出現一個問題,服務消費

原创 Dubbo服務目錄 Directory

1. 簡介 本篇文章,將開始分析 Dubbo 集羣容錯方面的源碼。集羣容錯源碼包含四個部分,分別是服務目錄 Directory、服務路由 Router、集羣 Cluster 和負載均衡 LoadBalance。這幾個部分的源碼邏輯相對比較

原创 Dubbo服務Router

1. 簡介 上一篇文章分析了集羣容錯的第一部分 — 服務目錄 Directory。服務目錄在刷新 Invoker 列表的過程中,會通過 Router 進行服務路由,篩選出符合路由規則的服務提供者。在詳細分析服務路由的源碼之前,先來介紹一下

原创 Dubbo服務LoadBalance

1.簡介 LoadBalance 中文意思爲負載均衡,它的職責是將網絡請求,或者其他形式的負載“均攤”到不同的機器上。避免集羣中部分服務器壓力過大,而另一些服務器比較空閒的情況。通過負載均衡,可以讓每臺服務器獲取到適合自己處理能力的負載。