框架介绍
Flare是广泛投产于腾讯广告后台的现代化C 后台开发框架。
设计关注点主要在于长尾延迟低、接口易用。同时,在不影响长尾延迟的前提下,我们做了大量的架构及微观的性能优化以提升吞吐。
Flare主要包含了基础库、RPC、各种常用网络客户端、单测工具等。通过自底向上的设计将这些融合在了一整套的运行时之中。这一方面提供了更多的优化可能性,一方面也降低了新服务的启动门槛、提升研发效率。
适用场景
我们主要关注通用后台服务的开发场景,这通常意味着:
· 业务形态多样
· 可以容忍一定量的系统(如内核的协议栈)/框架级的性能开销
· 对研发、测试、运维效率有较高的需求
我们不考虑如下场景:
· 极高的性能要求(如DPDK等场景)
· 高度针对性优化(如4层负载均衡等)
功能介绍
Flare具有以下一些特点:
· 基于C 17开发,提供现代化的开发接口;
· 底层使用用户态线程,实现高性能的同步阻塞操作;
· 支持用户态线程之上的Future,实现同步、异步、第三方库等多种异构设计的有机结合;
· 提供了常用的C 基础库、基于Protocol Buffers的RPC框架、支持HTTP/2的客户端、腾讯云COS客户端、Redis客户端等;
· 通过动态类注册机制支持多种RPC协议、RPC调用追踪、监控上报、配置中心、名字解析等;
· RPC支持一问一答、单向流式、双向流式多种模式;
· 针对单测提供了各种内置的客户端的MOCK支持;
· 支持x86(主要)/AArch64/ppc64le多种ISA;
开源获取
?Github地址:https://github.com/Tencent/Flare
https://github.com/Tencent
(点击文末阅读原文直接访问)
请给项目 一个 Star !
欢迎提出你的 issue 和 PR!
国内镜像地址:
https://git.code.tencent.com/Tencent_Open_Source
(登录后才能访问公开项目)
腾讯工蜂源码系统为开源开发者提供完整、最新的腾讯开源项目国内镜像
关注腾讯开源公众号
获取更多最新腾讯官方开源信息!