原创 定時任務的冪等性

分佈式集羣下如何保證定時任務的冪等性(只有一個執行) 1. 採用分佈式鎖 2. 將業務代碼與定時任務分開在不同的jar 3.通過啓動參數 設置定時任務開關 :-DRunOrderExpire=true 控制當前Jar任務是否執行

原创 源碼分析----Lock鎖

總結先寫前面: 後面留給你去驗證 在AQS當中: 主要有五個值得關注的點: private volatile int state; 鎖狀態的標誌位0 爲沒有上鎖。大於0 表示 加鎖 值標識鎖重入的次數。 cas原子操作 保證了交

原创 Netty-ByteBuf 詳解

Java 中基本類型所佔的字節數 byte 1字節 short 2字節 int 4字節 long 8字節

原创 ZkClient

package com.crown.simple; import org.I0Itec.zkclient.ZkClient; import org.junit.Test; import java.util.List; impo

原创 在Jar文件中讀取靜態資源

Resource resource = new ClassPathResource(PDFConfig.watermark); byte[] buffer = FileCopyUtils.copyToByteArray(resource

原创 不得不提HttpMessageConverter

HttpMessageConverter HttpMessageConverter 是一個Spring的重要的接口,它負責將請求信息轉化爲一個類型T,或者將對象T輸出爲響應信息。 RequestMappingHandlerAdap

原创 Redis的內存管理 -- 內存淘汰

Redis 緩存的淘汰策略 給Redis設置一些字節大小去限制內存使用,當Redis達到所設置的內存大小,redis將會刪除一些Key,根據所制定的內存淘汰策略。 如果Redis不能刪除key根據所給的策略,或者如果當前的淘汰策略

原创 SpringBoot自定義線程池執行異步任務

第一步註冊線程池 @Bean("taskExecutor") public Executor taskExecutor() { ThreadPoolTaskExecutor executor = new

原创 一文詳解ThreadLocal 使用場景,源碼分析,內存泄漏分析

ThreadLocal 使用場景: 場景1. ThreadLocal用作保存每個線程獨享的對象,爲每個線程都創建一個副本,修改時只是對自己副本的操作,確保線程安全。典型的需要使用的類就是 SimpleDateFormat。 場景2

原创 Redis 訂單超時

redis.conf中對於Key的事件監聽的說明。 ############################# EVENT NOTIFICATION ############################## # Redis

原创 Java 中的反射

反射 簡單來說反射就是運行時獲取,檢測和調用對象的屬性和方法 tips:Java的反射的方法很多,有個小技巧就是帶有Declared的方法都是可以訪問到非public的。 反射的基本使用 如何獲取一個類的Class對象 Clas

原创 NIO_網絡編程

NIO_網絡編程的全部的全部 package com.clown.netty.nio.NioNetSocket; import io.netty.channel.unix.IovArray; import java.io.I

原创 Spring的循環引用

Spring的循環引用 實力有限,如有勘誤,請指出 1.Spring中的三級緩存 在創建Bean的過程中,Spring 會先去單例緩存中查找Bean是否已經被創建。 @Nullable protected Object get

原创 RabbitMq_Producer 詳解

package com.clown.message; import com.rabbitmq.client.*; import org.junit.Test; public class MqTest { public

原创 Nio之ByteBuffer

Buffer 類中幾個重要的變量 capacity就是Buffer它所能存放元素的個數。在Buffer創建的時候就已經確定了。 limit JDK中的介紹是不能讀或者寫的第一個元素的下標索引。它不會爲負數,或者超過capacit