2个dubbo应用存在互相调用,怎么启动?

问题描述

现在给公司的一个大项目做水平拆分,拆成2个web项目,其中共用的部分使用dubbo调用,都拆完了突然发现一个问题这2个项目a和b,相互之间都有调用,a项目提供接口供b调用,同时a也调用b项目提供的接口,那么问题来了我启动a的时候,由于b还没有启动,在spring加载的时候会报错No provider available for the service同样我单独启动b的时候也是一样,这样就造成了单独启动哪个都启动不来的情况。。这个怎么解决?

解决方案

dubbo启动有一个选项:即是否检查依赖的服务是否启动,把这个选项置为false就可以了。这个是从文档上面摘下来的:<dubbo:reference interface="com.foo.BarService" check="false" />
解决方案二:
同学,这种情况考虑下是否可以从业务角度去避免该问题,循环dubbo依赖从技术角度去解决是很乏力的。
解决方案三:
1. 改dubbo源码, 在启动时,将未注入成功的dubbo service先给存下来2. 消费端增加aop,调用方法之前再次尝试注入

时间: 2024-09-14 01:26:13

2个dubbo应用存在互相调用,怎么启动?的相关文章

spring-2个dubbo应用存在互相调用,怎么启动?

问题描述 2个dubbo应用存在互相调用,怎么启动? 现在给公司的一个大项目做水平拆分,拆成2个web项目,其中共用的部分使用dubbo调用,都拆完了突然发现一个问题 这2个项目a和b,相互之间都有调用,a项目提供接口供b调用,同时a也调用b项目提供的接口,那么问题来了 我启动a的时候,由于b还没有启动,在spring加载的时候会报错 No provider available for the service 同样我单独启动b的时候也是一样,这样就造成了单独启动哪个都启动不来的情况..这个怎么解

用空格键调用Windows7启动管理器

若想进入Windows XP系统的安全模式,则必须要在启动画面出现前"狂按"F8键.而在Windows Vista系统中,比传统的各种功能菜单选项有所改进,并被命名为"Windows管理器".同样可通过F8键进入,不过,很多用户可能还不知道,其实在系统启动时,按动空格键也可快速调用启动管理器.而作为Vista的继任者,Windows7也将继承这一传统,在BIOS加载完毕后轻按空格键即可呼出 Windows启动管理器. 当然,在Windows 7中,当用户按下F8时,

Swing客户端调用系统命令 启动office(Word,Excel)

问题描述 public static void executeCommand(String command) { System.out.println(command); Runtime r = Runtime.getRuntime(); Process p = null; try { p = r.exec(command); } catch (IOException e) { e.printStackTrace(); } }传 notepad , calc 都能打开,但是启动winword报错

浏览器url调用并启动本地应用程序实例

常见的诸如网页点击某个链接启动了本地的迅雷.Q旋风等下载工具,亦或者是在某网页点击某QQ头像弹出本地QQ.其实方法比较简单,就是windows下注册表里面写好了,如果浏览器的开头(协议标识符)是tencent://之类的就打开QQ,其他也类似.下面给一个例子. 本地应用程序如下: #include <iostream> int main(int argc, char** argv) {     std::cout << "Hello world." <&l

架构师之路-在Dubbo中开发REST风格的远程调用

概述 dubbo支持多种远程调用方式,例如dubbo RPC(二进制序列化 + tcp协议).http invoker(二进制序列化 + http协议,至少在开源版本没发现对文本序列化的支持).hessian(二进制序列化 + http协议).WebServices (文本序列化 + http协议)等等,但缺乏对当今特别流行的REST风格远程调用(文本序列化 + http协议)的支持. 有鉴于此,我们基于标准的Java REST API--JAX-RS 2.0(Java API for REST

dubbo调用时报异常channel is closed

问题描述 dubbo调用时报异常channel is closed DUBBO服务消费方调用时报如下异常,一般是什么原因导致的? com.alibaba.dubbo.remoting.RemotingException: message can not send, because channel is closed 解决方案 OK了 原来是网络不通 从服务消费方到服务提供方网络问题

Dubbo协议与连接控制

协议参考手册 (+) (#) 推荐使用Dubbo协议 性能测试报告 各协议的性能情况,请参见:性能测试报告 (+) dubbo:// (+) (#) Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况. Dubbo缺省协议不适合传送大数据量的服务,比如传文件,传视频等,除非请求量很低. <dubbo:protocol name="dubbo" port="20880" />

tomcat启动时Dubbo注册zookeeper的信息刷的很慢

问题描述 tomcat启动时Dubbo注册zookeeper的信息刷的很慢 最近tomcat启动时Dubbo注册zookeeper的信息刷的很慢,而且tomcat启动时间越来越长,查看zookeeper.out,几乎1秒钟刷新一条信息.将zookeeper的地址换成其他可以正常启动项目的机器,一样很慢.而且同一台电脑上的其他项目在注册zookeeper时速度很快. 跪求大神解答 解决方案 不知道大神解决问题没有, 我也遇到了相同的问题 解决方案二: 不知道大神解决问题没有, 我也遇到了相同的问题

使用dubbo分布式框架开发项目

Dubbo概述 •Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案 •Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点 Dubbo背景 Dubbo的简介 •Dubbo是一个分布式服务框架,Dubbo的架构如图所示: l节点角色说明: lProvider: 暴露服务的服务提供方. lConsumer: 调用远程服务的服务消费方. l