【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++时没遇到这个问题。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值