dangdangdotcom / dubbox

Dubbox now means Dubbo eXtensions, and it adds features like RESTful remoting, Kyro/FST serialization, etc to the Dubbo service framework.
http://dangdangdotcom.github.io/dubbox
Apache License 2.0
4.89k stars 2.06k forks source link

升级netty到4.x版本 #8

Open yuchen99 opened 9 years ago

yuchen99 commented 9 years ago

希望能升级吧netty升级到最新的版本 http://www.infoq.com/cn/news/2013/11/netty4-twitter

chengdedeng commented 9 years ago

我正在做这件事情,目前还未完成。

li-shen commented 9 years ago

由于升级netty可能对dubbo稳定性有较大的影响,所以也许需要详细的探讨。@yuchen99 @chengdedeng 方便的话来qq群一起讨论下吧

kangfoo commented 9 years ago

我最近在写 netty3.x 和 netty5.x 的TCP 私有协议测试时就发觉 netty3.x 不仅API函数晦涩,模型也还不怎么好控制。但 服务器端的通讯模型都是netty3的不敢轻易造次。和大伙一起来学习了。

chengdedeng commented 9 years ago

好的,netty3到netty4变动非常大,考虑到稳定性这块,我觉得可以当做一个扩展点加入进去,方便随时切换。 --  gmail Sent with Airmail

在 2014年11月21日 上午11:52:47, 沈理 (notifications@github.com) 写到:

由于升级netty可能对dubbo稳定性有较大的影响,所以也许需要详细的探讨。@yuchen99 @chengdedeng 方便的话来qq群一起讨论下吧

— Reply to this email directly or view it on GitHub.

li-shen commented 9 years ago

是类似这种吗?dubbo-remoting-netty4

chengdedeng commented 9 years ago

对的,为了安全,我觉得这样,可以减少风险。目前我就是准备这样升级。晚上,我们在群里面详细聊。

杨果 --  outlook Sent with Airmail

在 2014年11月21日 下午2:17:06, 沈理 (notifications@github.com) 写到:

是类似这种吗?dubbo-remoting-netty4

— Reply to this email directly or view it on GitHub.

li-shen commented 9 years ago

yuchen99 commented 9 years ago

好的。支持。

ychuan commented 9 years ago

我尝试做了升级到netty最新版 https://github.com/ychuan/dubbo-remoting-netty4

kangfoo commented 9 years ago

我把你的代码看了下, 有3个问题:

  1. netty4 稳定版本目前是 4.0.24.Final
  2. 你的代码用的是 非 maven 组织的,包名也改动了些,也没看到测试代码
  3. 根据 https://github.com/alibaba/dubbo/commit/ae562840557bae790e56c1d6d2a82a4ba055790a 中的提示和你代码中使用的 codec 接口,对于到你的实现方式,可能还需要再修改。 我这边根据 code2 改动的 有 io.netty.handler.codec.DecoderException: NettyCodecAdapter$InternalDecoder.decode() did not read anything but decoded a message. 错误。暂时没改动好,我仅仅是 打了些 patch. 目前的 dubbo 改动 netty 需要同时修改:
    • dubbo-admin
    • dubbo-demo-consumer
    • dubbo-demo-provider
    • dubbo-monitor-simple
    • dubbo-parent
    • dubbo-remoting-netty
    • dubbo-test-benchmark-client
    • dubbo-test-benchmark-server

工程。

ychuan commented 9 years ago

多谢指点,我用Netty4.1.0.Beta3的原因是:改版本增加了mqtt协议的实现 因为我对dubbo还不是特别了解,所以是“尝试”做了升级 见笑了,我会再继续改进

kangfoo commented 9 years ago

比我好,我越弄越挫。

meadlai commented 9 years ago

可以升级到netty5.0了. 目前我们已经开始使用Netty-5.0.0.Alpha1

usc commented 9 years ago

做过 Netty4.x 和 Netty5 的benchmark,发现性能比3差蛮多的,网上也有类似的情况 链接1 , 链接2

wuwen5 commented 9 years ago

https://github.com/wuwen5/dubbo-remoting-netty4

不影响原版本可以直接依赖,可以同时兼容netty3和Netty4

wuwen5 commented 9 years ago

去年10月份搞了下,后来用dubbo自带的benchmark 反复压测了下 效果不明显(本机简单的压了下),所以后来没有继续了。

不过再gc方面 4有明显改善 大家有条件的 也可以压测下。

chengdedeng commented 9 years ago

这个必须顶,我改了一半,一直没有时间完成。到时候测试,有消息回复你

在 2015年2月3日,下午5:04,wuwen notifications@github.com 写道:

去年10月份搞了下,后来用dubbo自带的benchmark 反复压测了下 效果不明显(本机简单的压了下),所以后来没有继续了。

不过再gc方面 4有明显改善 大家有条件的 也可以压测下。

— Reply to this email directly or view it on GitHub https://github.com/dangdangdotcom/dubbox/issues/8#issuecomment-72616081.

wuwen5 commented 9 years ago

有点需要注意的 Netty3 中TCP_NODELAY默认值是false,而netty4中默认值是true, 所以保持dubbo netty3同样的实现 这个需要保持一致。Netty4中在server端要设置为false,否则在做压测结果对比的时候会差距很大.

li-shen commented 9 years ago

yuchen99 commented 9 years ago

liuzhongh commented 9 years ago

https://github.com/wuwen5/dubbo-remoting-netty4 用这个测试时如果方法中抛出异常会报超时的错误,不知是不是配置有问题还是哪的问题,正在排查,有处理好的麻烦告之.

orika commented 8 years ago

看起来没那么必要,大部分的性能消耗在应用而不是网络框架 网络框架还是选稳定的好,网络框架不稳定出现问题定位都很难 先跑满系统资源再谈这些吧