DUBBO 使用问题记录

来源:互联网 发布:搜索引擎优化工作工资 编辑:程序博客网 时间:2024/06/06 15:45
  • 注册中心ZookeeperRegistry.doSaveProperties warn
  • 怎么样一次访问调用集群中所有节点?
  • spring jar包冲突
  • 异步调用问题
  • 服务端开发不注册到中心
  • dubbo-monitor-simple
  • 状态被禁用,管理后台设置无效
  •  

    注册中心ZookeeperRegistry.doSaveProperties warn

    2014-10-1419:56:51WARN  [com.alibaba.dubbo.registry.zookeeper.ZookeeperRegistry.doSaveProperties(221)]  [DUBBO] Failed to save registry store file, cause: Can not loc

    k the registry cache file /homearch/.dubbo/dubbo-registry-192.168.1.109.cache, ignore and retry later, maybe multi java process use the file, please config: dubbo.re

    gistry.file=xxx.properties, dubbo version:2.5.3, current host:192.168.1.22

    java.io.IOException: Can not lock the registry cache file /homearch/.dubbo/dubbo-registry-192.168.1.109.cache, ignore and retry later, maybe multi java process use t

    he file, please config: dubbo.registry.file=xxx.properties

            at com.alibaba.dubbo.registry.support.AbstractRegistry.doSaveProperties(AbstractRegistry.java:193)

            at com.alibaba.dubbo.registry.support.AbstractRegistry$SaveProperties.run(AbstractRegistry.java:150)

            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

            at java.lang.Thread.run(Thread.java:744)

    2014-10-1419:56:51WARN  [com.alibaba.dubbo.registry.zookeeper.ZookeeperRegistry.doSaveProperties(221)]  [DUBBO] Failed to save registry store file, cause: Can not loc

    k the registry cache file /homearch/.dubbo/dubbo-registry-192.168.1.109.cache, ignore and retry later, maybe multi java process use the file, please config: dubbo.re

    gistry.file=xxx.properties, dubbo version:2.5.3, current host:192.168.1.22

    java.io.IOException: Can not lock the registry cache file /homearch/.dubbo/dubbo-registry-192.168.1.109.cache, ignore and retry later, maybe multi java process use t

    he file, please config: dubbo.registry.file=xxx.properties

            at com.alibaba.dubbo.registry.support.AbstractRegistry.doSaveProperties(AbstractRegistry.java:193)

            at com.alibaba.dubbo.registry.support.AbstractRegistry$SaveProperties.run(AbstractRegistry.java:150)

            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

            at java.lang.Thread.run(Thread.java:744)

     

    原因:

    dubbo会默认会在本地缓存注册中心的信息文件,默认路径在//home/[user]/.dubbo/dubbo-registry-192.168.1.109.cache一个服务有多个应用有用到dubbo的时候更新注册中心的本地缓存,在更新本地缓存冲突时,就报了上面的warning

    如何消除这个warn:

    在dubbo.properties文件里加入;dubbo.registry.file=/home/xxx/app/dubbo-registry.propertiesPS:Dubbo将自动加载classpath根目录下的dubbo.properties,可以通过JVM启动参数:-Ddubbo.properties.file=/home/xxx/dubbo.properties 改变缺省配置位置。

    影响:

     这个warn可以忽略,只在存储文件的时候才报,存储的文件在AbstractRegistry构造函数里加载;是在启动的时候用

     

    错误的服务提供者IP注册到中心

     

    hostname解析错误或者可能是使用了VPN,启动了dubbo服务提供者应用,又连了正式环境的注册中心;

     一旦dubbo获取的ip错误后(拨了vpn 本机IP就会有多个),

     这种情况即使提供者服务停掉,目前dubbo没有能力清除这类错误的提供者;

     (需要修改源码测试,需要客户端重新更细包,因为清除动作client端)

     这种情况同样发生在测试的dubbo注册中心;

      

    规避方案:

    1. 线上最好直接把10.10.10.10服务器的2181端口,做ip限制,VPN拨上的IP过滤掉(@旭峰,看能不能做到)
    2. 团队人员行为控制;
    3. 拨VPN又需要调试dubbo提供者的应用时,指定DUBBO服务的主机绑定 

    发现这种情况的解决方法:

    1. 到dubbo管理后台,禁用错误的服务提供者;

    Dubbo主机绑定说明: 

      缺省主机IP查找顺序: 

    • 通过LocalHost.getLocalHost()获取本机地址(hostname做解析,从而获取IP地址的,ping hostname)。
    • 如果是127.*等loopback地址,则扫描各网卡,获取网卡IP。

     

     注册的地址如果获取不正确,比如需要注册公网地址,可以:


    1. 可以在/etc/hosts中加入:机器名 公网IP,比如: 

    test1 205.182.23.201 

    2. 在dubbo.xml中加入主机地址的配置:

    <dubbo:protocol host="205.182.23.201">

    3. 或在dubbo.properties中加入主机地址的配置:

    dubbo.protocol.host=205.182.23.201 或 JAVA_OPTIONS="-Ddubbo.protocol.host=192.168.1.111

    怎么样一次访问调用集群中所有节点?

    配置下消费者端即可。dubbo已经支持广播调用《broadcast》

    <dubbo:referenceid="testservice"interface="xxx.TestService"timeout="8000"cluster="broadcast"/>

    spring jar包冲突

    我们现在用的spring是3,而dubbo引用的是2.5.6,会造成jar包冲突,需要排除

    错误信息:WARN:oejuc.AbstractLifeCycle:FAILED ModelViewController: java.lang.NoSuchFieldError: APPLICATION_CONTEXT_ID_PREFIX

    解决办法:<dependency>

                <groupId>com.alibaba</groupId>

                <artifactId>dubbo</artifactId>

                <version>2.4.9</version>

                    <exclusions>

                    <exclusion>

                        <groupId>org.springframework</groupId>

                        <artifactId>spring</artifactId>

                    </exclusion>

                </exclusions>

    </dependency>

    异步调用问题

      dubbo的异步调用发现个问题

    A -----[异步]-->    B   --[同步调用]-->C

    B同步dubbo调用C,就会直接返回null

    如果B调用C后,下一步还有同步调用D,D返回的会正确;

     

     

    服务端开发不注册到中心

    dubbo服务开发不参加联调的时候,可以不注册到中心
    1.jvm启动参数 -Ddubbo.registry.address=192.168.1.109:2183?register=false
    或dubbo.xml 配置<dubbo:registry address="10.20.153.10:9090" register="false" />(上线要改回来)

     

    dubbo-monitor-simple

     

    里面有个配置dubbo.statistics.directory=${user.home}/monitor/statistics

    下面的监控是写文件的,导致服务器的文件过多,几个月下来inode都要满了。

    定期清理,或者用dubbo-monitor-x吧,入mysql

     

    oschina有一个开源项目:http://git.oschina.net/handu/dubbo-monitor 

     

    状态被禁用,管理后台设置无效

    不知道什么原因,管理后台看服务是禁用状态,而且启用不成功,感觉是哪里配置写进去的地方写错,具体原因没分析,

    解决方法就是去登录zookeeper里手段删除配置节点

    zkCli.sh -server 192.168.1.23:2183

     delete /dubbo/xxxx.xxxx.Service/configurators/xxxxxxx

    1 0
    原创粉丝点击
    热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 u盘闪存坏了怎么办 偏头疼怎么办最快最有效 手机4g信号差怎么办 防爆胎扎了钉子怎么办 多肉干瘪了萎缩怎么办 做了防水还漏水怎么办 厨房做了防水漏怎么办 手表防水膏多了怎么办 单反镜头有指纹怎么办 手机解锁键坏了怎么办 lv包肩带胶熔了怎么办 手机膜进空气了怎么办 铁的下水管漏水怎么办 刚浇的水泥开裂怎么办 马桶移位器堵了怎么办 分散片直接吃了怎么办 坐马桶拉不出来怎么办 泥状面膜干了怎么办 苹果6s掉水里了怎么办 手机充电口松了怎么办 手机液体膜碎了怎么办 车膜贴的太黑了怎么办 苹果7后壳氧化怎么办 苹果6s后盖氧化怎么办 苹果6s后壳氧化怎么办 食道癌吃了就吐怎么办 有眼袋和泪沟怎么办? 泪沟和眼袋都有怎么办 脸上的汗毛很长怎么办 点痣留下褐色印怎么办 氮氧传感器坏了怎么办 考试车离合太松怎么办 胎心监护不过关怎么办 羚羊角的功效与作用发烧怎么办 小孩上课注意力不集中怎么办 2岁宝宝不会说话怎么办 小孩脖子上长淋巴结怎么办 小孩子上课注意力不集中该怎么办 脸过敏干燥起皮怎么办 脸上皮肤干燥起皮怎么办 身上皮肤干燥起皮怎么办