原创 線程池ThreadPoolExecutor源碼分析
1.線程池的作用 一方面當執行大量異步任務時候線程池能夠提供較好的性能,在不使用線程池的時候,每當需要執行異步任務時候是直接 new 一線程進行運行,而線程的創建和銷燬是需要開銷的。使用線程池時候,線程池裏面的線程是可複用的,不會每次執行
原创 Docker 創建本地倉庫registry
搭建docker私有倉庫也是通過docker,真是就地取材。 1、首先下載registry鏡像 docker pull registry 2、啓動registry鏡像的容器 docker run -d -p 5000:5000 -v
原创 關於Java的JVM的知識彙總
1、java 進程總內存: Perm區:加載class字節碼的內存大小,參數:-XX:MaxPermSize。 java堆內存:參數-Xms、-Xmx設置。 本地內存:是一些本地方法,如JNI等。內存是除去Perm區和java堆內存剩下
原创 關於日誌死鎖的問題(copy其他博客)
使用logback會產生的死鎖問題(轉) 案例一: 在sn遇到的生產線上日誌死鎖問題:  發現有大量的線程都出現等待日誌鎖, 從業務邏輯講:這就解釋了爲什麼從redis獲取的值消耗了最高49秒的時長,,也就解釋了在等待鎖的同時,
原创 Spring 源碼個人淺淺分析(6)--- 功能可擴展之屬性註冊編輯器ResourceEditorRegistrar
ApplicationContext包含了BeanFactory的所有功能,並且對此也擴展了很多功能。 在方法ObtainFreshBeanFactory中,基本已經解析並註冊了所有xml中的bean,且可以對bean的獲取以及基本使用
原创 mybatis的一級、二級緩存
mybatis的一級緩存和二級緩存 mybatis 的一級緩存:sqlsession 級別的,內部維護的其實就是Map,其緩存對象是PerpetualCache。 1、MyBatis的一級緩存是SqlSession級別的,但是它並
原创 Spring 源碼個人淺淺分析(7)--- BeanFactoryPostProcessor
BeanFactoryPostProcessor是在bean實例化前,可以對其bean的操作,和BeanPostProcessor類似,可以對bean的定義(配置元數據)進行處理,並且可以配置多個BeanFactoryPostProces
原创 spring 源碼個人淺淺分析(4)--- bean生命週期之InstantiationAwarePostProcessor、BeanPostProcessor
Bean生命週期之InstantiationAwarePostProcessor、BeanPostProcessor, 且這兩個接口可以給用戶來擴展。 package org.springframework.beans.factory.
原创 spring 源碼個人淺淺分析(3)---循環依賴
spring中循環依賴(循環引用)的解決 循環依賴就是循環引用,兩個或以上的bean互相之間引用,比如A引用B,B又引用A,最終變成了一個環。 Spring中如何解決循環依賴 spring容器循環依賴包括構造器循環依賴和setter循環依
原创 spring 源碼個人淺淺分析(5)--- bean生命週期之BeanNameAware、BeanFactoryAware、InitializingBean
Bean生命週期之BeanNameAware、BeanFactoryAware、InitializingBean 在源碼AbstractAutowireCapableBeanFactory的創建bean方法doCreate方法中。 be
原创 spring 源碼個人淺淺分析(2)
MethodOverrides方法的覆蓋源碼分析 如下xml配置: 抽象類GetBeanTest代碼: package springSourseAnalyes; public abstract class GetBeanTest
原创 spring 源碼簡單分析之FactoryBean
FactoryBean的使用 在一般的情況下,spring通過反射機制利用bean的class屬性指定實現類來實例化bean。在某些情況下,實例化bean比較複雜,按照傳統的方式,則需要在<bean>中提供大量的配置信息,配置方
原创 openresty 中使用lua 的類庫 lua-resty-lock,來實現異步非阻塞鎖
LuaRestyLock:緩存失效風暴 看下下面的僞代碼: 看上去沒有什麼問題,但是在進行壓力測試的時候,會發現,每隔100秒,數據庫的查詢就會出現一次峯值。如果你的cache失效時間設置的過長,那麼這個問題就會發現的概率比較小。 想象
原创 openresty 中lua 操作mysql
lua在mysql的中操作使用 lua-resty-mysql是爲基於cosocket API的ngx_lua提供的Lua Mysql客戶端,通過它可以完成Mysql的操作。默認安裝OpenResty時已經自帶了該模塊,使用文檔可參考ht
原创 openresty 中lua操作http請求
在lua中操作http請求有兩種方式 第一種方式:使用通過ngx.location.capture 去方式實現,但是有一些限制 第二種方式:因爲openresty默認沒有引入第三方http 客戶端類庫lua-resty-http,需要下載