在go语言里使用thrift做远程通讯
一.准备和编写IDL
thrift支持的数据类型
基本类型
- bool: A boolean value (true or false)
- byte: An 8-bit signed integer
- i16: A 16-bit signed integer
- i32: A 32-bit signed integer
- i64: A 64-bit signed integer
- double: A 64-bit floating point number
- string: A text string encoded using UTF-8 encoding
Struct 包含其他数据类型的结构体,与c语言的struct类同
Containers 容器
list
set
map
Exceptions 异常
Services 服务,也就是提供给远程调用的方法
IDL定义的例子demo.thrift:
//namespace go demo.rpc
service RpcService{
list<string> funCall(1:i64 callTime, 2:string funCode, 3:map<string, string> paramMap),
}
IDL文件支持include
注释支持shell和c两种语言的注释方式
#comment
//comment
/*comment*/
二.thrift编译器的使用
thrift --gen go -o rpcgo demo.thrift
--gen参数指定输出语言 -o指定输出目录
go语言有两个额外的参数
package_prefix= Package prefix for generated files.
thrift_import= Override thrift package import path (default:git.apache.org/thrift.git/lib/go/thrift)
使用方法
thrift --gen go:package_prefix=ownprefix,thrift_import=ownthriftpackage -o rpcgo demo.thrift
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。