瀏覽分類:

Golang

CentOS 安裝 NSQ(分散式的即時消息服務平台) 及開機配制設定

NSQ(分散式的即時消息服務平台)

NSQ是一個基於Go語言的分散式即時消息平台,它基於MIT開源協議發佈,程式碼在GitHub,其當前最新版本是1.0.0版。NSQ可用於大規模系統中的即時消息服務,並且每天能夠處理數億級別的消息,其設計目標是為在分散式環境下進行的去除中心化服務提供一個強大的基礎架構。NSQ具有分散式、去除中心化的拓撲結構,該結構具有無單點故障、故障容錯、高可用性以及能夠保證消息的可靠傳遞的特徵。NSQ非常容易配置和部署,且具有最大的靈活性,支持眾多消息協議。另外,官方還提供了拆箱即用Go和Python庫。如果讀者興趣構建自己的客戶端的話,還可以參考官方提供的協議規範

閱讀更多

[Golang] 使用 yum 在 Centos 7 上安裝 Golang

使用 yum 在 Centos 7 上安裝 Golang

1、首先,先安裝EPEL :

[root@localhost tmp]# yum install epel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.xtom.com.hk
 * extras: mirror.xtom.com.hk
 * updates: mirror.xtom.com.hk
No package epel available.
Error: Nothing to do

如果已安裝過可以略過這個步驟

閱讀更多

Awesome Go Storage:Golang 開發可以用到的套件

Awesome Go Storage Awesome

這是在網路上找到的 golang 開發可以用到的套件,可以參考一下

Reference from: https://github.com/gostor/awesome-go-storage/blob/master/README.md

A curated list of awesome Go storage projects and libraries. Inspired by awesome-go.

Contributing

Please take a quick gander at the contribution guidelines first. Thanks to all contributors; you rock!

If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!

Contents

閱讀更多

[Golang] 使用 Group Cache 來寫一個 Image Server 範例

測試方式

go run groupcache.go -http=:8081 -groupcache-peers=:8082,:8083
go run groupcache.go -http=:8082 -groupcache-peers=:8081,:8083
go run groupcache.go -http=:8083 -groupcache-peers=:8081,:8082

開啟你的本地瀏覽器 http://localhost:8081/medium.jpg?width=100

這邊是可以看到你目前的狀態 http://localhost:8081/stats

你可以看到以下的資訊

{
  "Group": {
    "Gets": 2,
    "CacheHits": 1,
    "PeerLoads": 0,
    "PeerErrors": 1,
    "Loads": 1,
    "LoadsDeduped": 1,
    "LocalLoads": 1,
    "LocalLoadErrs": 0,
    "ServerRequests": 0
  },
  "Caches": {
    "Main": {
      "Bytes": 2762,
      "Items": 1,
      "Gets": 3,
      "Hits": 1,
      "Evictions": 0
    },
    "Hot": {
      "Bytes": 0,
      "Items": 0,
      "Gets": 2,
      "Hits": 0,
      "Evictions": 0
    }
  }
}

 

閱讀更多

[Golang] groupcache的簡單範例

大概介紹

其實關於groupcache的介紹網上非常的多,搜索出來清一色都是說的介紹,當然也有配圖如何部署,但是文字與配圖完全不在一個時空,圖也是copy國外的一篇博客。它不像其它的一些緩存數據庫有個服務端,需要客戶端去連接,文檔中明確說明了它就是一個程序庫,所以沒有服務端與客戶端這麼一說,換句話說,它本沒有服務端,又或者是人人都是服務端,食神的感覺油然而生。

主要代碼結構

它的代碼結構也比較清晰,代碼量也不是很大,很適合大家去閱讀學習。主要分為了consistenthash(提供一致性哈希算法的支持),lru(提供了LRU方式清楚緩存的算法),singleflight(保證了多次相同請求只去獲取值一次,減少了資源消耗),還有一些源文件:byteview.go 提供類似於一個數據的容器,http.go提供不同地址間的緩存的溝通的實現,peers.go節點的定義,sinks.go感覺就是一個開闢空間給容器,並和容器交互的一個中間人,groupcache.go整個源碼裡的大當家,其它人都是為它服務的。

閱讀更多