dubbo icon indicating copy to clipboard operation
dubbo copied to clipboard

由于 NettyServer、NettyClient,doOpen 只会执行一次,导致 NettyCodecAdapter 持有 url 不变,从而影响 接口粒度 SPI扩展配置参数 作用失效或异常。(2.5x、2.6.x、2.7.x、3.x版本)

Open daixiansuo opened this issue 3 years ago • 8 comments

image image image

服务暴露 export ,createServer 只会创建一次,但是传入的 url 始终是第一个。 NettyClient 同理。

问题:

NettyServer 接收到请求时,netty pipeline 首先就是 编码解码, 而 NettyCodecAdapter 创建一次,持有的url不变。

如果指定某个 interface 的 序列化方式、timeout等 其它扩展参数, 则不起作用,除非 interface 是第一个对外暴露,如果特殊化配置的 interface 对外暴露,则全局都是这种配置。

daixiansuo avatar Sep 14 '22 12:09 daixiansuo

查看了 2.5.x、2.6.x、2.7.x、3.0.x 版本源码,NettyCodecAdapter 持有的 url 不变,目前只会影响接口粒度 serialization 执定不同SPI扩展。

daixiansuo avatar Sep 15 '22 03:09 daixiansuo

@chickenlj

daixiansuo avatar Sep 15 '22 03:09 daixiansuo

现在高版本 serialization 会在请求的时候先配置好,不会落到通过 channel 获取的,channel 只是一个兜底策略

AlbumenJ avatar Sep 15 '22 06:09 AlbumenJ

org.apache.dubbo.rpc.protocol.dubbo.DubboCodecSupport#getRequestSerialization org.apache.dubbo.rpc.protocol.dubbo.DubboCodecSupport#getResponseSerialization

AlbumenJ avatar Sep 15 '22 06:09 AlbumenJ

高版本 是指 从哪个版本开始 ?

daixiansuo avatar Sep 15 '22 08:09 daixiansuo

2.7.8 版本

AlbumenJ avatar Sep 15 '22 09:09 AlbumenJ

好的,感谢。 哪也就是说 2.7.8 以下的版本都会有这个问题?

daixiansuo avatar Sep 15 '22 14:09 daixiansuo

好的,感谢。 哪也就是说 2.7.8 以下的版本都会有这个问题?

是的

AlbumenJ avatar Sep 16 '22 03:09 AlbumenJ