原创 香一下子

一年了 ,希望自己不要沒事就emo了,工作生活平衡一下子。

原创 記錄一下copy我博客的地址(捂臉)

背景 今天又需要基於Spring擴展點做些事情,來看看自己之前記錄的博客,好奇百度頁面搜索了下看看能不能搜出我的文章,發現了熟悉的字眼和圖片,發現完全就是自己的.... 有的粘貼了我的地址,有的沒有。。有的甚至是同一天,是啥腳本扒拉的嘛。。

原创 開源框架是如何使用設計模式的-MyBatis緩存機制之裝飾者模式

寫在前面 聊一聊MyBatis是如何使用裝飾者模式的,順便回顧下緩存的相關知識,可以看看右側目錄一覽內容概述。 裝飾者模式 這裏就不了它的概念了,總結下就是套娃。利用組合的方式將裝飾器組合進來,增強共同的抽象方法(與代理很類似但是又更靈活)

原创 Java基礎內容彙總[持續更新]

彙總什麼? 用於筆者日常筆記彙總,工作一段時間了,也看了一些源碼,技術廣度、深度都有點半桶水味道了,重頭拾起當初的知識點~。很多東西不做記錄且長時間不回憶不使用就容易忘記,與其到處搜索不如彙總一處。 (2021/07/08 記) 本文不會記

原创 Elasticsearch內容彙總[持續更新]

一、Elasticsearch技術簡介 Elastic本身也是一個分佈式存儲系統,如同其他分佈式系統一樣,我們經常關注的一些特性如下。 數據可靠性:通過分片副本和事務日誌機制保障數據安全 服務可用性:在可用性和一致性的取捨方面,默認情況下

原创 利用JVM鉤子函數優雅關閉線程池

一、如何優雅關閉線程池 核心API: shutDown shutDownNow awaitTermination 利用JVM鉤子函數,在虛擬機關閉時調用相關方法即”優雅關閉線程池”。 先通過shutdown等待線程池自身結束,然後等待一

原创 深入源碼理解SpringBean生命週期

概述 本文描述下Spring的實例化、初始化、銷燬,整個SpringBean生命週期,聊一聊BeanPostProcessor的回調時機、Aware方法的回調時機、初始化方法的回調及其順序、銷燬方法的回調及其順序、重要的BeanPostPr

原创 聊聊消息隊列高性能的祕密——零拷貝技術

前言 RocketMQ爲什麼這麼快、Kafka爲什麼這麼快?用了零拷貝技術?什麼是零拷貝技術,它們二者的零拷貝技術有不同嗎? 爲什麼需要零拷貝 在計算機產業中,I/O的速度相較CPU,總是太慢的。SSD硬盤的IOPS可以達到2W、4W,但是

原创 深入理解Apollo核心機制之配置讀取——前言

前言 Apollo是當下較爲火熱的配置中心,顧名思義自然是管理配置的,那麼它是如何獲取配置的呢?本文會簡單介紹相關機制,很多東西自然解釋得不到位,後續會有單獨章節深追源碼看具體實現的。 配置獲取方式 Apollo有兩種方式獲取配置: 1)客

原创 深入理解Apollo核心機制之灰度發佈——創建灰度

概述 ApolloPortal創建灰度後都做了什麼呢?Apollo是如何維護主版本與灰度版本關係的呢? 其實創建灰度非常簡單,可以看到下圖中“Cluster”表結構中的“ParentClusterId”字段。這個就是維護灰度關係的核心。 在

原创 深入理解Apollo核心機制之配置讀取——ConfigService定時掃描

概述 之前我們瞭解了,客戶端會每秒(默認)長輪詢Config Service,等待通知,然後去主動拉取配置文件。本文主要跟進Config Service主動輪詢ReleaseMessage表,並通知對應監聽器的源碼,最終終止客戶端長輪詢的源

原创 深入理解Apollo核心機制之配置讀取——輪詢

前兩篇內容 《深入理解Apollo核心機制之配置讀取——前言》 《深入理解Apollo核心機制之配置讀取——ConfigService定時掃描》 概述 讀取配置除了默認5分鐘間隔去輪詢接口拉取配置,還有客戶端主動長輪詢ConfigServi

原创 深入理解Apollo核心機制之本地緩存——你知道Apollo把你的配置緩存到哪裏了嗎?

入口 ApolloApplicationContextInitializer (它實現了 ApplicationContextInitializer接口,並重寫了initialize方法)。 ApplicationContextInitia

原创 Elasticsearch性能優化彙總——寫入&搜索

概述 本文沉澱Elasticsearch性能優化方式,包含寫入、搜索優化。 推薦結合《Elasticsearch必備原理理解》一起食用~ 一、寫入速度優化 在Elasticsearch的默認設置下,是綜合考慮數據可靠性、搜索實時性、寫入速度

原创 SpringAOP 失效解決方案、Spring事務失效

SpringAOP 失效解決方案   SpringAOP是基於代理來對目標方法進行增強,但是有的時候又會出現“增強無效”的情況,比如在@Transactional下的某類中的方法內調用了該類的另一個方法,這種情況下,事務有時候會出現不生效的