thrift-go(golang)Server端筆記

 
一、從thrift源碼中拷貝go語言包(thrift\lib\go\thrift),放到go/src/下
二、新建go項目,實現server端服務接口
 
package main
 
import (
      "fmt"
      "os"
      "taochees"
      "thrift"
      "strconv"
)
 
type TestServiceImpl struct {
}
 
var objService = new(xxxx)
 
func (this *TestServiceImpl) SearchData(param xxxx) (r xxxx, err error) {
      if err != nil {
              // Handle error
              fmt.Println(err)
              return nil, err
      }
      fmt.Println("接收請求...")
      r, err = objSearchService.SearchData(*param)
      return r, err
}
 
func main() {
      transportFactory := thrift.NewTTransportFactory()
      protocolFactory := thrift.NewTBinaryProtocolFactory(false, false)
 
      serverTransport, err := thrift.NewTServerSocket("172.17.1.1:7912")
      if err != nil {
              fmt.Println("Error!", err)
              os.Exit(1)
      }
      handler := &TaocheESServiceImpl{}
      processor := taochees.NewTaocheESServiceProcessor(handler)
 
      server := thrift.NewTSimpleServer4(processor, serverTransport, transportFactory, protocolFactory)
      fmt.Println("thrift server start...")
      server.Serve()
}
 
三、運行go-service文件:go run xxxx.go
系統出現如下結果便可說明啓動正常:
 
四、成功啓動後,便可編寫Client端進行調用測試
 
五、測試經過後,可將go-service註冊爲系統服務,經過service命令來控制啓動重啓
  註冊服務前需將go文件進行編譯(/.../go/bin/go build /....../xxxx.go),而後用於服務啓動
     服務指令爲(xxxx爲go文件編譯後產生的可執行文件):/....../xxxx
 
 
附註:
運行go文件後server.Serve()執行經過,未成功啓動Listen...,即系統顯示:
緣由通常是監聽指定端口失敗,可嘗試更換端口,或查看該端口是否被佔用(lsof -i ),若有佔用,kill掉相應進程
相關文章
相關標籤/搜索