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