brpc icon indicating copy to clipboard operation
brpc copied to clipboard

baidu-std协议支持传输任意格式的数据

Open serverglen opened this issue 4 years ago • 4 comments

现状说明 baidu-std协议目前支持传输任意类型的request,但是不支持解析任意类型的response,目前内部版本已经实现了baidu-std协议下支持传输任意类型的数据格式

需求描述 用户可以通过baidu-std协议传输任意格式的数据,比如:string,json等等,用户自己对数据进行打包和解包,rpc框架不需要关心

实现方案

  • 新增SerializedResponse类(参考SerializedRequest)
  • 在baidu-std协议ProcessRpcResponse函数中判断 cntl->response()->GetDescriptor() == SerializedResponse::descriptor()

serverglen avatar Jun 22 '21 06:06 serverglen

Hi @serverglen,如果已经有实现的话,是否可以提交上来呢

lorinlee avatar Jun 26 '21 08:06 lorinlee

Hi @serverglen,如果已经有实现的话,是否可以提交上来呢

嗯,这几天提交上来。

serverglen avatar Jun 28 '21 02:06 serverglen

Hi @serverglen,如果已经有实现的话,是否可以提交上来呢

@lorinlee 已提交 #1457

serverglen avatar Jul 02 '21 13:07 serverglen

对于brpc网关的场景(A(client) -> B(gateway) -> C(server)),server是一个普通的brpc服务,支持baidu协议。我们期望B发出去的数据格式是json的时候,C也能序列化成pb Message。A可以是多语言client,只要按照B的协议格式设置好路由策略、方法、数据即可。

chenBright avatar Oct 13 '23 02:10 chenBright