Time of Update: 2017-02-09
這是一個建立於
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。因為公司在業務中需要用到訊息佇列產品,我選用了基於golang開源的nsq產品,記錄下我遇到的那些部署中的坑。首先安裝nsq,這個沒什麼好說的,我是直接在官網下載bin檔案,直接部署的,環境是centOS 6.7,安裝在/opt/nsq-0.3.7.linux-amd64.go1.6目錄下;其次是安裝nodejs,我安裝的是v6.1.0版本,這步也沒什麼好講;然後安裝nsqjs這個遇到了些坑,這裡先記錄下1、要看下gcc的版本;$
Time of Update: 2017-02-10
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。EasyProxy,簡單易用的tcp代理最近工作中遇到了golang的項目,稍稍對其產生了點興趣,打算認真學習下,正巧在搭建mysql主備環境的時候發現如果用一個代理程式的話自己測試會方便很多(主要還是為了造輪子),於是這個基於golang的tcp
Time of Update: 2017-02-10
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。寫一個錯誤的c程式package dlsymimport "testing"func Test_intercept(t *testing.T) { Intercept("gethostbyname\x00")}package dlsym// #cgo CFLAGS: -I.// #include <stddef.h>// #include "dlsym_wrapper.h&
Time of Update: 2017-02-10
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。關於延時調用函數(Deferred Function Calls)延時調用函數的文法如下:defer func_name(param-list)當一個函數調用前有關鍵字 defer 時, 那麼這個函數的執行會延遲到包含這個 defer 語句的函數即將返回前才執行. 例如:func main() { defer fmt.Println("Fourth") fmt.Println("First
Time of Update: 2017-02-10
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。最近看了一下go語言,就試著寫了一個聊天室,練練手而已,但是對於我一個搞php的來說,go語言對我啟發很大。客服端package mainimport ( "fmt" "net" "os")//定義通道var ch chan int = make(chan int)//定義暱稱var nickname stringfunc reader(conn
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。在golang中可以使用time.Time資料類型來儲存mongodb中的ISODate時間。gtype聽Model聽struct聽{聽聽聽聽uploadDate聽time.Time聽`bson:"uploadDate"`}m聽:=聽Model{}if聽err聽:=聽c.Find(nil).Select({"_id":聽0,聽"uploadDate":聽1}).One(&m)
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。1.匯入包,一個主函數中只有一個main函數,包含一個main包,主函數中我們要申明main的包![php]package mainfunc main(){}[/php]2.引入包檔案,譬如我們使用的是fmt包,列印helloword用,golang有一個包可見度的定義,就譬如其他語言中的private
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。聽 聽 反射是在golang程式運行時檢查變數所具有類型的一種機制。由於反射可以得出關於變數結構的資料(即“關於資料的資料”),所以這也被認為是golang元編程的基礎。初學反射,會感覺有些“玄乎”。我這裡由淺入深,嘗試闡述反射內涵,並解讀反射三法則(http://blog.golang.org/laws-of-reflection)。0 從類型和方法理解反射內涵聽 聽
Time of Update: 2017-02-09
這是一個建立於
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。這個演算法還是我考研的時候看懂的。插入排序大體有兩種,頭插法和尾插法。區別就是插入的位置是頭部還是尾部。簡單說一下插入排序的思路: 從第二個元素開始遍曆,第一個元素認為是有序的; 將要插入的元素依次與已有序隊列比較,插入到合適的位置;
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。kingshard效能最佳化網路篇最近kingshard的功能開發節奏慢了許多。一方面是工作確實比較忙,另一方面是我覺得kingshard的功能已經比較完善了,下一步的開發重點應該是效能最佳化。畢竟作為一個MySQL
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。PS:老Blog文章轉移, 年代久遠, 串連可能已失效.Cow 是不錯的軟體,相當好用,我在公司是直接把它掛到了伺服器上,然後辦公室的人都在用它。但是回到了家裡我就無法用行動裝置或者 PSP 之類的串連它了,我的電腦也不能一天 24 小時的在家中開機,碰巧這兩天買了連個樹莓派,上面啟動並執行是專門定製過的 Debian Linux,我就想著是否能夠使用它來運行 Cow。十分不幸的是,似乎作者的網站上並沒有提供 ARM 裝置的
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。今天讓官方文檔虐了幾條街。需要能夠對JSON資料進行編碼,將內部的中文字串轉成Unicode編碼。編碼這種東西接觸也不少了,隨便搜一下就能解決。果斷去搜了一下。本文所有編碼rs := []rune("golang中文unicode編碼")j := ""html := ""for _, r := range rs {rint := int(r)if rint < 128 {j +
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。介紹雜湊函數之前,先說一下Golang的雜湊結果。在包/hash/下的hash.go檔案,定義了雜湊函數的介面。所有雜湊函數都要實現此介面。// Hash is the common interface implemented by all hash functions.type Hash interface {// Write (via the embedded io.Writer interface) adds more
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Gox 是一個簡單的,不花俏的Go平台交叉編譯工具,它的用處就和標準的 go build 一樣。Gox 會並行地為多種平台編譯。Gox 同時也提供了一套交叉編譯工具鏈。Gox 項目地址:https://github.com/mitchellh/gox安裝為了安裝 Gox,請使用 go get。我們已經為版本打上了標籤,所以可以隨便切換標籤進行編譯: $ go get github.com/mitchellh/gox ...
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。使用 Etcd 和 Haproxy 做 Docker 服務發現標籤(空格分隔): Etcd Haproxy Docker 服務發現 architecture discovery docker-gen golang service 本文作者是 jwilder,本文的原文是 Docker Service Discovery Using Etcd and Haproxy在前一篇文章中,我們展示了一種為 Docker
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。今天查看我寫的錯誤記錄檔,裡面報出了Too many connections這個錯誤。沒見過啊,果斷去問我大哥,他說是串連數的問題。我又去看之前已經上線的My
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。我們公司服務端都是在用Golang,每天幾百萬的UV,過億的PV一直沒啥問題。後來改了一次邏輯,首頁能展示一個列表,之前這個列表都沒有做過緩衝處理,一個是因為資料少,一共才一千多條;還有就是量不大。但是首頁加了入口之後出了問題,記憶體瘋漲,一般記憶體也就佔200M+,這還是包含In
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。近日在高負載時使用 Golang 的 sql driver 時碰到泄漏問題,最後終於發現database/sql 的文檔和 Examples 都沒有很好的說明下面2個關鍵點:一、 每個 Golang 進程只需要 sql.Open() 一次最初,想當然的做法是每次有sql請求都先 sql.Open() 。 這實際上是不對的。database/sql 自己會維護串連池,每次