這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。在上一篇moonmq的介紹中(這裡),我只簡短的羅列了一些moonmq的設計想法,可是對於怎樣使用並沒有具體說明,公司同事無法非常好的使用。對於moonmq的使用,事實上非常easy,例子代碼在這裡,我們僅僅須要處理好broker,consumer以及publisher的關係就能夠了。首先,我們須要啟動一個broker,由於moonmq如今僅僅支援tcp的自己定義協議,所以broker啟動的時候須要指定一個listen
這是一個建立於
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。有一段時間,我們的推送服務socket佔用非常不正常,我們自己統計的同一時候線上就10w的使用者,可是佔用的socket居然達到30w,然後查看goroutine的數量,發現已經60w+。每一個使用者佔用一個socket,而一個socket,有read和write兩個goroutine,簡化的代碼例如以下:c, _ := listerner.Accept()go c.run()func (c *conn) run() {
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 package exec用於運行外部命令,它封裝了os.StartProcess,從而使操作更容易。 Index Variables func LookPath(file string) (string, error) type Cmd func Command(name string, arg ...string) *Cmd func (c *Cmd)
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。1.0 controller get請求type MainController struct { beego.Controller}func (this *MainController) Get() { this.Data["IsHome"] = true this.Data["Website"] = "s.me" this.Data["Email
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。前端通過udp與接入伺服器串連,接入伺服器與後端tcp伺服器維持tcp串連。目錄結構及後端tcp伺服器代碼同上一篇部落格。main.gopackage mainimport ( "lotuslib")const ( ip = "0.0.0.0" port = 1987)func main() { udplotus.UdpLotusMain(ip,
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。/* *@author 菠菜君 *@Version 0.2 *@time 2013-10-29 *@golang實現公眾平台API引擎開發模式 *@青島程式員 訂閱號qdprogrammer *@Golang 訂閱號gostock *@關於青島程式員的技術,創業,生活 分享。 *@開源 https://github.com/philsong/ */package mainimport ("crypto/sha1"&
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。直接貼代碼func sliceModify(slice []int) { // slice[0] = 88 slice = append(slice, 6)}func main() { slice := []int{1, 2, 3, 4, 5} sliceModify(slice) fmt.Println(slice)} 返回的沒變,坑爹的,這個設計太那啥了,可以正確跑出效果的版本如下:func
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。github:https://github.com/ZhangzheBJUT/blog/blob/master/golang_rpc.md 一 HTTP RPC服務端代碼package mainimport ("errors""fmt""net/http""net/rpc")const ( URL = "192.168.2.172:12981")
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。一、準備工作: 1、下載Go語言套件: https://code.google.com/p/go/downloads/list 2、下載Git: https://code.google.com/p/msysgit/downloads/list 3、下載Sublime 2:http://www.sublimetext.com/2二、安裝: 1、安裝go(一路next),他會自動幫你配置環境變數
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 時至今日,go開發進入了慢而穩步發展的階段,所以一些可用的IDE也應時而生,例如LiteIDE,IntelliJ的Golang外掛程式等,不過我現在在某種環境下還只能使用vim,所以特此記錄一下。 其實在vim下配置的簡單開發環境也挺簡單的,把一下語句加入到~/.vimrc下即可: filetype offfiletype plugin indent offset
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 Incorrect string value: '\xEF\xBF\xBD\xEF\xBF\xBD...' 報這個錯,基本是編碼問題,檢查一下表的編碼 show create table table_name;比如問題就出在字元集| gosignal | CREATE TABLE `gosignal` ( `id` int(11) DEFAULT NULL, `time` varchar(30)
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。大家都知道golang裡的panic相當於其他語言裡的throw,而recover相當於其他語言裡的cacth,可是由於golang的recover機制要求必須在defer的函數裡才能執行catch panic大概意思如下func protect(g func()) {defer func() {log.Println("done") // Println executes normally even if
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport ( "fmt" "reflect" "time")func main() { //格式化字串為時間 test, _ := time.Parse("2006-01-02", "2013-11-11") //時間增加 after, _ :=
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。method的文法如下:func (r ReceiverType) funcName(parameters) (results)下面我們用最開始的例子用method來實現:package mainimport ( "fmt" "math")type Rectangle struct { width, height float64}type Circle struct {
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 package io/util實現了一些io效用函數。 Index Variables func NopCloser(r io.Reader) io.ReadCloser func ReadAll(r io.Reader) ([]byte, error) func ReadDir(dirname string) ([]os.FileInfo, error) func
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport ( "fmt" "os")func main() { fileinfo, err := os.Stat(`C:\Users\Administrator\Desktop\UninstallTool.zip`) if err != nil { panic(err) }
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。剛才看golang的sync的包,看見一個很有用的功能。就是WaitGroup。先說說WaitGroup的用途:它能夠一直等到所有的goroutine執行完成,並且阻塞主線程的執行,直到所有的goroutine執行完成。WaitGroup總共有三個方法:Add(delta
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。例子 package mainimport ("github.com/lxn/win""strconv""syscall")func _TEXT(_str string) *uint16 {return syscall.StringToUTF16Ptr(_str)}func _toString(_n int32) string {return strconv.Itoa(int(_n)
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。作業系統 ubuntu 12.04 64 位元1. 配置編譯環境Go工具鏈採用C語言編寫,需要安裝以下開發工具$ sudo apt-get install bison gcc libc6-dev ed gawk make 2.安裝Mercurial工具Mercurial是一種輕量級分布式版本控制系統,採用Python編寫。首先安裝Python$ sudo apt-get install python2.7$ sudo