前言:上一遍通过thrift工具服务接口,这里采用go实现服务端
1.准备工作,安装go thrift包
2.开发服务端代码
1.准备工作,安装go thrift包
我们实现一个thrift服务端需要依赖thrift包公共方法
go get git.apache.org/thrift.git/lib/go/thrift
⚠️ 这里使用thrift(0.11.0)开发, 所以这个go包也必须是这个版本 github 全版本
2.开发服务端代码
2.1 根据服务,查看需要实现接口(我这里只需要实现两个方法)
2.2 实现服务接口(go语言隐式实现👍)
这里定义一个用户服务,实现这两个方法即实现这个接口
package main
import (
"user/thrift/user"
"git.apache.org/thrift.git/lib/go/thrift"
"context"
"fmt"
)
// 用户服务
type UserService struct {
}
// 实际获取用户业务
func (u *UserService) GetUser(ctx context.Context, id int32) (r *user.UserInfo, err error) {
fmt.Printf("user id %d\n", id)
return &user.UserInfo{
ID: id,
}, nil
}
// 实际获取用户名业务
func (u *UserService) GetName(ctx context.Context) (r string, err error) {
return "go server", nil
}
func main() {
// 服务处理(实际业务实现如上面)
handler := &UserService{}
processor := user.NewUserProcessor(handler)
// 网络传输方式(客户端与服务端需一致)
transport, err := thrift.NewTServerSocket("localhost:9000")
if err != nil {
fmt.Printf("thrift NewTServerSocket error, %s\n", err)
return
}
// 服务模型(采用TBinaryProtocol传输格式,客户端与服务端需一致)
server := thrift.NewTSimpleServer2(processor, transport)
fmt.Printf("server run ...\n")
server.Serve()
}
总结
第一步实现需要定义的服务接口,第二步启动一个thrift server。服务端至此开发完毕
网友评论