原创 redis爲什麼這麼快?

一說到微服務緩存大家都想到使用redis來做,因爲它快。支持10W+的qps。那它到底爲什麼這麼快呢?今天來簡單回顧一下。   內存操作 第一個肯定要說的是redis的內存操作,相對於關係型數據庫的將數據存入磁盤。內存的操作速度就相當快。

原创 java之日誌框架

java日誌框架其實分兩塊內容: 一是日誌框架 比如JDK的j.u.l(java.util.logging),apache的log4j ,logback以及log4j2 等,這類日誌框架主要作用是配置日誌輸出到控制檯,文件,發佈到

原创 Spring cloud gateway + JWT時Netty限制header大小導致請求bad Request問題解決

寫得比較匆忙,本文主要以整體微服務架構簡述開頭,按照問題排查過程敘述,加以springboot啓動源碼淺析和解決辦法。 如有錯誤請指正 先說版本Spring boot 2.0.4。Spring cloud F版 jdk1.8   我們目前

原创 JAVA基礎 之 Thread的6種狀態

最近太忙,好久沒更新了,上次寫的是Tread源碼分析,這次再補上一個關於線程的幾種狀態吧。   線程狀態在Thread的源碼中有一個子枚舉state。裏面定義了6種狀態:   1,NEW 當我們新建一個線程對象時,此時線程是屬於這個狀態的

原创 Redis實現接口冪等

最近自己在做一套spring開發腳手架,期間做了一個冪等工具。今天分享一下吧。也請大家給提提意見。看看有哪些問題。   實現思路大概就是一個聲明式的方式,通過註解進入切面,實現對目標方法的環切。利用redis的單線程特性。實現接口冪等。

原创 K8s基礎概念

最近在做新的系統架構,使用了比較新的容器技術K8s來做一整套分佈式系統架構。今天來記錄一下K8s的一些基礎概念。純憑記憶,如有錯誤請指正。   什麼是K8s   網上能看到的就不說了,說一些我理解的。 K8s是一套google開源的利用容

原创 疫情來襲,spring cloud 實現IDEA內debug的多地協同聯調

最近疫情嚴重,互聯網公司紛紛開啓了遠程辦公模式。我們公司微服務架構,每個人負責一個項目,大家平時都在一個網絡環境內,註冊到nacos使用默認模式,直接註冊的應用程序的主機ip。但是現在遠程辦公,大家網絡環境不一樣,大家內網無法互相

原创 溫故知新,redis集羣複習

之前部署redis以及搞分佈式鎖開發,又把redis集羣給學習了一遍。今天來記錄一下筆記。   集羣定義   redis集羣是一個提供多個redis實例間共享數據的程序集。   集羣優勢   一臺redis能夠提供的存儲能力是有限的,並且

原创 spring事務的迷惑大坑

今天想分享的內容是關於spring事務的。標題雖然說的是spring的大坑,但其實還是使用者的問題。簡述一下問題吧。   今天開發有個無法解決的bug,說是同一個功能在local/dev/qa都沒事,上到uat就請求很慢並且會導致其他功能

原创 淺析tomcat調優

基礎:每個進入到tomcat的請求,都會創建一個新線程來處理。   幾個關鍵參數 max threads 最大線程數,指的是tomcat可以接受的最大請求數,默認200   acceptcount  隊列最大數,指當請求數達到max th

原创 關於HTTP的幾個問題

1.長連接和短連接 短連接:當發送http時先建立tcp連接,請求結束後,tcp連接斷開。http1.0默認使用短鏈接。 長鏈接:http 1.1開始header里加入connection:keep-alive參數,使http請求結束後,

原创 來選擇一個適合你的分佈式ID生成方案吧

在分佈式環境中,由於多負載,高併發等原因,很多業務都需要分佈式ID生成器來生成他們的唯一ID,其實方案有很多,今天就結合我們自己使用和了解過的幾種方案來記錄一下。希望多你也有幫助。 UUID UUID是我們很常見的一個ID方案,理論上唯一

原创 mysql索引的數據結構

之前寫過一個關於數據庫索引的博客,今天繼續說一下關於索引的幾種類型。 如果使用navicat建立過索引的應該都知道,他會給你一個選項,選擇是建立hash還是b+tree類型的。 那麼他們到底有什麼不同呢。其實這得從數據結構說起。 hash

原创 maven編譯後參數名變var1...

想直接看解決方案的可以直接看最後。 事件起因 最近在做gradle項目遷移到maven,原因是我們使用jenkins做自動化CICD,CI 時會先從gitlab拉取源代碼進行編譯,由於我們編譯使用的gradle是打包成鏡像,以do

原创 微服務整合J2cache並改造使用

我們的微服務架構中,存在一個單獨的基礎數據中心,存放了各個服務、頁面、app端的所需要的基礎數據信息。這些數據的特點就是不易變,查詢量大;最適合的場景就是進行緩存。經過一番商討,決定使用J2Cache二級緩存。   整個緩存架構過程: