https://github.com/google/guava
源碼包的簡單說明:
com.google.common.annotations:普通註解類型。
com.google.common.base:基本工具類庫和接口。
com.google.common.cache:緩存工具包,非常簡單易用且功能強大的JVM內緩存。
com.google.common.collect:帶泛型的集合接口擴展和實現,以及工具類,這裏你會發現很多好玩的集合。
com.google.common.eventbus:發佈訂閱風格的事件總線。
com.google.common.hash: 哈希工具包。
com.google.common.io:I/O工具包。
com.google.common.math:原始算術類型和超大數的運算工具包。
com.google.common.net:網絡工具包。
com.google.common.primitives:八種原始類型和無符號類型的靜態工具包。
com.google.common.reflect:反射工具包。
com.google.common.util.concurrent:多線程工具包。
1. Guava 中的一致性哈希
com/google/common/hash/Hashing.consistentHash(HashCode hashCode, int buckets)
2. GUAVA STOPWATCH源碼解析,主要用於性能監控,耗時打印
com/google/common/base/Stopwatch.java
3. 實戰限流(guava的RateLimiter)
常用的限流算法有漏桶算法和令牌桶算法,guava的RateLimiter使用的是令牌桶算法,也就是以固定的頻率向桶中放入令牌,例如一秒鐘10枚令牌,實際業務在每次響應請求之前都從桶中獲取令牌,只有取到令牌的請求才會被成功響應,獲取的方式有兩種:阻塞等待令牌或者取不到立即返回失敗
4. 布隆過濾器
在Google Guava library中Google爲我們提供了一個布隆過濾器的實現:com.google.common.hash.BloomFilter。在正式使用之前我們先了解一下什麼是布隆過濾器。