luckybins
luckybins
Provider使用tri协议启动
> 使用reflection拿到的全路径是 java_package ,而 grpc 标准的全路径是 package,这是合理的 误会了。reflection拿到的是package,但是客户端(不一定是Java,还可能是Postman或者grpcurl)用grpc和package调用不通tri。
> 贴一下 Idl 把 ,然后再说明一下用的是 stub 还是 reflection模式,方便的话提个 demo 的链接上来看看 Provider用的是stub,tri的。序列化方式是protobuf。 Consumer有tri-stub、原生grpc-stub(Java和Golang),也有reflection(Postman和grpcurl) idl和demo,我整理一下。
> 贴一下 Idl 把 ,然后再说明一下用的是 stub 还是 reflection模式,方便的话提个 demo 的链接上来看看 demo在这里,复现方式写到了README.md https://github.com/luckybins/dubbo-proto/tree/master IDL也写在了里面 dubbo-proto-service/src/main/proto/Greet.proto 另外,发现3.1.x,使用了java_package,tri-stub tri-stub之间也是不通的。 既然是全面兼容GRPC和protobuf,还是希望能够支持package与java_pacakge、go_package之类。
猜测,问题的关键在于,对于protobuf,生产者与消费者的进程间桥梁是package,各自进程stub的xxx_package与package相互衔接。如果是golang调用java项目,需要历经go_package -> package -> package -> java_package。而dubbo注册到nacos上的不是package,而是java_package,就使得这个桥梁没有接上。
> 是的,对于3.1.x来说是这样的。而3.2.x,使用grpcurl 127.0.0.1的方式也不行,说明这个版本从package -> java_package这个桥梁也没有接上。
> > 猜测,问题的关键在于,对于protobuf,生产者与消费者的进程间桥梁是package,各自进程stub的xxx_package与package相互衔接。如果是golang调用java项目,需要历经go_package -> package -> package -> java_package。而dubbo注册到nacos上的不是package,而是java_package,就使得这个桥梁没有接上。 > > 对于 pb 来说, 实际的请求path 是 package,在java 测 stub模式下所支持的 path 也是 package,虽然包路径是 java_package,go 侧同理,但是对于服务发现来说,这个可能得考虑一下到底注册 java_package 还是 package 请问,目前服务能够自己声明按照package做服务注册和发现么?