在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
本文将介绍由 Facebook 开发的远程服务调用框架 Apache Thrift,它采用接口描述语言定义并创建服务,支持可扩展的跨语言服务开发,所包含的代码生成引擎可以在多种语言中,如 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk 等创建高效的、无缝的服务,其传输数据采用二进制格式,相对 XML 和 JSON 体积更小,对于高并发、大数据量和多语言的环境更有优势。本文将详细介绍 Thrift 在C#语言下的使用方式,并且提供丰富的实例代码加以解释说明,帮助使用者快速构建服务。 完善开发工具通过nuget在vs2019中安装thrift在项目中引用右键点击管理Nuget程序包,在打开的界面输入thrift,如下图: 我们选择ApacheThrift这一项进行安装,安装后,在我们项目里有Thrift45.dll的引用,如下图: 下载thrift代码生成工具thrift是支持异构语言、异构平台的通信开发RPC框架,它通过中间语言IDL进行描述你要定义的结构、类、服务等,并通过代码生成工具生成各个语言上对应的代码。 接下来,我们进入Apache网站Thrift项目下载Thrift代码生成工具,如下图: 我们把下载的这个exe文件放到我们项目的根目录下,以备后用,如下图: 至此,关于thrift的开发工具,我们已经准备完毕,接下来来编写thrift接口描述文件 thrift描述文件thrift提供的接口描述文件是以thrift结尾的格式文件,我们来解释一下这种IDL的语法,
在IDL描述文件中,Thrift除了对类型的定义外,我们还需要记住一下知识点:
使用方法,pe1.thrift文件定义如下:
在其他文件中,引入上述文件,定义如下:
当定义完描述文件后,我们通过如下cmd命令生成代码文件:
我们先要通过cd 将当前路径跳转到thrift-0.12.0.exe所在的路径 示例我定义了了一个描述文件,如下:
我们通过上述命令执行后,生成的代码结构如下图: 我们打开people.cs可以看到struct people生成了如下代码:
这里需要注意一下people类的命名空间,这和我们上文讲的时一致的。 该类是我们使用该框架的重点,它给我们生成了客户端和服务器端代码,从图中我们可以看该文件下生成了两个接口ISync和Iface,前者是同步方法,后者生成的是异步调用方法,接下来是一个供我们客户端调用的类,它继承了iface接口,而iface又继承了ISync接口;再往下看是一个Processor,是服务端使用的类。 结尾这篇文件我们讲了从0到1使用thrift框架的方法,也讲了一些该框架的基本知识,接下来的文件,我们将通过一个示例具体讲解一下service指令代码生成的代码的具体含义和使用方法 |
请发表评论