原创 【問題經驗】請求頭Accept-Language:*導致freemarker異常 NegativeArraySizeException

1 現象      現象很簡單,日誌裏不停打印異常,請求url很普通就是首頁,拋出異常是NegativeArraySizeException Caused by: org.springframework.context.Applicat

原创 java原生SPI機制詳解

什麼是SPI         軟件很大程度是真實世界的反映,思想、模式都能在真實事物找到影子。這不難理解,因爲不管是真實事物還是軟件都是由人類創造,都是朝着高效、低成本方向發展,難免相互借鑑。SPI也是如此,SPI全稱Service Pr

原创 【問題經驗】Http請求返回大對象導致頻繁GC

        項目上線了一個活動,性能壓測中某個接口表現不理想。我們是在預發機器壓測,預發機器條件不好,不過也不至於壓出大量的Error,平均響應時間超過9s。         走讀代碼,並未發現任何問題。該接口用到內存作爲緩存。sch

原创 @Repeatable詳解-getAnnotation、getDeclaredAnnotation獲取不到對象

1 @Repeatable      jdk8之前不存在可重複註解,即一個註解不能出現在同一個元素(Class、Method、Constructor、Field)2次以上。下面的寫法是被禁止的: // @ComponentScan重複使

原创 nginx內部重定向(X-Accel-Redirect)在商務合作定製開發中應用

X-Accel-Redirect     這篇博客來源於團隊最近的項目方案。團隊最近接了一些合作項目,合作項目免不了要加密/解密、加簽/解籤來保證基本的信息安全。以前,業務團隊是有一套標準的算法供合作方接入,不過難免有些合作項目要按對方的

原创 Spring擴展之ServletContainerInitializer

1 介紹        嚴格講ServletContainerInitializer(javax.servlet.ServletContainerInitializer)不是Spring的擴展點,而是web容器(jetty、tomcat)

原创 java8 雙冒號(::)使用方法

    雙冒號(::)運算符是跟函數式接口相關的運算符,作爲函數式接口的賦值操作。 雙冒號用於靜態方法    使用方法:將類的靜態方法賦值給一個函數式接口,靜態方法的參數個數、類型要跟函數式的接口一致。調用這個函數式接口就相當於調用靜態方

原创 【問題經驗】dubbo回聲測試異常(NumberFormatException:null)

現象      在用dubbo回聲測試機制做回聲測試時返回異常信息"NumberFormatException:null" cause: org.apache.dubbo.remoting.RemotingException: java

原创 【問題經驗】gradle工程管理小問題 classesDir leftShift()

問題1 leftShift()即<<  Could not find method leftShift() for arguments [build_1jsajiosgzv6935q73q7xiumz$_run_closure9$_clo

原创 【問題經驗】NullPointerException異常堆棧不打印

       最近在項目中遇到一個現象,系統拋出NullPointerException。正常情況,這種問題非常好定位,根據調用棧看看是哪一行空指針就好。 不過這次比較詭異,跑異常的地方沒有打出堆棧。 "java.lang.NullPoi

原创 內存分析工具(MAT)介紹(一)-入門

  MAT即Memory Analyse Tool 是java內存分析的利器。基於這個工具,我們可以分析定位很多疑難問題。鑑於這個工具實用性非常強,介紹一下該工具的使用。 MAT使用場景   MAT主要就是用來分析內存的問題,下面

原创 ForkJoin框架詳解 一張圖搞明白工作竊取(work-stealing)機制

1 ForkJoin框架  1.1 ForkJoin框架 ForkJoinPool一種ExecutorService的實現,運行ForkJoinTask任務。ForkJoinPool區別於其它ExecutorService,主要是因爲它採

原创 【問題經驗】瀏覽器(chrome)發1次請求,服務端卻收到2次請求

遇到一個奇怪的現象:chrome瀏覽器只發出1次請求,系統卻收到2次 首先確定是不是確實只發了1次請求,我打開chrome的調試功能,"Network"裏面看到的確實只有一次請求; 其次懷疑是不是網絡中間環節的重試,可是問題是必現,不太像

原创 併發-CountedCompleter詳解

    CountedCompleter是ForkJoinTask的的子類,對ForkJoinTask做了一下擴展     CountedCompleter有以下特點: CountedCompleter維護兩個動作:完成動作(onCom

原创 【問題經驗】記一次Dubbo泛化調用踩坑-zookeeper臨時節點暴增

現象      使用dubbo的開發者對dubbo泛化調用肯定不陌生。我們在定時任務管理場景中使用dubbo的泛化調用(泛化調用dubbo接口)。一次,同事在測試環境配置定時任務 10s執行一次,但是配置的接口並沒有提供者。過不多久,zo