原创 分佈式技術

一、分佈式系統的難點分佈式系統比起單機系統存在哪些難點呢?1. 網絡因素由於服務和數據分佈在不同的機器上,每次交互都需要跨機器運行,這帶來如下幾個問題:1. 網絡延遲:性能、超時同機房的網絡IO還是比較塊的,但是跨機房,尤其是跨IDC,網絡

原创 hash分佈式算法及衝突解決方案

雖然我們不希望發生衝突,但實際上發生衝突的可能性仍是存在的。當關鍵字值域遠大於哈希表的長度,而且事先並不知道關鍵字的具體取值時。衝突就難免會發 生。另外,當關鍵字的實際取值大於哈希表的長度時,而且表中已裝滿了記錄,如果插入一個新記錄,不僅發

原创 go tool pprof

我們可以使用go tool pprof命令來交互式的訪問概要文件的內容。命令將會分析指定的概要文件,並會根據我們的要求爲我們提供高可讀性的輸出信息。在Go語言中,我們可以通過標準庫的代碼包runtime和runtime/pprof中的程序來

原创 vbr和cbr

視頻編碼中CBR編碼和VBR編碼的區別  VBR就是可變比特率,它與恆定比特率CBR有一些區別,關於CBR或VBR編碼的區別如下:  通過使用Windows Media編碼器,可以用恆定比特率(CBR)或可變比特率(VBR)對音頻和視頻內容

原创 gdb 調試 golang

說明:作爲一門靜態語言,似乎支持調試是必須的,而且,Go初學者喜歡問的問題也是:大家都用什麼IDE?怎麼調試?其實,Go是爲多核和併發而生,真正的項目,你用單步調試,原本沒問題的,可能會調出有問題。更好的調試方式是跟PHP這種語言一樣,用打

原创 卸載mysql

如何在Linux下卸載MySQL數據庫呢? 下面總結、整理了一下Linux平臺下卸載MySQL的方法。 MySQL的安裝主要有三種方式:二進制包安裝(Using Generic Binaries)、RPM包安裝、源碼安裝。對應不同的安裝方式

原创 memcache的hash一致性

MemCache是一個自由、源碼開放、高性能、分佈式的分佈式內存對象緩存系統,用於動態Web應用以減輕數據庫的負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高了網站訪問的速度。MemCaChe是一個存儲鍵值對的HashMa

原创 curl

命令:curl在Linux中curl是一個利用URL規則在命令行下工作的文件傳輸工具,可以說是一款很強大的http命令行工具。它支持文件的上傳和下載,是綜合傳輸工具,但按傳統,習慣稱url爲下載工具。語法:# curl [option] [

原创 golang捕獲異常

Go語言追求簡潔優雅,所以,Go語言不支持傳統的 try…catch…finally 這種異常,因爲Go語言的設計者們認爲,將異常與控制結構混在一起會很容易使得代碼變得混亂。因爲開發者很容易濫用異常,甚至一個小小的錯誤都拋出一個異常。在Go

原创 本地應用緩存算法和緩存策略的介紹

特別聲明:該文章是 本人在網上搜索到的一些資料,稍作整理而成的,還望大家不要誤會,具體出自於那本人也已經忘記。還請大家不要誤會!!!  通過設計良好的數據分塊、預取、替換、更新等算法來提高對緩存內容的命中率和一致性。1)數據分塊     M

原创 一致性hash

consistent hashing 算法早在 1997 年就在論文 Consistent hashing and random trees 中被提出,目前在cache 系統中應用越來越廣泛;1 基本場景比如你有 N 個 cache 服務器

原创 Benchttp壓力測試工具

如果你關心的性能指標主要是 QPS 每秒處理的請求數,那麼 Benchttp 非常適合你Benchttp 是一個超輕量級的壓力測試工具,安裝簡單、用法類似 Apache 的 ab、測試結果簡潔示例發起 100 個請求,模擬併發數 20ben

原创 分佈式緩存

本文將從理論的角度去介紹分佈式緩存,在構建大規模的web應用時,緩存技術可以說是必備的,學習的必要性不言而喻。分佈式緩存概述1.1 分佈式緩存的特性分佈式緩存具有如下特性: 1) 高性能:當傳統數據庫面臨大規模數據訪問時,磁盤I/O 往往成

原创 golang 模板(template)的常用基本語法

在寫動態頁面的網站的時候,我們常常將不變的部分提出成爲模板,可變部分通過後端程序的渲染來生成動態網頁,golang提供了html/template包來支持模板渲染。這篇文章不討論golang後端的模板讀取及渲染方法,只討論模板中嵌入變量,渲

原创 Paxos算法

1)問題描述分佈式中有這麼一個疑難問題,客戶端向一個分佈式集羣的服務端發出一系列更新數據的消息,由於分佈式集羣中的各個服務端節點是互爲同步數據的,所以運行完客戶端這系列消息指令後各服務端節點的數據應該是一致的,但由於網絡或其他原因,各個服務