原创 Sentinel嵌入式集羣模式搭建(Nacos)
1.環境準備 1)代碼準備 筆者目前是基於Sentinel-release-1.7的源碼進行測試的,在原sentinel-demo-cluster的基礎上,適配筆者本地的環境進行修改的。源碼地址如下:https:/
原创 InnoDB共享鎖和排它鎖(行鎖類型)
前言: 最怕面試官問到一大堆的鎖概念了,表鎖、頁鎖、行鎖,排它鎖、共享鎖... 有關於鎖的概念實在太多了,而我們在實際使用中使用到的又太少。很少有專門去寫特定類型的鎖實現,一般都是數據庫默認幫我們做了相應的鎖動作。
原创 非Spring環境下的自定義加載配置文件(分層次加載)
前言: 上一篇文章中,我們講了如何在Spring環境下自定義加載配置文件。 畢竟現在Spring開發是一種通用方式,項目中不使用Spring的還真是不多見。 但是有一種情況,就是如果我們開發的是一個通用中間件產
原创 Spring自定義加載配置文件(分層次加載)
前言: Spring會默認加載application.properties文件,我們一般可以將配置寫在此處。這基本可以滿足我們的常用demo項目使用。 但是在實際項目開發中,我們會將配置文件外置,這樣在我們需要修改配置的時
原创 Spring優雅關閉之:ShutDownHook
前言: 又是一個之前沒關注過的課題,發現學習Spring官方文檔還是有用的,一個個的知識點不斷冒出來。 意外的發現朱小廝https://blog.csdn.net/u013256816/ 大神也是CSDN重度患者,哈哈,向
原创 線程之UncaughtExceptionHandler的應用
前言: 看源碼好處多多,尤其是優秀的框架源碼,受益無窮。 日常CRUD的工作實在無聊,把CRUD的代碼寫一萬遍也沒法提高個人的層級。 業務的瘋狂增長確實能增長個人的技能,因爲需要不斷思考優化方案,不斷去升級(硬件、
原创 序列化與反序列化的那些事
前言: 昨天開始構思要寫一篇文章來說明一下序列化與反序列化。 因爲看到zookeeper的自定義序列化Jute,而且還自定義了通信協議。 之前感覺這些都我來說都是很牛逼的存在,從來沒想過要做這些東西,但是仔細一想,
原创 Curator的簡單封裝使用
前言: 閒來無事,想起把zookeeper的相關知識再補充一下。作爲中間件部門的成員,與zookeeper打交道的機會還是很多的。目前市面上的很多產品,尤其是分佈式相關的,基本都會用上zookeeper。 本文不是一篇介紹
原创 分佈式調度框架elasticJob對Curator的使用解析
前言: 由於公司使用到elasticJob作爲分佈式調度框架的基礎,所以也多多少少研究了一下這個框架。 任務調度的框架有很多,單機情況下我們可以用Quartz,但是分佈式調度的情況下,Quartz就無能爲力了,這個時候分佈
原创 MySQL日誌文件解析(查詢日誌、錯誤日誌、慢查詢日誌)
前言: MySQL的日誌文件詳細記錄了數據庫在運行時的各種活動軌跡。 MySQL通常包含以下日誌文件:查詢日誌;錯誤日誌;慢查詢日誌;二進制日誌。 通過這些日誌文件,我們對MySQL的運行時錯誤進行分析,對慢查詢s
原创 Sentinel源碼-線程池的使用
前言: 有好長一段時間沒有寫博客了,思來想去,懶是主要的原因,另外一方面筆者在年初換了工作,適應工作還是花了蠻長一段時間的,還有就是,沒找到一個合適的主題、系列來寫。 之前寫的很多對個人的成長還是比較有益的,起碼現在在看源
原创 Sentinel源碼-多線程併發N種同步方式
前言: 上文講了Sentinel在線程池使用方面的經驗。 既然有了多線程任務執行,那麼就會存在併發問題,當出現併發問題時,解決方案無外乎加鎖。 Sentinel中也有很多解決併發問題的方案,跟着筆者來看看吧。
原创 記一次dump內存快照並分析對象數據的過程
前言: 之前在產線環境有一個問題需要分析下,所以dump了下內存快照,並運用工具分析了下其中的某對象屬性信息。由於產線環境不能連接外網,所以無法截屏,也沒法將文章整理出來。 所以筆者就選擇在本地把整個過程在本地環境再復現下
原创 InnoDB多版本控制
概念: 多版本控制:MVCC,也就是一致性非鎖定讀的具體實現方式。 具體實現方式爲:如果讀取的行正在執行排他鎖類操作(update、delete等),該查詢則不會等待鎖的釋放,而是讀取該行的一個快照數據。 問題
原创 redo log與undo log
前言: 這一對難兄難弟配在一起,面試的時候聊起來不要太嗨。估計面試者直接就死在這了。對MySQL的瞭解越多,越發現想很清晰的聊明白這兩個之間的區別和聯繫就越難。 本着寫博客讓自己更清晰的角度,還是要記錄一下筆者對他們的理解