• thrift-go(golang)Server端笔记


     
    1、从thrift源码中拷贝go语言包(thriftlibgo hrift),放到go/src/下
    2、新建go项目,实现server端服务接口
     
    package main
     
    import (
          "fmt"
          "os"
          "taochees"
          "thrift"
          "strconv"
    )
     
    type TestServiceImpl struct {
    }
     
    var objService = new(xxxx)
     
    func (this *TestServiceImpl) SearchData(param xxxx) (r xxxx, err error) {
          if err != nil {
                  // Handle error
                  fmt.Println(err)
                  return nil, err
          }
          fmt.Println("接收请求...")
          r, err = objSearchService.SearchData(*param)
          return r, err
    }
     
    func main() {
          transportFactory := thrift.NewTTransportFactory()
          protocolFactory := thrift.NewTBinaryProtocolFactory(false, false)
     
          serverTransport, err := thrift.NewTServerSocket("172.17.1.1:7912")
          if err != nil {
                  fmt.Println("Error!", err)
                  os.Exit(1)
          }
          handler := &TaocheESServiceImpl{}
          processor := taochees.NewTaocheESServiceProcessor(handler)
     
          server := thrift.NewTSimpleServer4(processor, serverTransport, transportFactory, protocolFactory)
          fmt.Println("thrift server start...")
          server.Serve()
    }
     
    3、运行go-service文件:go run xxxx.go
    系统出现以下结果即可说明启动正常:
     
    4、成功启动后,即可编写Client端进行调用测试
     
    5、测试通过后,可将go-service注册为系统服务,通过service命令来控制启动重启
      注册服务前需将go文件进行编译(/.../go/bin/go build /....../xxxx.go),然后用于服务启动
         服务指令为(xxxx为go文件编译后产生的可执行文件):/....../xxxx
     
     
    附注:
    运行go文件后server.Serve()执行通过,未成功启动Listen...,即系统显示:
    原因一般是监听指定端口失败,可尝试更换端口,或查看该端口是否被占用(lsof -i ),如有占用,kill掉相应进程
  • 相关阅读:
    linux上运行jmeter-server失败
    转:JMeter整合InfluxDB,Grafana让测试结果实时显示
    转:基于InfluxDB&Grafana的JMeter实时性能测试数据的监控和展示
    转:Linux下用Jmeter做接口测试
    关于获取IP 电脑获取准确手机获取的IP不准确
    关于MVC微信开发遇到的那些坑。
    uploadify 上传 大文件没有反映
    HTTP 错误 404.3
    关于WEBAPI 的使用 和WEBAPI CORS 的使用过程遇到的问题
    MVC4 ViewModel 存入多个Model,以及前台的显示用法。具体类名可以参数代替
  • 原文地址:https://www.cnblogs.com/lijunhao/p/5976733.html
Copyright © 2020-2023  润新知