有了Thrift,跨语言通信不用再发愁

本文探讨了如何通过Thrift框架实现多种语言间的高效互通,通过引入通用语言作为桥梁,大幅减少了翻译模块的数量。Thrift不仅支持多种编程语言,还提供了简便的生成工具,简化了开发过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

地球上有几百个国家,上千种语言,如果两个国家要交往,首先要解决语言互相翻译的问题。那N种语言之间,就需要2*N*(N-1)个翻译。

如果我们要开发一个系统,来实现这么多语言之间的互通,就需要实现2*N*(N-1)个翻译模块。工作量之大!

有一个简单的方案,就是在所有的语言之外找到一种通用语言,实现N中语言和该通用语言的互通,这时仅需要实现2*N个翻译模块。工作量之小!

再进一步,如果能够提供者2*N个与通用语言的公共翻译模块为大家所用,那我们要从任何一种语言到另一种语言的翻译,只需要拿来用即可。

那么,Thrift就是这个公共翻译机。它基于RPC通信,基于二进制(通用语言)进行通信,实现多种语言之间的互通。

Thrift框架是支持语言最多的开源框架:

cocoa(Cocoa)、cpp(C++)、csharp(C#)、erl(Erlang)、hs(Haskell)、html(HTML)、 java(Java)、ocaml(OCaml)、perl(Perl)、php(PHP)、py(Python)、rb(Ruby)、 st(Smalltalk)、xsd(XSD)

它的原理图也很简单:

只需要使用一个简单的命令:
thrift –r –gen py service.thrift
即可生成各种语言的server/client通信端。

目前多语言RCP通信框架有:

  • Facebook的Thrift:基于C++,开源,跨语言C++、C#、Erlang、Java、Perl、PHP、Python、 Ruby、HTML、XSD、Smalltalk、Cocoa、OCaml、Haskell
  • Google的Protocol Buffers:基于C++,开源,基于C++, Java, Python
  • Baidu使用的ICE基于C++,开源
  • Renren使用ACE基于C++(比ICE底层)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值