【TARS】UBUNTU中TarsGo的安裝以及demo實例

一. Tars基礎組件的配置,TarsWeb平臺部署

關於Tars基礎組件以及TarsWeb的部署,我之前已經總結一次了,如果沒有進行該步驟可以先跳轉至之前這篇文章

二. 配置Go環境

(1)下載go文件的tar免安裝包,我下載的是1.12,下載鏈接如下:go1.12.1.linux-amd64.tar.gz。如果鏈接失效可以從我的百度網盤下載:網盤鏈接,密碼:9reb。

(2)下載完成後,解壓文件

tar -zxvf go1.12.1.linux-amd64.tar.gz

解壓完成後,文件複製到/usr/local下(需要root權限)

sudo cp -rf go /usr/local
cd /usr/local
//授予權限
chown -R (你的子賬戶):(你的子賬戶) go  

(3)這時候go的所有文件都已經就位了,接下來創建工作目錄

cd /home/你的賬戶
mkdir Workplace4Go

(4) 配置環境變量文件

go的環境配置需要配置兩個路徑,分別是GOROOT和GOPATH
GOROOT:go系統文件的安裝目錄
GOPATH:go程序的工作目錄,比如helloworld.go這種

終端輸入 vim ~/.bashrc進入環境變量配置,注意這裏操作時賬戶要是你的子賬戶,如果你當前賬戶是root,那麼可能無法讓你的操作生效,將下面的內容輸入到配置文件的最下方

#Added by GO
export GOROOT=/usr/local/go
export GOPATH=/home/你的賬戶/Workplace4Go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH

輸入:wq保存,在終端激活環境變量

source ~/.bashrc
//接下來爲了驗證是否成功安裝,可以輸入如下
go version
//若顯示版本go version go1.12.1 linux/amd64則說明安裝成功

三. 配置TarsGo

安裝Tars,終端輸入

go get -u -v github.com/TarsCloud/TarsGo/tars

編譯tars2go協議

cd $GOPATH/src/github.com/TarsCloud/TarsGo/tars/tools/tars2go
go build
go install

安裝完成後,終端輸入tars2go,看看該命令是否存在

四. demo實例

(1) 終端輸入,生成demo文件

cd $GOPATH/src/github.com/TarsCloud/TarsGo/tars/tools
./create_tars_server.sh TestApp HelloGo SayHello

終端顯示

Great!Done! You can jump in $GOPATH/src/TestApp/HelloGo
這就是生成demo的位置。

(2)定義接口文件.tars,編譯的時候通過tars2go工具將.tars生成對應的go文件

module TestApp{
interface SayHello{
     int echoHello(string name, out string greeting); 
   };
};

(3) 在imp.go中實現接口,生成的內容有點不同,所以改了

package main

// SayHelloImp servant implementation
type SayHelloImp struct {
}

// Init servant init
func (imp *SayHelloImp) Init() (error) {
	//initialize servant here:
	//...
	return nil
}

// Destroy servant destory
func (imp *SayHelloImp) Destroy() {
	//destroy servant here:
	//...
}

func (imp *SayHelloImp) EchoHello(name string, greeting *string) (int32, error) {
	*greeting = "hello " + name
	return 0, nil
}

(4)編譯代碼

cd 進入Hello目錄中
make && make tar

(5) 如果沒有錯誤,則會生成一個HelloGo.tgz的打包文件

(6)編寫client.go

package main

import (
	"fmt"
	"github.com/TarsCloud/TarsGo/tars"
	"TestApp"
)

func main() {
	comm := tars.NewCommunicator()
	obj := fmt.Sprintf("TestApp.HelloGo.SayHelloObj@tcp -h 127.0.0.1 -p 10015 -t 60000")
	app := new(TestApp.SayHello)
	comm.StringToProxy(obj, app)
	
	reqStr := "tars"
	var resp string
	ret, err := app.EchoHello(reqStr, &resp)
	if err != nil {
			fmt.Println(err)
			return
	}
	fmt.Println("ret: ", ret, "resp: ", resp)
}

服務部署和測試

(1)執行HelloGo目錄下的start.sh,開啓服務

./start.sh

(2)開啓客戶端

cd client 
go build client.go
./client

終端顯示

ret:  0 resp:  hello tars 

當然也可以直接在TarsWeb進行部署,具體的方式可以看我下面的文章後半部分

TarsWeb平臺部署服務的方法

我的小問題待解決

2020-05-08 12:45:37.284|application.go:initConfig:73|ERROR|server config path empty
ret:  0 resp:  hello tars

據我所知,配置文件是啓動服務端的時候調用的,而我開啓客戶端去訪問服務時,卻提示瞭如上的錯誤。並且客戶端正常執行了下去,說明addservant是成功的。如果有人遇到了,麻煩告訴我怎麼解決。使用TarsC++時沒遇到這個問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章