Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

支持bRPC网关转发baidu协议请求的功能 #2405

Open
chenBright opened this issue Oct 9, 2023 · 7 comments
Open

支持bRPC网关转发baidu协议请求的功能 #2405

chenBright opened this issue Oct 9, 2023 · 7 comments
Labels
feature new feature

Comments

@chenBright
Copy link
Contributor

chenBright commented Oct 9, 2023

Is your feature request related to a problem? (你需要的功能是否与某个问题有关?)

目前brpc框架不支持bRPC网关服务高效地转发baidu协议的请求——只反序列化meta部分,直接转发payload,无需反序列化payload。

Describe the solution you'd like (描述你期望的解决方法)

  1. baidu协议实现类似http_master_service的功能,接管所有baidu协议流量。同时,http_master_service可用于多语言接入bRPC服务场景。
  2. baidu协议meta中支持用户自定义字段(kv),用于传递upstream信息、路由信息等。
  3. 支持baidu协议泛化调用,payload支持pb序列化数据,网关服务可以不受服务端pb的限制(brpc是否支持泛化调用,后续是否有相关计划? #1385 中有相关咨询)。同时,扩展payload以支持其他序列化数据(例如json),网关具备了多语言接入brpc服务的能力了。

Describe alternatives you've considered (描述你想到的折衷方案)

Additional context/screenshots (更多上下文/截图)

@chenBright
Copy link
Contributor Author

#2406 实现baidu协议meta中传递用户自定义字段的特性

@chenBright chenBright added the feature new feature label Oct 9, 2023
@wwbmmm
Copy link
Contributor

wwbmmm commented Oct 13, 2023

related issue: #1444

@yanglimingcn
Copy link
Contributor

功能3的意思是用户可以不用pb协议,使用其它类型协议也可以是吗?c++客户端到服务端直接这样可以吗?中间不用加一层代理。

@chenBright
Copy link
Contributor Author

用户可以不用pb协议,使用其它类型协议也可以是吗?

要求能跟pb互转,例如json。

c++客户端到服务端直接这样可以吗?

可以的。HTTP body类似。

@yanglimingcn
Copy link
Contributor

为啥需要和pb互转呢?我理解这个过程bRPC完全透传了用户的消息,不用做任何处理,就类似attachment。
bRPC只处理baidu_std这层协议使用的是pb。

@chenBright
Copy link
Contributor Author

chenBright commented Jun 11, 2024

嗯嗯,网关只转发baidu协议请求的话,是不需要json、pb互转的。

扩展一下,网关要支持多语言(php、nodejs、python等)接入baidu协议的brpc服务的话,client的payload一般使用json,网关负责服务发现和转发payload,brpc服务需要支持json、pb互转的能力。

@chenBright
Copy link
Contributor Author

稍微修改了一下原来的描述。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature new feature
Projects
None yet
Development

No branches or pull requests

3 participants