原创 《高併發系統實戰課》學習筆記 day1 精簡數據會有更好的性能 數據的歸類和整理 實體輔助表 實體關係表

任何老系統在做高併發改造的時候都要先做一次表的梳理 因爲老系統在使用數據庫的時候存在很多問題,比如實體表字段過多,表查詢維度和用途多樣,表之間關係混亂,這些問題會讓緩存改造十分困難,嚴重拖慢改造進度。 精簡數據會有更好的性能 用戶中心的主要

原创 《高併發系統實戰課》學習筆記 day2 關係型和統計型數據緩存刷新

緩存一致:讀多寫少時,如何解決數據更新緩存不同步。 對數據進行歸類整理,讓系統的數據更容易做緩存。爲了降低數據庫的壓力,需要逐步對你係統增加緩存。 做緩存需要考慮性價比,一般來說只有熱點數據放到緩存才更有價值。 臨時熱緩存,就是當數據第一次

原创 99 MySQL性能實戰優化 mysql 性能優化 MySQL分表分庫

mysql 性能優化 一 MySQL架構與執行流程原理 二 MySQL 索引底層實現原理 三 MYSQL事務底層原理 四 MYSQLUndo 日誌底層原理 五 MySQL實戰性能優化 MySQL分表分庫 一 單表達到多大量開始分表分庫

原创 103 漏桶算法

漏桶算法實現原理: 漏桶算法: 請求先進入到漏桶裏,漏桶以一定的速度出水,當水流速度過大或者漏桶已滿會直接溢,然後就拒絕請求,可以看出漏桶算法能強行限制數據的傳輸速率。 固定窗口計數器算法實現原理 1,規定我們單位時間處理的請求數量。例

原创 33 Nacos 的集羣部署

nacos幫我們做的事情註冊中心,分佈式配置中心 註冊中心 沒有必要將數據持久後到數據庫中,可以持久到本地硬盤。 分佈式配置中心 默認是將數據持久化到本地嵌入式的數據庫改爲持久化到mysql 僞集羣: 127.0.0..1:8848 12

原创 9 mysql根據逗號將一行數據拆分成多行數據

1、原始數據演示 處理結果演示 sql語句 SELECT a.id, a. NAME, substring_index( substring_index( a.shareh

原创 16 RabbitMQ怎麼保證投遞消息不丟失

RabbitMQ一般情況下很少丟失,但是不能排除意外,爲了保證我們自己的系統高可用,我們必須做好完善的措施,保證系統的穩定性。 1,消息持久化 2,ACK確認機制 3,設置集羣鏡像模式 4,消息補償機制 第一種: 消息持久

原创 11 jvm 問題

1,說下jvm 運行時數據區? 不同虛擬機的運行時數據區可能略微有所不同,但都會遵從java 虛擬機規範,java 虛擬機規範規定的區域分爲以下5個部分: 程序計數器: 當前線程所執行的字節碼的行號指示器,字節碼解析器的工作是通過改變這個計

原创 20 btree和b+tree的區別

btree 是爲了磁盤或其他存儲設備而設計的一種多叉平衡樹(相當於二叉,btree每個內節點有多個分支,即多叉),而b+tree是btree的一個變種,是b+tree在數據庫中的一個實現,是常見的也是數據庫中使用最爲頻繁的一種索引。 btr

原创 19 ReentrantLock如何實現鎖重入

一個線程持有鎖時,當其他的線程嘗試獲取該鎖時,會被阻塞;而這個線程嘗試獲取自己持有鎖時,如果成功說明鎖是可以重入的,反之則不可重入。 ReentrantLock使用內部類的Sync來管理鎖,所以真正的獲取鎖是由Sync的實現類來控制的。Sy

原创 18 樂觀鎖與悲觀鎖的區別

樂觀鎖和悲觀鎖都是用於解決併發場景下的數據競爭問題,但是卻是2種不同的思想。他們的使用非常的廣泛,也不侷限於某種語言或者數據庫。 樂觀鎖的概念: 樂觀鎖指的是在操作數據的時候非常的樂觀,樂觀的認爲被人不會同時修改數據,因此樂觀鎖默認不會上鎖

原创 8 mysql Hash索引和BTree索引區別

Hash僅支持=、>、>=、<、<=、between。BTree可以支持like模糊查詢 索引是幫助mysql獲取數據的數據結構。最常見的索引是Btree索引和Hash索引。 不同的引擎對於索引有不同的支持:Innodb和MyISAM默

原创 17 自旋鎖和自適應自旋鎖有什麼區別

自旋鎖的概念: 阻塞或喚醒一個java線程需要操作系統切換cpu狀態來完成,這種狀態裝換需要耗費處理器的時間。如果同步代碼塊中的內容過於簡單,狀態轉換消耗的時間有可能比用戶執行代碼的時間還要長。 在許多場景下,同步資源的鎖定時間較

原创 佛語:渡己才能渡人

佛說:每個人都是自己的菩提,渡己才能渡人。人生只不過是一場旅行,你我終將是這個旅途的過客,沒有遙遠的救世主,凡事要靠自己,渡人者自渡之,自渡者天渡之。人生只不過是一場經歷,你我都是在渡人,渡心,最後渡自己。 生命就像一條無盡的長河,你是過

原创 26 eureka問題彙總

一 Eureka 服務器端服務剔除 1,Eureka 服務保護機制是如何實現的 Eureka是在Java語言上,基於Restful API開發的服務註冊與發現組件,由Netflix開源。Eureka遵循AP原則。目前Eureka僅開源到1.