原创 一致性算法- Raft節點狀態

raft集羣中節點狀態 follower(跟隨者):所有節點都以follower的狀態開始。如果沒有收到leader消息則會變成candidate狀態。 candidate(候選人):會向其他節點拉選票,如果得到大部分的票則成爲lea

原创 Go語言中使用JSON

Encode 將一個對象編碼成JSON數據,接受一個interface{}對象,返回[]byte和error: func Marshal(v interface{}) ([]byte, error) Marshal函數將會遞歸遍歷整個

原创 Kubernetes(K8s)

Kubernetes(K8s)是Google在2014年發佈的一個開源項目。 據說Google的數據中心裏運行着20多億個容器,而且Google十年多前就開始使用容器技術。最初,Google開發了一個叫Borg的系統(現在命名爲Ome

原创 git pull和git pull --rebase的使用

git pull = git fetch + git merge git pull --rebase = git fetch + git rebase

原创 go語言調用C代碼

嵌入C代碼 package main /* // C 標誌io頭文件,你也可以使用裏面提供的函數 #include <stdio.h> void pri(){ printf("hey"); } int add(int a,i

原创 Haystack 圖片存儲

圖片存儲系統的最大特點是數據只寫一次,讀取頻繁,不會修改,很少刪除。Facebook 一開始的存儲系統是基於NFS的NAS(Network Attached Storage), 但這種基於 POSIX 的文件系統無法支撐如此大的負載。

原创 golang 速度限制

隔2秒後繼續執行 package main import ( "fmt" "time" ) func main() { requests :=

原创 雪崩

“雪崩”指的是訪問服務集羣時絕大部分請求都超時,且在流量減少時仍無法恢復的現象。下面解釋這個現象的來源。 當流量超出服務的最大qps時,服務將無法正常服務;當流量恢復正常時(小於服務的處理能力),積壓的請求會被處理,雖然其中很大一部分

原创 Go語言解析TOML文件

通過反射的Go的TOML解析器和編碼器 TOML全稱爲Tom’s Obvious,Minimal Language。 這個Go包提供了一個類似於Go的標準庫json和xml包的反射界面。 此包還支持encoding.TextUnmar

原创 brpc

百度內最常使用的工業級RPC框架, 有1,000,000+個實例(不包含client)和上千種多種服務, 在百度內叫做"baidu-rpc". 目前只開源C++版本。 你可以使用它: 搭建能在一個端口支持多協議的服務, 或訪問各種服務

原创 百萬級消息服務MQTT

EMQ官方地址:http://emqtt.com/ EMQ中文文檔:http://emqtt.com/docs/v2/guide.html EMQ (Erlang/Enterprise/Elastic MQTT Broker) 是基於

原创 開源聊天服務器

1, actor.im 這個是個國外的項目,項目地址: https://actor.im/ 項目是服務端和客戶端都有的開源項目。 服務端是用scala寫的。 Actor Platform is released under AGPL.

原创 etcd的應用場景

場景一:服務發現(Service Discovery) 服務發現要解決的也是分佈式系統中最常見的問題之一,即在同一個分佈式集羣中的進程或服務,要如何才能找到對方並建立連接。本質上來說,服務發現就是想要了解集羣中是否有進程在監聽udp或

原创 SnowFlake算法

爲了達到業務的冪等,必須要有這樣一個 id 存在,需要滿足下面幾個條件: 同一業務場景要全局唯一。 該 id 必須是在消息的發送方進行產生髮送到 MQ。 消費端根據該 id 進行判斷是否重複,確保冪等。 在那裏產生,和消費端進行判斷等

原创 etcd啓動

wilson@wilson-ThinkPad-E480:~/e3w$ sudo docker-compose up Creating network “e3w_default” with the default driver Pull