1、从thrift源码中拷贝go语言包(thrift\lib\go\thrift),放到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掉相应进程

thrift-go(golang)Server端笔记的更多相关文章

  1. Thrift项目Server端开发流程

    Thrift项目Server端开发流程 首先,先了解工程中所有包的功能(见下图) 该图为用户中心项目的目录结构,以下依次介绍. 1.     src/main/java com.framework:该 ...

  2. Neo4j图数据库管理系统开发笔记之二:管理系统Server端界面一览

    最近在neo4j java api和rmi的基础上,设计了一套neo4j管理工具,分为server端和client端,中间用rmi进行通信.基本功能包括图数据库基本信息维护管理(创建.编辑.删除.统计 ...

  3. .NET Core学习笔记(5)——WebAPI从Server端push消息到Client

    标题起得有点厉害,汉字夹杂着E文,不符合教育部公布的“向社会推荐使用的外语词中文译名”规范.不过他管不着我.写本篇的起因,是重构一个现有的WinForms程序,将Server端的部分逻辑从raw so ...

  4. Thrift RPC Golang、C++ Example

    Thrift RPC Example 运行 请直接使用即可,无需拉取任何依赖包. cd $GOPATH/src git clone https://github.com/hunterhug/thrif ...

  5. springboot与thrift集成实现服务端和客户端

    我们这里用一个简单的小功能来演示一下如何使用springboot集成thrift 这个功能是,判断hdfs路径存在. 1.先解决依赖 <dependencies> <dependen ...

  6. java网络编程socket\server\TCP笔记(转)

    java网络编程socket\server\TCP笔记(转) 2012-12-14 08:30:04|  分类: Socket |  标签:java  |举报|字号 订阅     1 TCP的开销 a ...

  7. Linux下的C Socket编程 -- server端的继续研究

    Linux下的C Socket编程(四) 延长server的生命周期 在前面的一个个例子中,server在处理完一个连接后便会立即结束掉自己,然而这种server并不科学啊,server应该是能够一直 ...

  8. Linux下的C Socket编程 -- server端的简单示例

    Linux下的C Socket编程(三) server端的简单示例 经过前面的client端的学习,我们已经知道了如何创建socket,所以接下来就是去绑定他到具体的一个端口上面去. 绑定socket ...

  9. Golang 语法学习笔记

    Golang 语法学习笔记 包.变量和函数. 包 每个 Go 程序都是由包组成的. 程序运行的入口是包 main. 包名与导入路径的最后一个目录一致."math/rand" 包由 ...

随机推荐

  1. ReactiveX Operators

    This documentation groups information about the various operators and examples of their usage into t ...

  2. form 表单的另类触发方式:报错触发

    在用form表单提交的时候,遇到一个问题:表单未验证完,表单就提前提交了. 然后通过断点调试,发现form提交会因为函数报错提前提交. 即如果你的form提交过程中,没有执行到return true之 ...

  3. Java中类的定义

    成员变量:对应事物的属性 成员方法:对应事物的行为 类定义的格式 定义类:就是定义类的成员,包括成员变量和成员方法 成员变量:和以前定义变量几乎是一样的.只不过位置发生了改变.在类中,方法外. 成员方 ...

  4. input标签处理多文件上传

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name ...

  5. JavaScript JSON简单操作(增删改)

    JavaScript 中对json处理: 声明;: var json={};或 json={"name":"asd","age":24}; ...

  6. Project Euler 19 Counting Sundays( 蔡勒公式计算星期数 )

    题意:在二十世纪(1901年1月1日到2000年12月31日)中,有多少个月的1号是星期天? 蔡勒公式:计算 ( year , month , day ) 是星期几 以下图片仅供学习! /****** ...

  7. js生产随机数

    var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz"; var string_le ...

  8. rtsp://192.168.1.198:554/PSIA/streaming/channels/101

    rtsp://192.168.1.198:554/PSIA/streaming/channels/101 Playing rtsp://192.168.1.198:554/PSIA/streaming ...

  9. [置顶] QQ空间技术架构之深刻揭密

    QQ空间作为腾讯海量互联网服务产品,经过近七年的发展,实现了从十万级到亿级同时在线的飞跃.在这个过程中,QQ空间团队遇到了哪些技术挑战?其站点前后台架构随着业务规模的变化又进行了怎样的演进与变迁?成长 ...

  10. soapui测试接口使用步骤

    1.新建项目 2. 定义接口 url输入接口 3.新建测试集 选择项目,右键 4.在测试集下新建测试用例 5.在测试步骤中导入要测试的请求 6.run