4、业务场景

4.1)、提出需求

某个电商系统,订单服务需要调用用户服务获取某个用户的所有地址;

我们现在 需要创建两个服务模块进行测试

模块

功能

订单服务web模块

创建订单等

用户服务service模块

查询用户地址等

测试预期结果:

订单服务web模块在A服务器,用户服务模块在B服务器,A可以远程调用B的功能。则A为消费者,B为提供者

4.2)、创建模块

1、PublicPro:公共接口层(service,bean)

有个公共bean及公共接口

2、Provider:内容提供者

pom.xml

<dependencies>
  <!--公共模块-->
<dependency>
<groupId>com.founderit</groupId>
<artifactId>PublichPro</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency> <!-- 引入dubbo -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.6.2</version>
</dependency>
<!-- 由于我们使用zookeeper作为注册中心,所以需要操作zookeeper
dubbo 2.6以前的版本引入zkclient操作zookeeper
dubbo 2.6及以后的版本引入curator操作zookeeper
下面两个zk客户端根据dubbo版本2选1即可
-->
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
<!-- curator-framework -->
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>2.12.0</version>
</dependency>

Dubbo配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd"> <!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="Provider" />
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
<!--使用dubbo协议,将服务暴露在20880端口 -->
<dubbo:protocol name="dubbo" port="20880" />
<bean id="providerServiceImpl" class="com.founderit.service.ProviderServiceImpl"/>
<!-- 指定需要暴露的服务 -->
<dubbo:service interface="com.founderit.service.getUserAddress" ref="providerServiceImpl" /> </beans>
接口实现类 ProviderServiceImpl

3 启动服务

服务启动后,刷新控制台

目前为止,消费者创建完成

3. 消费者

pom.xml

<dependency>
<groupId>com.founderit</groupId>
<artifactId>PublichPro</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- 引入dubbo -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.6.2</version>
</dependency>
<!-- 由于我们使用zookeeper作为注册中心,所以需要引入zkclient和curator操作zookeeper -->
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
<!-- curator-framework -->
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>2.12.0</version>
</dependency> dubbo配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd"> <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
<dubbo:application name="Consume" /> <!-- 使用multicast广播注册中心暴露发现服务地址 -->
<dubbo:registry address="zookeeper://127.0.0.1:2181" /> <!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
<dubbo:reference id="testDubbo" interface="com.founderit.service.getUserAddress" />
</beans> 消费者为web应用,创建MVC控制器


4.测试

访问Consume的consume请求,会调用getUserAddress获取用户地址;

调用成功。说明我们已经可以调用远程的内容提供者了;



最新文章

  1. [C++]for同时遍历两个数组
  2. 转-HttpClient4.3 连接管理
  3. MVC JsonResult的用法
  4. TextView使用SpannableString设置复合文本(转)
  5. GraphLab面向机器学习的并行框架『针对图数据处理模型』
  6. 我见过的 Objective-C, 讲的最通俗易懂的入门教程....
  7. 【转载】svn代码回滚命令
  8. 【转】 hive安装配置及遇到的问题解决
  9. 【HDU 2855】 Fibonacci Check-up (矩阵乘法)
  10. 实现正在加载中界面的Android库:DynamicBox
  11. python写的屏保程序
  12. HTML文档中使用JavaScript和css
  13. Django 部署到Nginx
  14. html和css的使用方法以及样式
  15. 互相关(cross-correlation)及其在Python中的实现
  16. Docker使用docker-compose.yml构建Asp.Net Core和Mysql镜像并与Mysql数据库通信
  17. 【VS工具】vs2017中的一些小功能
  18. ZOJ 3886 Nico Number(筛素数+Love(线)Live(段)树)
  19. C# 循环语句 for
  20. JComboBox实现当前所选项功能和JFrame窗口释放资源的dispose()方法

热门文章

  1. 使用vault pki engine 方便的管理证书
  2. SVN 常用 还原项目
  3. 15-ESP8266 SDK开发基础入门篇--上位机串口控制 Wi-Fi输出PWM的占空比,调节LED亮度,上位机程序编写
  4. 笔记 - 数据结构 - 区间第k大
  5. Hive(一)—— 启动与基本使用
  6. python3中Requests将verify设置为False后,取消警告的方式
  7. ubuntu之路——day15.1 只用python的numpy在底层检验参数初始化对模型的影响
  8. Delphi内存专题
  9. MongoDB学习(附录一) 安装mongodb3.6时碰到的问题
  10. bladex下载前端代码后,运行服务时报错【&#39;vue-cli-service&#39; 不是内部或外部命令,也不是可运行的程序或批处理文件。】的解决方法