Thrift与WCF、Dubbo的不同
具体的差异,大家可以在网上找各种教程,我这里就不再过多的分析!我这里主要说明我们在使用中的差异。如下:
1、Thrift是跨语言和平台的,WCF、Dubbo等主要是应用于所在语言平台
2、Thrift是有自己的语法体系IDL,并且为了能够生成相应语言的代码,所以它融合了很多不同语言的特性
正是因为这两个区别,在使用的过程中,使用起来要有些不同
我在使用中是如何来界定的
这里只分析了我的界定方式,与实际应用中你的选择不一定相同。但这并不代表我是对的,或我是错的,只是方法和方式上有所不同。
1、Thrift使用场景重要性(按可行性排名):多系统间数据(算法应用)传递、多并发算法应用分拆、系统架构分拆
2、Thrift分拆标志(按优先级):业务划分、功能划分、领域划分
3、Thrift代码管理:服务提供方管理、第三系统管理
界定下来了,如何去分析使用呢?
1、一般情况下,使用RPC也就那寥寥几种原因,这里的三种原因,大部分已经涵盖。Thrift相对于dubbo等使用起来还是有一些不便(或者说维护没有那么方便),因此,在做系统架构分拆时,一般还是少用,比如:我使用的python,我在做系统架构分拆时,用得更多的是使用setuptools,将需要分拆的模块都封装起来;多并发也是一样,有很多可用的架构,不一定要用thrift;但多系统间(含不同的语言环境)却不同,这是thrift应用的强项。
这里要说一下,我在实际应用中就犯了这个错。我使用的是python,我很想在实际应用中将java等语言加入(因为我过去带的团队大部分用的还是java),所以在开篇的时候我说过,我就要使用thrift来做RPC。选择没有错,错在时机,在没有用到其他语言或系统前,thrift只会给我带来事情多,并没有太多其他的好处。
2、分拆方法上面来说,业务划分更加合理,这个与系统间互通有关,实际上也是1中所提到的多系统间调用所决定的;功能实际上就更像是并发时使用的多一些;领域划分主要是架构层面划分,一般慎用,这个有点像你一定要把所有的代码基于RPC来做是一样的。
3、如果没有架构师团队,你就乖乖的用服务提供管理!
分析完后,您是否需要用,或者怎么用,应该就比较清晰了!