原创 線程池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,需要下載