怎么监控thrift的socket
1个回答
2016-11-21
展开全部
使用thrift需要先定义接口文件,在thrift里简称叫IDL,全称叫Interface Description Language,接口描述语言。接口描述语言里面需要定义接口中所使用的数据类型,方法等等。
数据类型包括
基本类型:
bool: 布尔类型(true或者false)
byte: 有符号8位整型
i16: 有符号16位整型
i32: 有符号32位整型
i64: 有符号64位整型
double: 64位浮点数
string: UTF8编码的字符串
特殊类型:
binary: 未编码的二进制字节流
struct:结构体类型
container:
list:列表,可以理解为数组,其中的元素可以是任意类型的。
exceptions:
用来抛出你自己定义的异常情况
service:
这个是我觉得最重要的定义,有些地方说是虚函数,我觉得理解成你程序中所使用的方法更容易明白一些。他需要你定义返回类型,这有点类似于C或者java的函数定义。但你要明白,这个返回是给socket的。如果你定义错了,将不仅仅是你得不到返回值这么简单的事情。而是程序会报错
我们来尝试写第一个thrift文件
test.thrift
service test
{
string GetSysVer()
#一个获取系统版本的方法,返回给socket一个字符串
string FileTransfer(1:string filename, 2:binary content )
#传送文件的方法,入口参数为string类型的文件名和二进制流类型的文件内容,方法将给socket一个字符串类型的返回值,如果你需要传送结构体,可以在Service外面定义struct File{1:string filename,2:binary content,3:i64:filelen...}等等,然后用list类型赋值给入口参数,例如string FileTransfer(1:list<File> transfer)
bool FileExists(1:string filename)
#检查server端指定文件是否存在,返回布尔
}
数据类型包括
基本类型:
bool: 布尔类型(true或者false)
byte: 有符号8位整型
i16: 有符号16位整型
i32: 有符号32位整型
i64: 有符号64位整型
double: 64位浮点数
string: UTF8编码的字符串
特殊类型:
binary: 未编码的二进制字节流
struct:结构体类型
container:
list:列表,可以理解为数组,其中的元素可以是任意类型的。
exceptions:
用来抛出你自己定义的异常情况
service:
这个是我觉得最重要的定义,有些地方说是虚函数,我觉得理解成你程序中所使用的方法更容易明白一些。他需要你定义返回类型,这有点类似于C或者java的函数定义。但你要明白,这个返回是给socket的。如果你定义错了,将不仅仅是你得不到返回值这么简单的事情。而是程序会报错
我们来尝试写第一个thrift文件
test.thrift
service test
{
string GetSysVer()
#一个获取系统版本的方法,返回给socket一个字符串
string FileTransfer(1:string filename, 2:binary content )
#传送文件的方法,入口参数为string类型的文件名和二进制流类型的文件内容,方法将给socket一个字符串类型的返回值,如果你需要传送结构体,可以在Service外面定义struct File{1:string filename,2:binary content,3:i64:filelen...}等等,然后用list类型赋值给入口参数,例如string FileTransfer(1:list<File> transfer)
bool FileExists(1:string filename)
#检查server端指定文件是否存在,返回布尔
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询