@jobet 你好,想跟你请教个问题:
场景:
用dubbo部署了2个service,分别为A,B。我要部署第2个服务B,B需要调用服务A。
即B既是一个service provider,同时又是A的consumer。
具体怎么配置。谢谢!
按照这个配置,服务启动后在dubbo Admin里看到服务上还有警告标识
可以算是demo吧。
<!-- 生成远程服务代理,可以和本地bean一样使用Service -->
<dubbo:reference id="tccRunService" interface="tf.tcc.service.ITccRunService" registry="tcc"/><dubbo:reference id="tccSsoService" interface="tf.tcc.service.ITccSsoService" registry="tcc"/><!-- 提供方应用信息,用于计算依赖关系 --> <dubbo:application name="Mcs" /> <!-- 使用multicast广播注册中心暴露服务地址 --> <dubbo:registry address="zookeeper://127.0.0.1:2181" id="local"/> <dubbo:registry address="zookeeper://172.16.32.209:2181" id="tcc"/> <dubbo:registry address="zookeeper://172.16.32.208:2181" id="gl"/> <!-- 用dubbo协议在28811端口暴露服务 --> <dubbo:protocol name="http" host="127.0.0.1" port="28811" /> <!-- 定义超时时间 --><dubbo:provider timeout="30000" retries="0"/>
<dubbo:service interface="tf.mcs.service.IDataBusService" ref="IDataBusService" registry="local"/><dubbo:service interface="tf.mcs.service.ISystemService" ref="ISystemService" registry="local"/> <dubbo:service interface="tf.brc.release.stub.IEodService" ref="EodService" registry="local"/> <bean id="EodService" class="tf.brc.release.impl.EodServiceImpl" /> <bean id="IDataBusService" class="tf.mcs.service.DataBusService" /> <bean id="ISystemService" class="tf.mcs.service.SystemService" /> <!-- 总账GL --> <dubbo:reference id="IGLService" interface="tf.brc.release.stub.IGLService" registry="gl"/>
这段配置说明:1,当前站点引用了172.16.32.209:2181的tccRunService和tccSsoService服务,即作为consumer。2,当前站点在127.0.0.1:2181发布了IDataBusService、ISystemService、EodService三个服务,即作为provider。3,当前站点引用了172.16.32.208:2181的IGLService服务,即作为consumer。
各位可以给一个demo配置吗
B中调用A和你的consumer端调用是一样的,也许需要配置注册中心,和接口引用
不需要代码,有完整的配置demo即可
手机回复,没有代码,感觉楼主有点混淆,B引用A就跟其他站点引用A一样,B发布自己的服务也与A发布的形式一样,任何一个站点都可以既是消费者也是提供者,如果涉及的站点比较多,请注意启动顺序。
可以有在B中的demo配置吗?目前是配置出问题了。报警告:多个不同应用注册了相同服务,请检查***和***中是否有误暴露。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(7)
按照这个配置,服务启动后在dubbo Admin里看到服务上还有警告标识
可以算是demo吧。
<!-- 生成远程服务代理,可以和本地bean一样使用Service -->
<dubbo:reference id="tccRunService" interface="tf.tcc.service.ITccRunService" registry="tcc"/>
<dubbo:reference id="tccSsoService" interface="tf.tcc.service.ITccSsoService" registry="tcc"/>
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="Mcs" />
<!-- 使用multicast广播注册中心暴露服务地址 -->
<dubbo:registry address="zookeeper://127.0.0.1:2181" id="local"/>
<dubbo:registry address="zookeeper://172.16.32.209:2181" id="tcc"/>
<dubbo:registry address="zookeeper://172.16.32.208:2181" id="gl"/>
<!-- 用dubbo协议在28811端口暴露服务 -->
<dubbo:protocol name="http" host="127.0.0.1" port="28811" />
<!-- 定义超时时间 -->
<dubbo:provider timeout="30000" retries="0"/>
<dubbo:service interface="tf.mcs.service.IDataBusService" ref="IDataBusService" registry="local"/>
<dubbo:service interface="tf.mcs.service.ISystemService" ref="ISystemService" registry="local"/>
<dubbo:service interface="tf.brc.release.stub.IEodService" ref="EodService" registry="local"/>
<bean id="EodService" class="tf.brc.release.impl.EodServiceImpl" />
<bean id="IDataBusService" class="tf.mcs.service.DataBusService" />
<bean id="ISystemService" class="tf.mcs.service.SystemService" />
<!-- 总账GL -->
<dubbo:reference id="IGLService" interface="tf.brc.release.stub.IGLService" registry="gl"/>
这段配置说明:
1,当前站点引用了172.16.32.209:2181的tccRunService和tccSsoService服务,即作为consumer。
2,当前站点在127.0.0.1:2181发布了IDataBusService、ISystemService、EodService三个服务,即作为provider。
3,当前站点引用了172.16.32.208:2181的IGLService服务,即作为consumer。
各位可以给一个demo配置吗
B中调用A和你的consumer端调用是一样的,也许需要配置注册中心,和接口引用
不需要代码,有完整的配置demo即可
手机回复,没有代码,感觉楼主有点混淆,B引用A就跟其他站点引用A一样,B发布自己的服务也与A发布的形式一样,任何一个站点都可以既是消费者也是提供者,如果涉及的站点比较多,请注意启动顺序。
可以有在B中的demo配置吗?目前是配置出问题了。报警告:多个不同应用注册了相同服务,请检查***和***中是否有误暴露。