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

2024-06-24 719 views
9
image image image

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

问题:

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

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

回答

3

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

8

@chickenlj

0

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

3

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

6

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

2

2.7.8 版本

5

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

6

是的