开发者学堂课程【阿里巴巴分布式服务框架 Dubbo 快速入门:服务提供者配置&;测试】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/624/detail/9461
服务提供者配置&;测试
前面编写好了服务的提供者 user-service-provider 以及服务的消费者 order-service-consumer,为了使 OrderServiceImpl 里面调 userService.getUserAddressList(userId)服务提供者的方法,可以远程调用成功,用 Dubbo 改造一下,改造的步骤分为以下步骤:
1、将服务提供者注册到注册中心(暴露服务)
(1)、导入 dubbo 依赖(使用2.6.2domo)\引入操作 zookeeper 的客户端(curator)
(2)、 配置服务提供者(将配置文件创建出来,写配置之前把文件名称加进来)
指定当前服务/应用的名字(同样的服务名字相同,不要和别的服务同名)
<dubbo: application name=”user-service-provider”></dubbo:application>
指定注册中心的位置
<dubbo: registry address=”zookeeper://127.0.0.1:2181”></dubbo:registry>
或<dubbo: registry protocol=”zookeeper”address=” 127.0.0.1:2181”></dubbo:registry>
指定通信规则(通信协议、通信端口)
<dubbo:protocol name=”dubbo”port=”20880”></dubbo:protocol>
(使用 dubbo 协议在20080端口进行通信)
暴露服务 ref: 指向服务的真正的实现对象
<dubbo:service interface=”com.atguigu.gmall.service.UserService”ref=”userServiceImpl”></dubbo:service>
(3)服务的实现
<bean id=”userServiceImpl” class =”com. atguigu.gmall.service.impl.UserServiceImpl”</bean>
测试:
使用下面代码加载Spring配置,Import org.springframework.context.support.ClassPathXmlApplicationContext;
Public class Provider{
Public static void main(String[ ] args) throws Exception {
ClaaaPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
Context.start()
System.in.read();//
}
使 ClassPathXmlApplicationContext 启动,启动后将自动服务注册到注册中心,编写代码,class 放在 gmal 下,编写代码名称为 MainApplication(主程序),
代码如下
package com.atguigu.gmall;
public class MainApplication {
public static void main(String[ ] args) {
ClasspathXmlApplicationContext ioc = new ClasspathXmlApplicationContext(“provider.xml”);
Ioc.start();
System.in.read();
}
运行程序为
运行会加载 Spring 配置文件,在 Spring 配置文件里,配置连像素 zookeeper,包括将某一个服务暴露,启动之后停在那里,刷新控制台,会看到服务数1、应用数1;
可以在控制台看服务的提供者,显示当前主机20080提供服务了;也可以看见应用,点开会看到 user-service-provider,包括提供了哪一个服务,点开服务,就会看到 UserService 提供服务。
至此,服务提供者就配置好了。
2、让服务消费者去注册中心订阅服务提供者的服务地址。