在.net core中使用Thrift

  Thrift应用比较广泛,这里不介绍Thrift的基本概念和使用。Thrift对.net支持的很好,但自从.net core诞生引来,我曾多次关注Thrift的官方网站,看看对.net core是否提供支持。今天在看Thrift在Github上的代码镜像时,发现已经有netcore的实现了。地址:https://github.com/apache/thrift/tree/master/lib/netcore.但是看到介绍的第一段文字,不免觉得遗憾“Thrift client library ported to Microsoft .Net Core”,难道只支持Client?于是搜了很多资料,并没有太多介绍,甚至Client的Demo也没有。于是尝试翻看代码,似乎有相关的Server实现,可能是还没有正式发布的缘故。

  不管怎么样,动手试一下。

1、准备工作

  下载Thrift的netcore部分的代码,是一个.net core的项目,编译通过。

  下载Thrift compiler for Windows代码生成工具,thrift-0.11.0.exe,可到官网下载。

  编写thrift IDL文件:

namespace netcore ThriftCore

service Calculator{

  void ping(),

  i32 add(1:i32 num1, 2:i32 num2)

}

  在命令行中执行“thrift-0.11.0.exe --gen netcore tutorial.thrift”,会在目录下生成“gen-netcore\ThriftCore\Calculator.cs”。这部分使用与以前一致,只是语言部分需要指定netcore,而不是csharp。完成后,将Calculator.cs加入到项目中,开始编写服务器和客户端。

2、服务器端实现:

3、客户端实现:

  最后验证结果:

4、结论

  Thrift能够实现.net core下的Server和Client。根据Github上的描述,.net core在部分功能上支持不全面,期待早日有稳定版的发布。

posted @ 2018-01-25 15:11  Perfectionist  阅读(2399)  评论(0编辑  收藏  举报