关于 grpc-gateway 的一些理解

锺离明煦
2023-12-01

 

1:一个proto 文件 如果你想把一些接口暴露出去,就可以加上 google.api.http 这个proto文件对应的东西,这样就可以被网关层发现,然后代理了
2:一些微服务接口,不想暴露给用户,就不要加 google.api.http 这个proto文件对应的东西,这样这个接口,只能被rpc调用,不能被rest调用
3:但是一个proto文件一般全部都是rpc,或者全部都是http,不应该混着写,如果想混着写,请把这两类接口单独分开为两个问津,否则的话,一个接口,既能被rpc调用又能被rest调用
4:rpc和rest 鉴权的方式是不一样的,代码逻辑是不同的,如果用jwt_token做http鉴权的话,rpc调用是调不通的,所以请把,需要被网关代理和不需要被网关代理的接口 至少要部署在不同端口上

什么时候用grpc-gateway?
grpc-gateway可以看成一个web框架,比于其他web框架,优势在于,当某些微服务想单独暴露一些rest接口,可以统一代理/管理,
比如可能有10个微服务,平均每个微服务有两个要暴露的接口,那么一个grpc-gateway 就可以把分布在不同(ip:prot)上所有的要暴露的接口统一代理起来
但是如果是普通的web框架,没办法统一管理,

什么情况下用普通的web框架?
如果其他微服务不需要暴露接口,相当于所有的微服务 都是 service层,那么用一个普通的web框架,统一做rest接口就行了
 类似资料: