Skip to main content

介绍

raster是什么?

RPC框架是后端架构的基石。也许这么说对于使用HTTP的Web服务不太公平,但就现在而言,由于分布式架构的大量需求,无论是搜索、存储,还是各类计算引擎,基本都建立在RPC之上。

raster是一个完整的C++ RPC框架。

也许您在想,RPC框架已经有成熟的gRPC、thrift等等了,raster有什么特别之处呢?

开发raster的想法开始于2015年初。它是作为后端服务的基础组件来开发的,我需要它可以满足基础库的需求;其次我可能会使用多种RPC协议,它要具有多协议支持的能力。当时能够满足这两点的比较出色的框架,就是Facebook的 folly + wangle 组合了。但是folly相对比较重,如果想要做定制的话,有些复杂。因此,我借鉴了它的一些思想和内容,但更加注重于轻量、易用、扩展性,同时,增加了并行计算、监控统计、存储、数据库等实用需求。

raster的主要特性包括:

  • 包含丰富的基础库(有一部分源自 folly
  • 支持异步、协程
  • 支持多个后端并发请求
  • 支持binary、thrift、pbrpc协议
  • 支持并行计算
  • 支持监控统计、存储、数据库等扩展功能

raster目前用在哪里?

raster的开发初衷是可以用来快速完成C++服务的开发,目前用于 rddoc.com 的搜索、持久化KV存储、代理服务等。

raster未来会如何发展?

分布式系统是目前的热点领域,围绕着存储、计算、机器学习等等,业界做了很多框架,但多数都是依自身需要从头做起,通用性上存在不足。

我打算在raster的基础上,开发服务治理、函数计算引擎。以期能够在分布式计算领域实现一整套的解决方案。raster本身作为基础组件提供支持,在未来会在性能、协议、功能等方面进一步优化和扩展。