原创 從majority voting解讀Raft

從majority voting解讀RaftRaft狀態機複製方法分佈式問題majority votingleader租約投票實現故障恢復 Raft Raft是一個分佈式一致性協調算法,採用狀態機複製方法和majority vot

原创 golang學習筆記(一)

golang學習筆記(一)編譯運行go的基本數據類型包管理自動補齊分號類型別名變量定義函數定義匿名變量字符串struct指針類型結構體函數函數變量const與iota接口嵌入類型與方法重寫類型轉化 編譯運行 在安裝了go環境的機器

原创 Dart學習筆記

Dart學習筆記變量定義final與const數組類型Map類型函數定義入口函數類與構造函數抽象類繼承與實現mixin繼承泛型類型轉化與類型判斷異常處理 變量定義 Dart中,不像其他語言存在基本類型與類類型,Dart中所有類型(

原创 ActiveMQBytesMessage內容修改

ActiveMQBytesMessage內容修改讀寫分離分析獲得舊內容寫入新內容結束輸入 讀寫分離分析 ActiveMQBytesMessage是activeMQ進行字節傳輸使用的消息類型,內部維護一個DataInputStrea

原创 golang的http源碼與twirp源碼筆記

golang的http源碼跟蹤筆記http啓動httpHandleServer循環accept請求處理connectiontwirpTwirpServerproto文件Twirp的ServeHttp實現serve請求 http 啓

原创 golang學習筆記(四)

golang學習筆記(四)strings與strconvreflectselect strings與strconv strings包提供字符串常用操作函數: strings.HasPrefix(s, prefix string)

原创 go使用twirp開發rpc

go使用twirp開發rpctwirp簡介安裝開發實現rpc twirp簡介 twirp是谷歌開源的rpc框架,默認支持golang並提供其他語言的實現版本,使用proto進行rpc定義開發。 安裝 安裝proto插件和twirp

原创 protoBuf-go學習筆記

protoBuf-go學習筆記protoBuf官方簡介下載protoBuf編譯器安裝go專屬plugin編譯proto到go代碼proto包名syntax聲明導入包定義message定義字段定義服務golang使用proto pr

原创 使用GORM操作數據庫

使用GORM操作數據庫依賴安裝定義實體類開啓連接創建表更新表插入/更新記錄插入記錄修改記錄刪除查詢查詢鏈Select字段Order排序LimitOffsetCountJoinScanScopes關聯結構關聯更新關聯查詢 依賴安裝

原创 golang學習筆記(二)

Go異常處理 error go預先定義了一個error接口,包含一個字符串返回類型的函數,用於返回錯誤信息type error interface { Error() string } 可以同個errors包的new方法,傳

原创 golang學習筆記(三)

文件IO io包 pipe 該方法返回一個PipeReader和一個PipeWriter指針type pipe struct { wrMu sync.Mutex // 寫時鎖 wrCh chan []byte /

原创 使用gqlgen搭建graphql的go服務端

添加依賴 require ( github.com/99designs/gqlgen v0.11.3 github.com/vektah/gqlparser/v2 v2.0.1 ) 編寫schema 在項目根目錄創建文件夾,

原创 go依賴管理——module

module簡介 在 go1.12,go發佈了官方的包管理工具 Go Module 使用module 生成go.mod 新建一個文件夾作爲項目目錄,執行 go mod init 模塊名稱 使用mod初始化項目,生成項目依賴管

原创 使用nvm管理node.js版本

安裝nvm 在nvm的github下載setup安裝包 設定nvm安裝路徑 設定node安裝路徑 安裝node 命令行輸入nvm查看命令提示 nvm ls 和 nvm ls available分別查看本地已安裝node

原创 手撕AVL樹

title: 手撕AVL樹 BST BINARY SEARCH TREE二叉查找樹,代表樹中節點爲有序存儲 所有節點都相同滿足以下條件之一 1.左子節點值大於等於根節點值且右子節點值小於根節點值 2.左子節點值小於等於根節點值且