美文网首页thrift
4.Thrift指南 实战go客户端

4.Thrift指南 实战go客户端

作者: parker7 | 来源:发表于2018-09-21 10:28 被阅读0次

前言:上一遍文章实现了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客户端

运行客户端,正常返回,至此客户端开发完毕


总结

这里采取最简单最直接的方式实现😄

Github Thrift Demo

相关文章

网友评论

    本文标题:4.Thrift指南 实战go客户端

    本文链接:https://www.haomeiwen.com/subject/szfnnftx.html