原创 RPC的使用和原理

使用 grpc thrift 原理 RPC 框架負責屏蔽底層的傳輸方式(TCP 或者 UDP)、序列化方式(XML/Json/ 二進制)和通信細節 服務調用者可以像調用本地接口一樣調用遠程的服務提供者,而不需要關心底層通信細節

原创 kubernetes Pod

設計理念 Pod 是一個邏輯單位 Kubernetes 真正處理的其實是一組共享了某些資源的的容器 共享network,volume, IPC, UTS等namespace 如果說容器是進程,那麼pod就是進程組 在一個

原创 kubernetes 部署

安裝 # 使得 apt 支持 ssl 傳輸 apt-get update && apt-get install -y apt-transport-https # 下載 gpg 密鑰 curl https://mirrors.al

原创 kubernetes 周邊生態

監控 以 Prometheus 項目爲核心的一套統一的方案 Prometheus 項目工作的核心,是使用 Pull 的方式去搜集被監控對象的 Metrics 數據(監控指標數據),然後再把這些數據保存在一個 TSDB (時間

原创 kubernetes 安全

虛擬化容器 爲了更安全地隔離容器,避免容器進程逃逸,權限升級等安全問題 現有的實現有Kata Containers和gVisor Kata Containers 使用傳統的虛擬化技術,通過虛擬硬件模擬出了一臺“小虛擬機”

原创 收發包流程

收包流程 數據包到達網卡NIC 非混雜模式的NIC校驗Mac地址 即目的Mac地址不是本機的數據包直接丟棄,不會處理 混雜模式一般適用於存在虛擬機時,虛擬機daemon會把物理網卡設置爲混雜模式 抓包時也需要混雜模式

原创 golang 性能分析

性能分析 從業務目標角度,通常我們的瓶頸出現在業務的通量和時延兩個問題上 比如一個MySQL數據庫,你從其他機器上對它發請求,每秒它能處理10萬個請求,這個就是通量性能;每個請求的反應時間是0.5ms,這個就是時延性能 通量和

原创 HTTP訪問控制(跨域問題)

跨域資源共享(CORS) 同一個瀏覽器發出的請求,未必都是用戶自願發出的請求 比如瀏覽頁面時只有 page.html 是用戶發出的,其他請求是瀏覽器自動發出的 跨域資源共享(CORS) 使用額外的 HTTP 頭來告訴瀏覽器

原创 子網通信過程

ABCD四臺主機屬於10.0.0.0子網,網關指向路由器1的10.0.0.1 EFGH四臺主機屬於10.0.1.0子網,網關指向路由器2的10.0.1.1 子網內通信 A向C發送數據 A知道C的ip地址,發現它倆在同一網

原创 kubernetes API對象

無狀態服務(Deployment和ReplicaSet) Deployment 假設應用是無狀態的: 一個應用的所有Pod是完全一樣的,它們互相之間沒有順序,也無所謂運行在哪臺宿主機上 可以“殺掉”任意一個 Pod Dep

原创 kubernetes 儲存

本地儲存(emptyDir和 hostPath) emptyDir 是host上的一個空目錄 生存週期與pod一致 適合 Pod 中的容器需要臨時共享存儲空間的場景 hostPath 掛載host上指定目錄 生存週期與h

原创 賬戶體系(SSO, JWT, CAS與OAuth)

SSO 單點登錄(SSO: Single Sign-On) 一套公用的用戶體系,用戶只要登陸之後,就能夠訪問所有的系統 比如登錄了淘寶就不用再登錄天貓了 也用於解決跨域問題 參考 https://ken.io/no

原创 alfred使用指南

feature 文件夾 前往:<space> 搜索文件:find 查找包含指定內容的文件:in 前往下一層文件夾: Command + ↓ 前往上一層文件夾:Command + ↑ 顯示動作面板:→ 網頁搜索 在fe

原创 性能分析與優化

測試種類 壓力測試 壓力測試是評估系統處於或超過預期負載時系統的運行情況 在壓力級別逐漸增加時,系統性能應該按照預期緩慢下降,但是不應該崩潰 壓力測試還可以發現系統崩潰的臨界點,從而發現系統中的薄弱環節 性能數值 IO

原创 全局ID

UUID 缺點 字符串佔用的空間比較大 索引的效率非常低 生成的 ID 太過於隨機,完全不是人讀的 沒有遞增,如果要按前後順序排序的話,基本不可能 Snowflake