资讯专栏INFORMATION COLUMN

Thrift

JerryC / 2477人阅读

摘要:远程调用服务调用远端的服务的就像直接在本地调用本质上来说是一种服务的是一种服务但它只限于与语言之间的调用提供了跨语言的服务调用服务的组成部件服务本质上是一种架构服务所以在编写一个组件时需要编写端端还要编写传输的协议框架主要是实现这三种部件的

thrift

rpc(远程调用)服务:调用远端的服务的就像直接在本地调用.本质上来说是一种c/s服务.

Java的RMI是一种rpc服务,但它只限于Java与Java语言之间的调用.thrift提供了跨语言的服务调用.

rpc服务的组成部件

rpc服务本质上是一种c/s架构服务.所以在编写一个rpc组件时,需要编写client端,server端,还要编写传输的协议.rpc框架主要是实现这三种部件的编码.省去我们在去
编写这些RPC组件通用逻辑的地方.我们只需要编写我们的服务即可.

rpc服务的优点 是否需要引入rpc服务

创业公司初期通常不会引用rpc服务,当业务随着公司的发展,业务会不断的进行优化拆分,这时引用rpc服务,主要是用于解决服务之间的依赖关系和服务治理.

在初期,可能只有一个小团队,大家维护着一个项目.随着发展,团队随着业务进行拆分,这时大家可能根据业务创建多个项目,但各业务之间很少会独立存在,出现相互依赖的情况,
当出现这种情况,我们可以先简单的deploy一个直接查询db的jar供别人服务或者他组业务直接connection别人的db操作.这时出现了服务依赖的关系,这种架构发展下去会使服务
的可靠性稳定性都会降低,服务升级也需要依赖的业务一起升级.这时就是引入rpc服务的合适时机.

rpc服务的特点

调用方式方便,像本地化调用一样

通过选择合适的传输协议,服务之间的调用效率将会提高

rpc服务一般都会有一个服务注册中心模块(比如国内的dubbo),通过该模块,可以实现服务的负载和故障迁移

thrift的优点

提供了多种数据序列化方式,常用的binaryjson数据序列化格式

代码自动生成:可以根据thrift文件定义协议,然后自动生成客户端代码

跨语言调用,如果公司是php和Java混合存在,可以考虑

dubbo与thrift

dubbo是一种具体的rpc框架实现,由阿里开源.thrift只是rpc框架的底层部件,上文已说主要实现底层的数据序列化,网络传输,客户端和服务端大部分的编码.

dubbo是在thrift的上层.dubbo支持多种协议的实现,比如rmi hrift.

avro

avro是一个与thrift类似的组件,是hadoof的一个子工程,有兴趣的话也可以研究下两者之间额差异

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/11713.html

相关文章

  • Spring Boot 中使用 thrift 入门

    摘要:简介是什么是一个软件框架,用来进行可扩展且跨语言的服务的开发。的功能允许定义一个简单的定义文件中的数据类型和服务接口,以作为输入文件,编译器生成代码用来方便地生成客户端和服务器通信的无缝跨编程语言。 Thrift 简介 Thrift 是什么 Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Go,P...

    cnio 评论0 收藏0
  • RPC框架实践之:Apache Thrift

    摘要:在文章微服务调用链追踪中心搭建一文中模拟出来的调用链就是一个远程调用的例子,只不过这篇文章里是通过这种同步调用方式,利用的是协议在应用层完成的,这种方法虽然奏效,但有时效率并不高。 showImg(https://segmentfault.com/img/remote/1460000014858219); 一、概述 RPC(Remote Procedure Call)即 远程过程调...

    Gilbertat 评论0 收藏0
  • RPC框架实践之:Apache Thrift

    摘要:在文章微服务调用链追踪中心搭建一文中模拟出来的调用链就是一个远程调用的例子,只不过这篇文章里是通过这种同步调用方式,利用的是协议在应用层完成的,这种方法虽然奏效,但有时效率并不高。 showImg(https://segmentfault.com/img/remote/1460000014858219); 一、概述 RPC(Remote Procedure Call)即 远程过程调...

    keithxiaoy 评论0 收藏0
  • Thrift RPC使用入门

    摘要:使用入门目前项目使用来作为服务之间调用的底层框架,组内人员说可以尝试使用替换他,性能更出色,且使用更方便。所以找了一些资料,为做一个入门。客户端客户端引入接口,使用生成代理,来访问远程服务对象。 thrift使用入门 目前项目使用hessian来作为服务之间RPC调用的底层框架,组内人员说可以尝试使用thrift替换他,thrift性能更出色,且使用更方便。所以找了一些资料,为thri...

    junfeng777 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<