基于Thrift的跨语言高可用高性能轻量级的RPC框架

Posted 掉进书洞里的猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Thrift的跨语言高可用高性能轻量级的RPC框架相关的知识,希望对你有一定的参考价值。

功能介绍

  • 跨语言通信
    • 方便的使Java、Python、C++三种程序可以相互通信
  • 负载均衡和容灾处理
    • 方便的实现任务的分布式处理
    • 支持服务的水平扩展,自动发现新的服务节点
    • 能够兼容各种异常情况,如节点的异常down机
  • 可视化管理
    • 通过服务管理系统可以方便查看服务状态和统计信息
  • 与原生thrift通信
    • 支持与原生thrift服务进行通信

与业内方案的对比

  • 与thrift、avro、hessian相比,harpc支持了高可用,并且更加易用
  • 与dubbo相比,harpc支持了跨语言,并且更轻量级
  • 与ice相比,harpc性能更高,并且更轻量级

设计思路

HARPC的核心思想是高可用,那么在保证高可用的基础上,还需要具备跨语言、高性能、可视化及轻量级等特性。于是,我们在设计之初就选择了基于thrift开发的方案,底层通信使用thrift来保证高性能和跨语言,然后HARPC来保证高可用和可视化,并且尽量保持简单,来达到轻量级的需求。

  • 整体结构

* 说明
    * 四个部分:client(客户端)、server(服务端)、registry(注册中心,目前为zookeeper集群)、admin(服务管理系统)
    * client和server又包括: your code(用户代码)、harpc(核心框架,包含Java、Python、C++三个版本)、thrift gen(thrift生成的源码文件,用于底层通信)


项目地址:https://github.com/baifendian/harpc

以上是关于基于Thrift的跨语言高可用高性能轻量级的RPC框架的主要内容,如果未能解决你的问题,请参考以下文章

一文带你了解 Thrift,一个可伸缩的跨语言 RPC 框架(pinpoint 源码分析系列)

网络RPC通信之Apache Thrift

RPC框架之Thrift分析(转)

基于Zipkin的Thrift服务RPC调用链跟踪

Thrift RPC的一个简单c++ demo

Apache Thrift系列详解- 概述与入门