美文网首页技术改变人生
注意dubb2.7.4版本的一个bug

注意dubb2.7.4版本的一个bug

作者: keker_zzzZ | 来源:发表于2019-12-16 20:12 被阅读0次

    原因

    1. 今天给公司搭建一个新项目,所以想升级dubbo版本,现在dubbo最新版本是2.7.4.1, 当时想可能不太稳定,所以就往前推一个版本使用了2.7.4。 结果悲剧发生了,下面请看详细分析。


      version.png
    1. dubbo使用zookeeper作为注册中心dubbo.registry.protocol=zookeeper,当客户端使用zkclient dubbo.registry.client=zkclient的时候, 启动服务就出现了空指针异常,感觉这样抛出异常跟突兀。所以就跟了一下源码,看下图发现问题了吗。 ConfigCenterConfig cc = configManager.getConfigCenter().orElse(new ConfigCenterConfig()); 这行代码执行orElse操作的时候并不会初始化new ConfigCenterConfig()的成员变量private Map<String, String> parameters;,然后再执行cc.getParameters().put() 操作就出现空指针吗? 所以此处肯定是代码逻辑不够严谨造成的。
      dubbo2.7.4.png
    dubbo2.7.4.png

    3.但是2.7.4.1已经解决了此问题,下图是dubbo2.7.4.1版本的源码。很明显先进行了判断if (cc.getParameters() == null) { cc.setParameters(new HashMap<>()); }

    dubbo2.7.4.1.png

    总结

    本想着dubbo2.7.4会稳定点,没想到就发现了这个bug,但是dubbo还是在下个小版本把该问题给解决了,但是也给自己一个提示不管做开源还是公司内部系统,都要全面考虑兼容性和有可能出现异常的情况,特别是外部系统调用的时候异常提示是否明确都是要考虑的。

    相关文章

      网友评论

        本文标题:注意dubb2.7.4版本的一个bug

        本文链接:https://www.haomeiwen.com/subject/efodnctx.html