原创 JedisSentinelPool源碼總結

該類在初始化的時候,會將監視redis主從的sentinels放入一個list。 遍歷該list,向sentinel發送一個命令:獲取指定masterName的地址,而且只要有一個sentinel響應就終止循環。 根據上面獲取的

原创 應用線程數過高及生產問題的排查:ThreadPoolExecutor

因爲最近支付系統總是報錯無法創建新的線程導致交易失敗,領導很重視。查看linux對用戶的限制(ulimit -a),發現文件句柄和線程數的大小限制在1024,而通過查看應用實時線程發現數量超過了1100+(pstree -p `ps -e

原创 java NIO複製文件總結 最快的兩種方法

普通複製方法就不總結。 第一種:FileChanel.transferTo(0, size, out) 第二種:Files.copy(source, out) 兩種都是NIO包下類。 第一種使用方法: public static vo

原创 IO與NIO常用JAVA寫API的用法和速度對比

最近把IO和NIO相關文檔複習了下,抽空作下總結。 1,常用API的用法,這裏只考慮寫操作,讀操作下次專門寫。 2,API之間的效率,及系統相關影響。 3,模擬最常用的寫字符文件。 4,對比兩類大小的文件:100M和1G。 5,儘量排除字

原创 一次GC線程佔用系統CPU過高處理過程

因爲測試人員報告說,最近訂單系統總是超時,要重啓才能恢復正常,但是第二次復現的時間不固定。 然後先是查看下應用狀態是否正常,沒有問題。 然後查看日誌,發現有很多交易報超時。 仔細查看超時的日誌,發現什麼類型的交易都有,而且超時的地方也不

原创 oracle表空間不足,相關查詢和處理

今天用PL SQL Developer往oracle數據庫中導入數據時,突然報錯,只能終止,錯誤的具體內容如下:ORA-01653: unable to extend table BOSDATA.KSYS_RWYXRZ by 128 in

原创 redis-4.0.11的配置說明

參考了文檔和別人的解釋,有很多功能沒用到,以及解釋的不購詳細。 ---------------------------------------------------------------------------------------

原创 用sentinel作Redis集羣,總結下自己遇到的坑,以及探討下改如何設置哨兵模式。

先寫總結 1.sentinel 的配置文件要配置master的密碼:sentinel auth-pass mymaster phFUND_linux_redis。 2.爲了主從能自由切換請給主從都配置好密碼,而且要設置相同的密碼(完成切換

原创 java實現異步轉同步

由於工作中會用到多個子線程需要同步的問題,所以瞭解到一個類: CountDownLatch 這個類內部有計數器,當計數器爲0時纔會執行下一步操作。這個計數值就是你需要同步的步驟數,通過構造方法傳入。 案例: public class C