一、從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掉相應進程