博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Thrift初试
阅读量:4333 次
发布时间:2019-06-07

本文共 1142 字,大约阅读时间需要 3 分钟。

Restful 基于 Http 进行通讯。

  • 开放、标准、简单、兼容性升级容易;
  • 性能略低。在 QPS 高或者对响应时间要求苛刻的服务上,可以用 RPC,RPC采用二进制传输、TCP 通讯,所以通常性能更好。

RPC通讯

  • 效率相对较高
  • 耦合度强,如果兼容性处理不好的话,一旦服务器端接口升级,客户端就要更新,即使是增加一个参数,而 rest 则比较灵活。

最佳实践:对内一些性能要求高的场合用 RPC,对内其他场合以及对外用 Rest。比如 web 服务器和视频转码服务器之间通讯可以用 restful 就够了,转账接口用 RPC 性能会更高 一些。

以上参考:老杨的课件。

 

Thrift是一个跨语言通信的服务框架,不同语言开发的程序可以通过Thrift来进行通信。

使用

下载:

把 thrift-***.exe 解压到磁盘,改名为 thrift.exe(用起来方便一些)

编写 **.thrift 文件(IDL)

根据IDL,自动生成对应的语言代码:

thrift -gen csharp f:\netcore\Thrifts\school.thrift

 

一个简单实例

 

一个宿主寄宿多个服务:

//关联处理器与服务的实现TProcessor helloProcessor = new HelloService.Processor(new MyHelloService());TProcessor schoolProcessor = new SchoolService.Processor(new MySchoolService());//创建服务端对象 var processorMulti = new TMultiplexedProcessor();processorMulti.RegisterProcessor("helloService", helloProcessor);processorMulti.RegisterProcessor("schoolService", schoolProcessor);TServer server = new TThreadPoolServer(processorMulti, serverTransport, new TTransportFactory(), factory);

  

参考

  • Thrift总结:

  • 实现Thrift连接池:

[1]“Thirft框架介绍”

[2]“Thrift使用指南”

[3]“使用Thrift RPC编写程序”

[4]“让Thrift支持双向通信”

[5]“浅谈Thrift内部实现原理“

转载于:https://www.cnblogs.com/tianboblog/p/10064696.html

你可能感兴趣的文章
feign调用spring clound eureka 注册中心服务
查看>>
ZT:Linux上安装JDK,最准确
查看>>
LimeJS指南3
查看>>
关于C++ const成员的一些细节
查看>>
《代码大全》学习摘要(五)软件构建中的设计(下)
查看>>
C#检测驱动是否安装的问题
查看>>
web-4. 装饰页面的图像
查看>>
微信测试账户
查看>>
Android ListView上拉获取下一页
查看>>
算法练习题
查看>>
学习使用Django一 安装虚拟环境
查看>>
Hibernate视频学习笔记(8)Lazy策略
查看>>
CSS3 结构性伪类选择器(1)
查看>>
IOS 杂笔-14(被人遗忘的owner)
查看>>
自动测试用工具
查看>>
前端基础之BOM和DOM
查看>>
[T-ARA/筷子兄弟][Little Apple]
查看>>
编译Libgdiplus遇到的问题
查看>>
【NOIP 模拟赛】Evensgn 剪树枝 树形dp
查看>>
java学习笔记④MySql数据库--01/02 database table 数据的增删改
查看>>