首先 有应用A 是 提供者
应用B 来实现既是消费者又是提供者
在应用 B 这边新建两个xml
dubbo-consumer.xml 消费者
注意:
服务方用什么协议。在哪个端口暴露服务
消费方用什么协议获取服务。在哪个端口暴露自己的服务
》》
既是消费方又是服务方,协议名获取服务,端口上暴露服务---服务方获取服务只跟协议有关,端口是用来自身暴露服务的
<dubbo:protocol name="协议名" port="端口" />
从这个配置就可以说明dubbo,本身就是可以服务提供者(指定了暴露端口),服务消费者(制定了获取服务协议)
<!-- 自动扫描注解:通过dubbo实现 --> <dubbo:annotation package="test.dubbo.*" /> <!-- 必须加上:提供方应用服务端的名称 --> <dubbo:application name="person-client" /> <!-- 服务端需要把dubbo服务注册到zookeeper上进行广播 --> <dubbo:registry address="zookeeper://127.0.0.1:2181" />
<!-- 用dubbo协议在20881端口服务 --> <dubbo:protocol name="dubbo" port="20881" />
<!-- 注册需要使用的dubbo服务,通过interface指定服务接口 --> <dubbo:reference id="personInfoService" interface="test.dubbo.itf.IpersonInfoService" timeout="10000" check="false" />
dubbo-provider.xml 提供者
<!-- 自动扫描注解:通过dubbo实现 --> <dubbo:annotation package="test.dubbo.*" /> <!-- 必须加上:提供方应用服务端的名称 --> <dubbo:application name="person-center" /> <!-- 服务端需要把dubbo服务注册到zookeeper上进行广播 --> <dubbo:registry address="zookeeper://127.0.0.1:2181" /> <!-- 用dubbo协议在20880端口暴露服务 --> <dubbo:protocol name="dubbo" port="20880" /> <!-- 服务端声明需要对外开放提供服务的接口 --> <dubbo:service interface="test.dubbo.itf.IpersonInfoService" protocol="dubbo" ref="personInfoService" />
启动之后会报错: Duplicate application configs: <dubbo:application name="person-client" id="person-client" /> and <dubbo:application name="person-center" id="person-center" />
重复的应用程序的配置
解决办法是把其中一个xml中的配置文件删除,留一个就好了
比如删除 dubbo-provider.xml 里面的
<!-- 自动扫描注解:通过dubbo实现 --> <dubbo:annotation package="test.dubbo.*" /> <!-- 必须加上:提供方应用服务端的名称 --> <dubbo:application name="person-center" /> <!-- 服务端需要把dubbo服务注册到zookeeper上进行广播 --> <dubbo:registry address="zookeeper://127.0.0.1:2181" /> <!-- 用dubbo协议在20880端口暴露服务 --> <dubbo:protocol name="dubbo" port="20880" />
修改后的 xml文件
dubbo-consumer.xml 消费者
<!-- 自动扫描注解:通过dubbo实现 --> <dubbo:annotation package="test.dubbo.*" /> <!-- 必须加上:提供方应用服务端的名称 --> <dubbo:application name="person-client" /> <!-- 服务端需要把dubbo服务注册到zookeeper上进行广播 --> <dubbo:registry address="zookeeper://127.0.0.1:2181" /> <!-- 用dubbo协议在20881端口服务 --> <dubbo:protocol name="dubbo" port="20881" /> <!-- 注册需要使用的dubbo服务,通过interface指定服务接口 --> <dubbo:reference id="personInfoService" interface="test.dubbo.itf.IpersonInfoService" timeout="10000" check="false" />
dubbo-provider.xml 提供者
<!-- 服务端声明需要对外开放提供服务的接口 --> <dubbo:service interface="test.dubbo.itf.IpersonInfoService" protocol="dubbo" ref="personInfoService" />
原因是一个应用不能有重复的应用程序配置,去掉一个相同的配置就可以了。
这样就可以实现 dubbo 既是提供者又是消费者了。
相关推荐
本教程将详细探讨如何基于注解和SpringBoot构建一个简单的Dubbo提供者与消费者DEMO,让你能够快速理解和实践这一技术。 首先,我们来理解"注解"在编程中的作用。注解(Annotation)是Java提供的一种元数据,它为...
总的来说,dubbo2.4版本提供者provider消费者consumer jar包是一个包含完整功能的Dubbo服务治理解决方案,能够帮助开发者构建高性能、高可用的分布式系统。通过深入理解和灵活运用其中的组件,我们可以构建出更强大...
本示例将深入讲解Dubbo提供者和消费者的典型应用场景,以帮助理解Dubbo在实际编码中的应用。 首先,我们来看“provider”目录,这通常包含了服务提供者的相关代码。在Dubbo中,服务提供者是对外提供服务的一方,它...
这个名为"Dubbo实现的消费者,提供者的demo"的项目,旨在通过实例演示如何使用Dubbo来创建服务消费者和服务提供者,并将它们进行模块化的拆分。下面,我们将深入探讨这些关键知识点。 1. **Dubbo架构核心组件**: ...
《Dubbo提供者与消费者工程详解》 Dubbo,作为阿里巴巴开源的一款高性能、轻量级的服务治理框架,已经成为Java世界中分布式服务的重要组件。在理解Dubbo的核心概念时,我们通常会接触到“提供者”和“消费者”这两...
本示例将深入讲解 Dubbo 的提供者(Provider)与消费者(Consumer)的概念及其工作原理。 首先,我们要了解在 Dubbo 中的核心角色——服务提供者(Provider)和服务消费者(Consumer)。服务提供者是拥有服务的实体...
在这个实例中,我们将深入理解Dubbo服务提供者和服务消费者的运作模式。 首先,我们来探讨服务提供者(Provider)。在Dubbo中,服务提供者是指实现了某些功能并愿意对外提供服务的组件。服务提供者需要完成以下关键...
4. **Dubbo配置**:在项目中,Dubbo的配置通常包括服务接口定义、服务提供者配置和服务消费者配置。例如,Provider需要配置服务的接口、实现类、注册中心地址等;Consumer则需配置要调用的服务名、注册中心地址等。...
springboot融合dubbo 提供者消费者 协议api,provider 使用他提供服务,consumer使用他调用服务,实现代码 参考:https://download.csdn.net/download/itexplorersfather/10346699
本项目案例“妻子”作为消费者去调用生产者(“丈夫”)的服务--洗碗 本项目需要注意 @DubboReference private HusbandService husbandService; @EnableDubbo @DubboService 这几个注解不能忘,否则会报错,或者...
1.dubbo-zookeeper springSpringMVC 一个生产者,多消费者 例子 2. ssm-dubbo 源码 ssm-tomcat 里放的是 warbao ,程序包 zookeeper-3.4.9 zookeeper 免安装包 设置都是默认的 zookeeper 端口 2181 dubbo-...
《Dubbo生产者消费者使用Demo详解》 Dubbo,作为阿里巴巴开源的一款高性能、轻量级的服务治理框架,已经成为Java世界中分布式服务的重要选择。本文将深入解析如何在实际项目中运用Dubbo,通过一个简单的生产者消费...
Dubbo的核心组件包括服务提供者(Provider)、服务消费者(Consumer)、注册中心(Registry)和服务监控(Monitor)。 二、Java Web基础 Java Web应用程序是运行在服务器端的程序,通常用于构建动态网站。它基于...
在部署Dubbo服务提供者之前,需要先安装并运行Zookeeper集群,因为Dubbo服务会注册到Zookeeper上,消费者通过Zookeeper获取服务提供者的地址信息,实现服务的透明调用。这意味着服务提供者配置中需包含Zookeeper的...
本教程将深入探讨如何在Java环境中实现Dubbo的消息提供者(服务提供者)和消费者(服务消费者),以及这两个组件在实际应用中的工作原理。 首先,我们要理解Dubbo的核心概念:服务提供者和服务消费者。服务提供者是...
Dubbo生产者消费者示例源代码,Eclipse项目,基于Maven构建,可以直接导入Eclipse开发环境,本人亲测,编译通过,可以直接在Eclipse中运行(包含Main方法),先运行提供者,再运行生产者。
在本教程中,我们将深入探讨如何使用Apache Dubbo构建一个简单的"Hello, World"应用程序,该程序包括服务提供者和服务消费者。Dubbo是一款高性能、轻量级的Java RPC框架,它能够帮助开发者实现分布式服务之间的通信...
Dubbo 的消费者支持动态配置,这意味着消费者可以在运行时根据服务提供者的列表动态选择调用哪个服务,甚至支持负载均衡策略,如轮询、随机、优先级等。 在实例中,我们通常会分为以下几个步骤来实现生产者和消费者...
本项目基于Maven构建,涵盖了服务提供者(Provider)和服务消费者(Consumer)两个核心组件,旨在为开发者提供一个完整的测试环境,以深入理解Dubbo的工作原理和实践应用。 首先,我们要明确的是,Dubbo的核心概念...
在本项目中,我们主要探讨的是如何利用SpringBoot、Dubbo和Zookeeper来构建一个具有多个生产者和消费者的分布式服务系统,并实现负载均衡。以下是详细的知识点解释: 1. **SpringBoot**: SpringBoot是Spring框架...