原创 雪花算法生成id -- Snowflak 。簡易實用

廢話不多說,代碼走起。 import java.lang.management.ManagementFactory; import java.net.InetAddress; import java.net.NetworkInterfa

原创 主線程控制子線程運行完成

 主線程控制10個子線程運行完成後,輸出,主要用到的知識點countDownLunch  代碼簡易實現如下 :   public static void main(String[] args) throws Exception {

原创 OOM排查與定位

某Java服務(假設PID=19813)出現了OOM,最常見的原因爲: 有可能是內存分配確實過小,而正常業務使用了大量內存 某一個對象被頻繁申請,卻沒有釋放,內存不斷泄漏,導致內存耗盡 某一個資源被頻繁申請,系統資源耗盡,例如:不斷創建線

原创 多線程生產者、消費者模式中,如何停止消費者

多線程生產者、消費者模式中,如何停止消費者 ?多生產者情況下對“毒丸”策略的應用 生產者、消費者模式是多線程中的經典問題。通過中間的緩衝隊列,使得生產者和消費者的速度可以相互調節。 發散:一個主線程控制多個子線程,多個主線程控制多個子線程

原创 api防刷簡易實現

註解類: import java.lang.annotation.Retention; import java.lang.annotation.Target; import static java.lang.annotation.El

原创 mysql髒讀,幻讀,不可重複讀以及間隙所解決幻讀

1、數據髒讀 事務a修改了某條數據,然後事務b讀取了事務a修改的該條數據,然後事務a由於某些原因,事務a回滾了,這樣事務b讀到的數據就和回滾的數據不同了,這時事務b讀取的數據就是髒數據。概況一句話就是一個事務讀取了另一個事務未提交的數據。

原创 linux文件權限8進制詳解--一看就懂了

使用八進制(0-7)數字表示權限法   [root@moss ~]# ll /etc/passwd -rw-r--r--. 1 root root 2053 9月  19 2017 /etc/passwd 文件權限基本解釋:      

原创 spring統一異常處理的三種方式

第一種:  @ControllerAdvice 註解使用  import com.alibaba.fastjson.JSON; import com.common.constants.ResEnum; import com.common

原创 RequestContextHolder簡析

在Web開發中,service層或者某個工具類中需要獲取到HttpServletRequest對象還是比較常見的。一種方式建一個basiControl , 是將HttpServletRequest作爲方法的參數從controller層一直

原创 推薦 Java 程序員使用 Google Guava 編程

DK提供的String還不夠好麼? Joiner/Splitter CharMatcher Ints Multiset Multiset Code unmodifiable defensive copies

原创 es6的箭頭函數,function* , yeild詳解

var f = v => v*2;  借鑑思路與java8的lamada 表達式類似 ,寫匿名函數。 // 等價於 var f = function(v){   return v*2; } // 判斷偶數 var isEven = n =

原创 nginx緩存防刷簡易思路

線上環境 很多接口 如果不做緩存 可能導致有人拿到url  每秒幾萬次的訪問後臺程序,導致系統down機. 此處, nginx可以加一層緩存.    expires起到控制頁面緩存的作用,合理的配置expires可以減少很多服務器的請求

原创 spring中利用RestTemplate調用REST資源

import org.springframework.beans.factory.annotation.Autowired; import org.

原创 docker安裝及使用阿里雲安裝nginx

阿里雲Docker鏡像倉庫(Docker Registry) 鏡像倉庫申請地址: https://cr.console.aliyun.com/cn-hangzhou/instances/repositories   一、創建命名空間 例如

原创 Cloud中feign異常無法傳遞的問題

重寫feign 全局異常處理方法: 分析:   因爲 cloud內部拋出異常不進行處理,Feign獲取spring默認包裝異常結果如下:   { "timestamp": "2017-12-27 15:01:53", "statu