原创 parallelStream、CompletableFuture 使用默認ForkJoinPool.commonPool()線程池的問題

parallelStream和CompletableFuture  默認使用的都是 ForkJoinPool.commonPool() 默認線程池; 基於服務器內核的限制,如果你是八核,每次線程只能起八個,不能自定義線程池; 適用於對li

原创 Kafka 消費者:優雅的退出消費者程序、多線程消費者以及獨立消費者

1. 優雅的退出消費者程序 wakeup()方法是consumer中唯一個可以在多線程中使用的方法。poll方法不會立即響應wakeup方法,並在下次poll調用時會拋出WakeupException package com.bonc.

原创 Kafka Consumer API樣例

Kafka Consumer API樣例 1. 自動確認Offset 說明參照:http://blog.csdn.net/xianzhen376/article/details/51167333 Properties props = n

原创 使用Spring RetryTemplate優雅的進行重試

1、使用場景 在我們與下游通過http進行數據交互時,會約定接口協議,比如:雙方約定返回20000時,可以重新請求獲取正確的結果。 在進行http進行網絡通信時,經常會發生一些網絡層面的異常如:IOException:unexpected

原创 Spring-Test 單元測試使用示例

pom: <spring.version>4.1.8.RELEASE</spring.version> <slf4j.version>1.7.10</slf4j.version> <log4j2.version>2.3</log4j2.

原创 Guava中Lists.partition(List, size) 方法懶劃分/懶分區

Guava中Lists.partition(List, size) 方法懶劃分/懶分區 背景 前幾天有同事使用這個方法,不小心點進去查看源碼,源碼如下,然他通過idea工具debug發現執行完Lists.partition(List, s

原创 回收算法&觸發條件&GC(Allocation Failure)引發的一些JVM知識點梳理

日前查看某個程序的日誌,發現一直在報GC相關的信息,不確定這樣的信息是代表正確還是不正確,所以正好藉此機會再複習下GC相關的內容: 以其中一行爲例來解讀下日誌信息: [GC (Allocation Failure) [ParNew: 3

原创 Sharding-JDBC教程

https://blog.csdn.net/forezp/article/details/94173427 https://blog.csdn.net/forezp/article/details/94174577 https://blo

原创 shardingjdbc之shardingjdbc入門

在上文中,我們講解了分佈式環境下的分庫分表,從概念及案例上分析了何爲分庫分表及其優缺點。 我說分佈式之分庫分表 從本文開始我們一起學習一下如何使用當前比較成熟的分庫分表框架 Sharding-JDBC 實現分庫分表。 什麼是Shardin

原创 面試:HashMap 奪命二十一問

1:HashMap 的數據結構? A:哈希表結構(鏈表散列:數組+鏈表)實現,結合數組和鏈表的優點。當鏈表長度超過 8 時,鏈表轉換爲紅黑樹。 transient Node<K,V>[] table; 2:HashMap 的工作原理?  

原创 mysql自增id超大問題查詢(REPLACE INTO、ON DUPLICATE KEY UPDATE)

引言 小A正在balabala寫代碼呢,DBA小B突然發來了一條消息,“快看看你的用戶特定信息表T,裏面的主鍵,也就是自增id,都到16億了,這纔多久,在這樣下去過不了多久主鍵就要超出範圍了,插入就會失敗,balabala......”

原创 Spring boot中servlet啓動原理

啓動過程及原理 1 spring boot 應用啓動運行run方法 StopWatch stopWatch = new StopWatch(); stopWatch.start(); Configurab

原创 Springboot - web環境的推斷

Web environment 下邊這段話引用自官方文檔 SpringApplication會嘗試幫你創建正確的ApplicationContext,默認情況下會使用AnnotationConfigApplicationContext或者

原创 TCP四次揮手及原因

一、TCP四次揮手 MSL是TCP報文裏面最大生存時間,它是任何報文段被丟棄前在網絡內的最長時間。       第一次揮手:A->B,A向B發出釋放連接請求的報文,其中FIN(終止位) = 1,seq(序列號)=u;在A發送完之後,A的

原创 HashMap的擴容機制---resize() & 死循環的問題

1.8 與1.7 變化較大, http://www.cnblogs.com/RGogoing/p/5285361.html 學習內容: 1.HashMap<K,V>在多線程的情況下出現的死循環現象     當初學Java的時候只是知道Ha