以gRPC为例,只支持pb生成的类型,不支持pb里定义的原生类型,如int32/string 等。
比如下面的gRPC配置是不合法的,不能返回int32,要定义包装一层:
```
// The test service definition.
service Test {
// Sends a greeting
rpc SayHello (HelloReply) returns int32;
}
```
---
目前dubbo里pb支持了原始类型,但 map只支持 `<String,String>` 。
1. 这样子对于用户来说是很困惑的,为啥 map只能是`<String,String>` 。
2. 目前没有太好的办法解决所有的类型问题,可能到最终也没有办法解决
---
所以,建议dubbo里去掉原始类型的支持,和gRPC类似,只支持pb生成的类型。
1. 本质上rpc函数的参数和返回值,都是一个pb定义的对象,它是有tag的,它里面是可以增加/废弃字段的。如果只有原始类型的话,那么就没有tag了
2. gRPC本身不支持pb里的原始类型,说明gRPC本身知道里面的坑
3. 用pb本身的方式来包装一下,对性能来说,没有损失
[ Full content available at: https://github.com/apache/dubbo/issues/5714 ]
This message was relayed via gitbox.apache.org for
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]