快速开始
前置条件
安装Golang,建议1.17及以上版本
服务编写
安装依赖
# < go 1.16
go get -u github.com/TarsCloud/TarsGo/tars/tools/tarsgo
go get -u github.com/TarsCloud/TarsGo/tars/tools/tars2go
# >= go 1.16
go install github.com/TarsCloud/TarsGo/tars/tools/tarsgo@latest
go install github.com/TarsCloud/TarsGo/tars/tools/tars2go@latest创建服务
运行tarsgo脚手架,自动创建使用make构建服务必须的文件。如要使用cmake,可参考这里。
tarsgo make App Server Servant GoModuleName
例如:
tarsgo make TestApp HelloGo SayHello github.com/Tars/test命令执行后将生成代码当前目录中以Server命名目录,生成代码中也有提示具体路径。
定义接口文件
接口文件定义请求方法以及参数字段类型等,有关接口定义文件说明参考 tars_tup.md
为了测试我们定义一个 echoHello 的接口,客户端请求参数是短字符串如 "tars",服务响应"hello tars".
注意: 参数中out修饰关键字标识输出参数。
服务端开发
首先把 tars 协议文件转化为 Golang 语言形式
现在开始实现服务端的逻辑:客户端传来一个名字,服务端回应 hello name。
注意: 这里函数名要大写,Go 语言方法导出规定。
编译 main 函数,初始代码以及有 tars 框架实现了。
编译生成可执行文件,并打包发布包。
将生成可执行文件 HelloGo 和发布包 HelloGo.tgz
客户端开发
TestApp 依赖是 tars2go 生成的代码。
obj 指定服务端地址端口,如果服务端未在主控注册,则需要知道服务端的地址和端口并在 Obj 中指定,在例子中,协议为 TCP,服务端地址为本地地址,端口为 3002。如果有多个服务端,则可以这样写
TestApp.HelloGo.SayHelloObj@tcp -h 127.0.0.1 -p 9985:tcp -h 192.168.1.1 -p 9983这样请求可以分散到多个节点。如果已经在主控注册了服务,则不需要写死服务端地址和端口,但在初始化通信器时需要指定主控的地址。
com 通信器,用于与服务端通信。
编译测试
HTTP 服务开发
tarsgo 支持 http 服务,按照上面的步骤创建好服务,tarsgo 中处理 http 请求是在 GO 原生中的封装,所以使用很简单。
另外还可以直接调用其他 tars 服务,调用方式和“客户端开发”提到一样。
Last updated
Was this helpful?