前言:上一遍文章实现了go服务端,这里继续实现go客户端。
1.开发客户端代码
2.测试rpc客户端
1.开发客户端代码
⚠️传输方式、协议需要与服务端一致。thrift官网go教程
package main
import (
"user/thrift/user"
"git.apache.org/thrift.git/lib/go/thrift"
"fmt"
"golang.org/x/net/context"
)
var ctx = context.Background()
func main() {
var transport thrift.TTransport
var err error
// 传输方式(需要与服务端一致)
transport, err = thrift.NewTSocket("localhost:9000")
if err != nil {
fmt.Printf("open socket err, %s\n", err)
return
}
// 传输协议(需要与服务端一致)
protocolFactory := thrift.NewTBinaryProtocolFactoryDefault()
iProtocol := protocolFactory.GetProtocol(transport)
oProtocol := protocolFactory.GetProtocol(transport)
tClient := thrift.NewTStandardClient(iProtocol, oProtocol)
// 实际业务
userClient := user.NewUserClient(tClient)
if err := transport.Open(); err != nil {
fmt.Printf("Error opening socket to :9092 %s", err)
return
}
defer transport.Close()
// 调用rpc服务提供的方法
res, err := userClient.GetName(ctx)
if err != nil {
fmt.Printf("get user err, %s", err)
return
}
fmt.Printf("%s", res)
}
2.测试rpc客户端
运行客户端,正常返回,至此客户端开发完毕
总结
这里采取最简单最直接的方式实现😄
网友评论