与 thrift 相比,srpc 所实现的 thrift framed 协议在吞吐和长尾方面性能都远超 thrift 原生框架。srpc 对于 thrift 接口描述文件实现了解析和代码生成,用户在 srpc 上使用 thrift IDL 时无需依赖 thrift 库。
而在 baidu-std 协议的实现上,吞吐和长尾在大部分场景下依然是 srpc 更优。由于 workflow 支持 Windows(同机性能比 linux 快 20%),所以用户得以在 Windows 下使用 brpc。另外,同样是支持 protobuf 的 RPC 框架,由于 srpc 实现了部分 IDL 解析和代码生成,接口形式无需受 protobuf 原始限制,因而所提供的接口比 brpc 更为简洁。
在易用性和可扩展性方面,用户可以通过 http+json 实现跨语言,如果是 server 提供方,用任何语言的 http server 接受 post 请求,解析若干 http header 即可;如果是 client 调用方,用任何语言的 http client 发送 post 请求,添加若干 http header 即可。
3. 与 workflow 的协作
srpc 是一个基于 Sogou C ++ Workflow 的 RPC 项目,所以天然就兼容 workflow 的使用方式,例如提供创建任务的接口来创建一个 rpc 任务、可以把 rpc 任务放到任务流图中,回调函数里也可以拿到当前的任务流、支持 workflow 所支持的其他功能,包括 upstream、计算调度、异步文件 IO 等。
同时,srpc 与 workflow 一起协作还可以完成很多其它事情:
-
srpc 提供了同步、半同步、异步的接口,异步接口可以用来打通 workflow 任务流;
-
服务治理:workflow 的 upstream 是本进程内把一批机器绑定到一个域名下的 upstream 管理,自带多种方式的负载均衡和熔断恢复等机制,srpc 的 client 都可以直接拿来用,一个 client 创建出来对应的是一个 ip 或者带本地服务治理的集群;
-
Client 和 task 其他层级的配置,比如 workflow 的各种超时都可以用上,workflow 的网络请求本身有重试次数,rpc 默认配为 0,有需要的话用户可以自行配置;
-
其他系统资源,rpc 只是网络相关,而 workflow 包含了如计算和异步文件 IO 等资源,这些在打通了任务流之后,都可以为 srpc 所用。
不久之前,搜狗开源了一个轻量级的 RPC 框架——srpc。这是一个基于 Sogou C ++ Workflow 的 RPC 项目,通过解析部分 IDL(接口描述文件) 和进行代码生成,实现了与 workflow 底层通信框架的对接和非常简洁的用户接口。
srpc 整个项目的代码量约有一万行,目前已经在搜狗搜索和搜狐集团团队的多个线上业务中稳定应用。srpc 接口简洁易上手,直接打通了 workflow 的任务流、计算调度、服务治理等功能, 可以快速提升开发效率,对于现有的 pb / thrift 描述文件的项目,也可以做到一键迁移。
1. srpc 项目的架构
srpc 项目支持多个层级的纵向拆解和横向解耦,其中主要包括的层级有用户代码、IDL 序列化、数据组织、压缩、协议和通信。
这些层级之间可以相互拼装,如果想要实现一套代码的高度复用也有多种方式,例如函数重载、派生子类实现父类接口和模版特化等。之后,如果想要进行架构升级,也可以在中间再加一层,或是在某层内横向添加一些内容。
在两个阶段中,位置再次变得更加透明。它们允许客户向提供者指定“我需要X来遵守策略Y和延迟Z”,然后让提供者自动且透明地进行配置。这也可能代表未来的阶段。
分布式云并非没有挑战
在广泛采用分布式云模型之前,必须解决一些问题。例如:
-
分布式云变电站将提供多少公有云功能?尽管这不是分布式云的定义,但它是决定需要哪种风格的分布式云(完全分布式或部分分布式)的一个因素。
-
分布式云变电站将出现哪些自定义方案?
-
如果分布式云变电站向附近的公司开放,谁来支付有效运行所需的增加带宽,又将如何付费?
-
在多个公司之间共享变电站时,收益模型将如何发挥作用?例如,变电站的近邻用户是否向原始云提供商或最初请求安装变电站的企业付费?
-
分布式云变电站必须始终保持连接状态,还是可以可变连接运行?
CIO的注意事项
在CIO看来,分布式云概念将指导云发展的路线图。它将特别有益于寻求新机会来接触分散环境中的客户,以及需要减少延迟的特定于位置的服务。在不牺牲云价值主张的情况下使用第一阶段的按需混合将可以实现真正的混合云计算。因此,分布式云不仅进入了第二阶段的下一代云,而且还为当今的混合技术奠定了坚实的基础。

(编辑:保山站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|