gRPC 服务参数校验:在 HTTP 层还是 RPC 层进行?

grpc 服务参数校验:在 http 层还是 rpc 层进行?

gRPC 封装 HTTP 服务中的参数校验

在将 HTTP 服务封装到 gRPC 服务中时,关于参数校验的位置存在一些争论。在 Node.js 中使用 Iris 框架和 go-proto-validators 库,出现了不同的意见。

争论的焦点

靠近数据库的一层进行校验:防止恶意调用影响数据库。在 HTTP 参数传入时进行校验:确保参数及时被验证,避免浪费资源。

同事的想法:

认为前端的参数校验不可靠,因此需要在 RPC 服务中再次校验。

作者的想法:

使用 go-proto-validators 在客户端拦截器中进行参数校验,认为这是一种更有效率的方式。

正确的方法

实际上,应该在 HTTP 参数传入时进行参数校验。这可以确保在请求到达 gRPC 服务之前,非法参数已被阻止。

但是,使用 Interceptor 进行校验是否合适?

性能隐患:在 Interceptor 中进行校验可能会造成性能损失,因为此时 gRPC 连接可能已经打开。业务封装:如果将来需要在 HTTP 服务中添加业务封装,则在 Interceptor 中进行校验可能会导致维护困难。

建议

在 HTTP 服务中实现参数校验。根据实际需求,考虑在 Interceptor 中进行额外校验。权衡 Interceptor 校验的性能影响。

以上就是gRPC 服务参数校验:在 HTTP 层还是 RPC 层进行?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2316629.html

(0)
上一篇 2025年2月28日 15:03:51
下一篇 2025年2月28日 15:04:08

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论