原创 Redis的rdb格式學習

rdb格式背景 在redis中,rdb格式是經過壓縮之後,保存redis的數據的一種格式,該格式主要就是通過一定的壓縮算法,將redis服務端中的內存數據落盤到文件中,本文主要就是分析一下該協議的具體格式,並解析一下。 rdb格式

原创 遍歷百萬級Redis的鍵值的大結局

背景 上次改完利用條件變量的形式來進行rdbtool和socket接受的數據聯合分析,我再想能不能通過協程來實現避免條件變量這種調用系統調用的方式,當然如果算一下因爲每一次接受的socket的數據都儘量的大的話其他調用條件變量的次

原创 租約-代碼實踐

租約 本文主要根據租約的基本原理,採用go語言實踐一下,租約的基本流程。 租約設計概述 用例模型 租約的主要機制就是爲了保證在分佈式環境下使得各個客戶端使用的數據保持強一致性,每個客戶端在查詢服務器數據的時候,都在服務端存在一個租

原创 golang源碼分析:調度器chan調度

golang調度機制chan調度 golang的調度策略中,碰見阻塞chan就會將該chan放入到阻塞的g中,然後再等待該chan被喚醒,這是golang調度器策略的主動調度策略之一,其中還有其他的主動調度策略包括進入調用系統調用

原创 兩階段提交實際項目V1

項目介紹 兩階段提交項目主要是實際用代碼演示覆現一下,兩階段提交的執行過程,僅供學習參考。本次主要分析的版本爲V1版本,主要實現的流程包括服務端的基礎架構編寫,客戶端的基礎架構編寫,完成事務提交的過程。 兩階段項目的用例模型 客戶

原创 chubby分佈式鎖服務概述

分佈式鎖與chubby 分佈式鎖,是控制分佈式系統之間同步訪問共享資源的一種方式。Chubby是一種面向松耦合的分佈式系統的鎖服務,通常用於爲一個由適度規模的大量小型計算機構成的的松耦合的分佈式系統提供高可用的分佈式鎖服務。鎖服務

原创 Flume原理初探:基本執行原理概述

Flume Flume是一款在數據收集領域使用較多的一個apache的開源工具,是一款分佈式、可靠和高可用的系統,能夠高效的從不同的源中收集、聚合上傳大量的日誌數據到結構化的存儲模塊中,Flume的使用不僅限於日誌數據聚合, 由於

原创 golang源碼分析-啓動過程概述

golang源碼分析-啓動過程概述 golang語言作爲根據CSP模型實現的一種強類型的語言,本文主要就是通過簡單的實例來分析一下golang語言的啓動流程,爲深入瞭解與學習做鋪墊。 golang代碼示例 package main

原创 Zookeeper源碼分析:Leader角色初始化

參考資料 <<從PAXOS到ZOOKEEPER分佈式一致性原理與實踐>> zookeeper-3.0.0 Leader角色初始化 在上文的選舉完成之後,每個zk實例都會根據選舉結果進入對應的角色,本文主要就是講述Leader的初

原创 leveldb源碼分析:數據插入與刪除(Put與Delete)

leveldb數據的插入與獲取 leveldb提供的數據的交互接口如下; // Set the database entry for "key" to "value". Returns OK on success, // a

原创 golang源碼分析-調度概述

golang源碼分析-調度過程概述 本文主要概述一下golang的調度器的大概工作的流程,衆所周知golang是基於用戶態的協程的調度來完成多任務的執行。在Linux操作系統中,以往的多線程執行都是通過操作系統陷入內核來創建線程並

原创 Zookeeper源碼分析:集羣模式啓動概述

參考資料 <<從PAXOS到ZOOKEEPER分佈式一致性原理與實踐>> zookeeper-3.0.0 Zookeeper概述 Zookeeper是一個分佈式的,開放源碼的分佈式應用程序協調服務。致力於提供一個高性能、高可用,

原创 分佈式任務調度系統V1

分佈式任務調度系統V1目標 初步目標實現,實現任務的下發分配,分佈式任務執行,支持任務分片(在代碼上支持),任務執行記錄。 任務調度系統構思 基於C/S架構實現,基於長連接來管理實現,當前版本的邏輯架構圖如下; 註冊等註冊等註冊等

原创 遍歷百萬級Redis的鍵值的續集

背景 在完成腳本Redis的key的遍歷腳本之後,原以爲事情就這麼過去了,在同事試用腳本之後,拿了一個線上的集羣做了測試,響應速度非常滿意,覺得不錯但是qps過高擔心影響線上業務。於是我查看了測試環境的qps之後發現遍歷五百萬ke

原创 MVVM框架原理淺談

MVVM基本原理 MVVM(Model-View-ViewModel)本質上就是MVC 的改進版,MVVM 就是將其中的View 的狀態和行爲抽象化,讓我們將視圖 UI 和業務邏輯分開。 數據修改通知ViewModel通知Mode