原创 深入剖析分佈式一致性共識算法

一、共識算法 -- 拜占庭問題 兩忠一叛問題:   如上圖所示,將軍A、B、C約定同時進攻或者撤退,假如將軍C叛變了,被中間人截取消息併發送進攻給A、撤退給B,當所有將軍消息都收到後結果如下:A:2票進攻1票撤退;B:2票撤退1票進攻;導

原创 分佈式系統限流算法分析與實現

一、限流的關鍵作用 對於大型互聯網架構中,限流的設計是必不可少的一個環節。在給定的時間內, 客戶端請求次數過多, 服務器就會攔截掉部分請求,避免請求流量過大造成數據庫負載高的問題。   二、常見限流算法利弊分析 計數器限流 計數器限流主要有

原创 一文弄懂分佈式場景中各種鎖的原理及使用

1. 語言層面的鎖 樂觀鎖: 原子操作中的比較並交換簡稱CAS(Compare And Swap),在sync/atomic包中,這類原子操作由名稱以CompareAndSwap爲前綴的若干個函數提供 func CompareAndSw

原创 prometheus監控golang服務實踐

一、prometheus基本原理介紹 prometheus是基於metric採樣的監控,可以自定義監控指標,如:服務每秒請求數、請求失敗數、請求執行時間等,每經過一個時間間隔,數據都會從運行的服務中流出,存儲到一個時間序列數據庫中,之後可通

原创 ETCD核心機制解析

ETCD整體機制 etcd 是一個分佈式的、可靠的 key-value 存儲系統,它適用於存儲分佈式系統中的關鍵數據。 etcd 集羣中多個節點之間通過Raft算法完成分佈式一致性協同,算法會選舉出一個主節點作爲 leader,由 lead

原创 ETCD組件在grpc中的實踐

一、前言 grpc中沒有像go-micro那樣集成可插拔式的etcd庫使用,如何使得grpc能夠使用服務註冊發現及命名解析的功能,因此本文基於etcd實現了Name Resolver。   二、所需的grpc版本及高版本grpc、proto

原创 opentracting+jager分佈式鏈路追蹤探索實踐

一、Opentracing opentracing通過提供平臺無關、廠商無關的API,使得開發人員可以方便地實現追蹤系統。opentracing提供了用於運營支撐系統和針對特定平臺的輔助程序庫,被跟蹤的服務只需要調用這套接口,就可以被任何實

原创 golang調試性能分析

golang程序的CPU及內存使用情況性能分析 1.runtime.MemStats查看內存佔用情況 //讀取當前內存信息的方法 func printMemStats() { //定義一個 runtime.MemStats對象

原创 基於PySpark的網絡服務異常檢測系統 階段總結(三)

本篇博文主要介紹如何使用SVDD算法和Isolation Forest算法來進行異常檢測 首先是SVDD算法,主要是用sklearn裏面的svm.OneClassSVM()來做單分類的異常檢測,用cross_validation作爲交叉驗證

原创 Docker搭建分佈式MySQL主從服務

一. 創建docker-compose.yml並啓動docker compose mkdir mysql_server cd mysql_server sudo vim docker-compose.yml docker-compos

原创 Channels集成到Django消息實時推送

channel架構圖 InterFace Server:負責對協議進行解析,將不同的協議分發到不同的Channel Channel Layer:頻道層,可以是一個FIFO隊列,通常使用Redis   Django中配置Channel: C

原创 TensorFlow實現線性迴歸

線性迴歸(Linear regression)是利用迴歸方程(函數)對一個或多個自變量(特徵值)和因變量(目標值)之間關係進行建模的一種分析方式。 特點:只有一個自變量的情況稱爲單變量回歸,大於一個自變量情況的叫做多元迴歸 通用公式:h(w

原创 邏輯迴歸

邏輯迴歸是一種分類算法,雖然名字中帶有迴歸。但是它與迴歸之間有一定的聯繫。 邏輯迴歸的原理: 輸入 邏輯迴歸的輸入就是一個線性迴歸的結果 sigmoid函數(激活函數) 迴歸的結果輸入到sigmoid函數當中輸出結果:[0, 1]區間中

原创 線性迴歸

線性迴歸(Linear regression)是利用迴歸方程(函數)對一個或多個自變量(特徵值)和因變量(目標值)之間關係進行建模的一種分析方式。 特點:只有一個自變量的情況稱爲單變量回歸,大於一個自變量情況的叫做多元迴歸 通用公式:h(w

原创 決策樹

決策樹思想的來源非常樸素,程序設計中的條件分支結構就是if-then結構,最早的決策樹就是利用這類結構分割數據的一種分類學習方法,其原理是基於信息熵和信息增益。 信息熵的定義H的專業術語稱之爲信息熵,單位爲比特。 信息和消除不確定性是相聯