摘要:服务器端使用它来做顶层接口,编写实现类。会自动生成同步调用和异步调用的两个接口。方法参数的封装类,以方法名命名方法返回值的封装类,以方法名命名参考个人博客
基本概念
轻量级、跨语言的RPC框架
功能特点:
基于IDL(接口描述语言)生成跨语言的RPC clients and servers,支持超过20种语言
支持二进制的高性能的编解码框架
支持NIO的底层通信
相对简单的服务调用模型
Thrift架构在介绍Thrift架构前,先了解下一般RPC框架的组成结构
RPC组成结构
包括服务器端发布和调用处理组件,网络IO组件,协议编解码组件,客户端调用组件,客户端代理组件等等
各部分解释可看图中英文,释义补充:
1、用户自定义类型序列化方式将在通过IDL生成的代码中实现,实际也是根据struct中的各个field调用TProtocol的基础类型序列化实现
2、RPC stub中已经提供了Service Client,其作用是构造Thrift调用参数,发起调用,解析结果;而白色部分需用户自己写的Client是实例化TProtocol、TTransport组件,设置业务参数,通过调用Service Client发起请求
TProtocol 协议和编解码组件
TTransport IO传输组件
TProcessor 服务调用处理组件
TServer,服务器网络IO
IDL 服务描述组件,负责生产跨平台客户端
namespace 定义包名
struct 定义服务接口的参数,返回值使用到的类结构。如果接口的参数都是基本类型,则不需要定义struct
service 定义接口
bool 布尔型 byte 8位整数 i16 16位整数 i32 32位整数 i64 64位整数 double 双精度浮点数 string 字符串 binary 字节数组 listList集合,必须指明泛型 map Map类型,必须指明泛型 set Set集合,必须指明泛型
生成的类包括5部分
接口类型,默认名称都是Iface。这个接口类型被服务器和客户端共同使用。服务器端使用它来做顶层接口,编写实现类。客户端代码使用它作为生成代理的服务接口。会自动生成同步调用和异步调用的两个接口。
客户端类型,一个同步调用的客户端Client,一个异步调用的客户端AsyncClient
Processor,用来支持方法调用,每个服务的实现类都要使用Processor来注册,这样最后服务器端调用接口实现时能定位到具体的实现类。
方法参数的封装类,以"方法名_args"命名
方法返回值的封装类,以"方法名_result"命名
http://blog.csdn.net/iter_zc/...
个人博客:https://my.oschina.net/hebaod...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/71166.html
摘要:可以在主进程中抛出一个子进程,子进程中实现的自动发现,子进程侦察到节点数据变化时,主动通知主进程。架构的整体思路是子进程实现的自动发现,主进程维护一个节点数据的共享变量,其他服务要想使用节点数据时,从主进程中获取。 php是当下最流行的web服务器端语言,zookeeper是大型分布式协同工具,本文在这里介绍一种架构实现php服务器对于zookeeper数据变化的自动监听 一.问题背景...
摘要:微服务集成服务间通信微服务架构下,应用的服务直接相互独立。微服务架构倾向于降低中心消息总线类似于的依赖,将业务逻辑分布在每个具体的服务终端。 引言:微服务是当前软件架构领域非常热门的词汇,能找到很多关于微服务的定义、准则,以及如何从微服务中获益的文章,在企业的实践中去应用微服务的资源却很少。本篇文章中,会介绍微服务架构(Microservices Architecture)的基础概念,...
摘要:微服务集成服务间通信微服务架构下,应用的服务直接相互独立。微服务架构倾向于降低中心消息总线类似于的依赖,将业务逻辑分布在每个具体的服务终端。 引言:微服务是当前软件架构领域非常热门的词汇,能找到很多关于微服务的定义、准则,以及如何从微服务中获益的文章,在企业的实践中去应用微服务的资源却很少。本篇文章中,会介绍微服务架构(Microservices Architecture)的基础概念,...
阅读 1870·2021-11-22 15:25
阅读 1238·2021-11-19 09:40
阅读 1832·2021-09-27 13:57
阅读 974·2021-09-22 15:10
阅读 953·2021-08-16 11:01
阅读 2932·2021-07-23 17:51
阅读 734·2019-08-30 15:55
阅读 807·2019-08-30 13:58