美文网首页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