原创 InnoDB 行格式(ROW_FORMAT)

InnoDB表的數據存儲在頁(page)中,每個頁可以存放多條記錄。這些頁以樹形結構組織,這顆樹稱爲B樹索引。表中數據和輔助索引都是使用B+樹結構。維護表中所有數據的這顆B+樹索引稱爲聚簇索引,通過主鍵來組織的。聚簇索引的葉子節點包含行中

原创 java序列化的安全問題

如果一個函數或者對象,不管它位於多麼遙遠的地方,都可以在本地直接被調用,那該有多好 呀!這是一個非常樸素、美好的想法。基於這個設想,誕生了很多偉大的技術和協議,比如遠程 過程調用(RPC)、遠程方法調用(RMI)、分佈式對象(Dist

原创 innodb 在 compact行格式下varchar類型的存儲

varchar 類型的大小有三部分組成: 1變長列表的大小(最大2個字節) 2如果允許空值則需要在null值列表中佔用一位,而且null值列表的必須爲整數字節所以必須爲一個字節,如果不允許爲null,這一部分爲空 3實際數據大小 下面在c

原创 bash中的數學運算

#!/bin/bash read -p "input a number:" num expr $num + 1 &> /dev/null if [ $? -eq 0 ];then     if [ `expr $num \> 0` -eq

原创 shell 中的變量的替換和刪除

從左到右 ${var#str} 講var變量中匹配到的以str開頭的第一次匹配到的刪除 ${var##str} 講var變量中匹配到的以str開頭的最後一次一次匹配到的刪除 從右到左 ${var%str} 講var變量中匹配到的以str開

原创 git 中存儲對象的類型

1 tree 2commit 3 blob 每個 commit 對應一棵樹就是一個tree 但是每一棵樹可以對應多棵樹和多個blob。我們可以簡單的認爲一個屬代表一個文件夾一個blob代表一個文件 同時blob既然是文件在git中被標示不

原创 git 的備份

1 啞協議/path/repo.git 2智能協議file:///path/repo.git 這兩個協議都是本地的協議   https和http協議htttp(s)://gitserver:port/path/repo.git http和

原创 git config 的三種範圍

--global 是當前用戶的 --system 是整個系統的 --local是 當前項目的 可以從三個config文件的位子來推測和辨別 當你設置了--global的話在/home/${USER}/.gitconfig的文件 當你設置了

原创 git 中HEAD的理解

當HEAD指向某一個分支的時候那麼就是說我們在某個分支的 某個分支實質上也是指向某個commit 如果HEAD 直接指向某個commit此時處於分離頭指針的狀態。如果我們在這個狀態下做了更改然後我們切換分支然而我們忘記將這個沒有屬於任何分

原创 git 中的存儲模型

我們之前提到在git中有三種存儲對象 1 commit 2 tree 3 blob 一個commit對應一個tree。一個tree對應於多個tree和多個blob。一個blob對應於一個文件文件內容相同就是同一個blob 那麼git是怎麼

原创 四種監控方式

四種方式 Logging Tracing Metrics HealthCheck 1 研發成本來說 Logging 比較低 Metrics 一般 Tracing比較高 2 運維成本來說 Logging 比較高 3 相應能力來 Metric

原创 Prometheus 架構設計

Prometheus 的架構設計圖 通過prometheus的架構圖可以看出,prometheus提供了本地存儲,即tsdb時序數據庫。本地存儲的優勢就是運維簡單,缺點就是無法海量的metrics持久化和數據存在丟失的風險,我們在實際使

原创 Prometheus 簡介

1 開源監控工具 2 時間序列數據庫(TSDB) 3 多維度拉模式 4白盒和黑盒監控都可以做到 5專注Metrics 和 Alert 6 單機性能較好 7 網站 htttps://prometheus.io/ 什麼是時序數據庫 就是一系列

原创 FTP 服務介紹

ftp 協議 1 主動模式 被動模式 ftp 不支持帶外數據所以需要命令鏈路和數據鏈路 命令鏈路一般是21端口 數據鏈路分爲主動模式和被動模式  1 主動模式就是服務器主動的向客戶端發起一個數據連接請求。可能出現的問題是客戶端所在的主機的

原创 Tomcat系統架(上): 連接器是如何設計的?

Tomcat 要實現 2 個核心功能:  Tomcat 設計了兩個核心組件連接器(Connector)和容器(Container)來分別做這兩件事情。連接器負責對外交流,容器負責內部處理。 所以連接器和容器可以說是 Tomcat 架構裏最