本篇文章次要是提供根本的 dubbo 服务端和消费者模型搭建并进行简略调用的案例。基于 dubbo2.7.1,并应用注解形式进行服务裸露和援用。
实现性能
服务端提供城市信息获取的性能。生产端通过 dubbo 调用服务端获取到城市信息。
服务端搭建
首先咱们新建一个 springboot 我的项目,名称叫 dubbo-provider。(如何创立 springboot 我的项目能够自行百度)
而后在 pom 文件中引入 dubbo 的 jar
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>2.7.1</version>
</dependency>
新建一个 CityService 的接口类,提供获取城市名称的性能
public interface CityService {String getCityName();
}
创立一个实现该接口的类,并加上 @Service
注解(属于包 org.apache.dubbo.config.annotation 下的)
@Service
public class CityServiceImpl implements CityService {
@Override
public String getCityName() {return "hangzhou";}
}
@Service
注解示意裸露服务,dubbo 辨认到该注解会将其注册到注册核心去。
在你的 springboot 利用的 Application 上加上注解@EnableDubbo
@EnableDubbo
@SpringBootApplication
public class DubboAnalyzeApplication {public static void main(String[] args) {SpringApplication.run(DubboAnalyzeApplication.class, args);
}
}
EnableDubbo 注解示意启用 dubbo 扫描,除了会将配置文件里的配置注入以外,还会解析 @Service
以及 @Reference
注解并实例化成 bean。
resources 目录下新增 dubbo.properties 文件,增加内容如下
dubbo.application.name=provider
dubbo.protocol.port=20889
dubbo.registry.address=zookeeper://192.168.10.118:2181
dubbo 会主动去扫 dubbo.properties 文件并解析内容,注册核心改为你本人的地址。
至此服务端就搭建实现了。
生产端搭建
同样的咱们新建一个 springboot 我的项目,名称叫 dubbo-consumer。
引入 dubbo 的 jar 包
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>2.7.1</version>
</dependency>
再引入服务端的接口,服务端能够将接口独自放到一个 module 里并打成 jar 包对外提供应用,我这里为了不便,没有做拆散,间接引入了服务端的 jar 包
<dependency>
<groupId>com.example</groupId>
<artifactId>dubbo-provider</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
创立一个调用服务的类,我这里为了 Web 演示,用 springmvc 来创立类名为 MyController 的类,加一个成员变量 CityService 类型的(此类型就是下面服务端中创立的接口类),并在下面加一个 @Reference
注解。
@RestController
public class MyController {
@Reference
CityService cityService;
@PostMapping("hello")
public void hello(){String name = cityService.getCityName();
System.out.println("finish");
}
}
Reference 注解用于援用对应的城市信息服务,dubbo 会为其生成一个代理类。
其余的步骤和下面服务端的一样,Application 上加注解 @EnableDubbo
并在 resources 目录下新增 dubbo.properties 文件,注册核心一样改为你本人的地址。
@EnableDubbo
@SpringBootApplication
public class DubboAnalyzeApplication {public static void main(String[] args) {SpringApplication.run(DubboAnalyzeApplication.class, args);
}
}
dubbo.application.name=consumer
dubbo.protocol.port=20888
dubbo.registry.address=zookeeper://192.168.10.118:2181
至此生产端也搭建实现了。
测试
用 postman 发一个申请到生产端,后果如下:
能够看到曾经胜利调用到服务端了。
总结
整体还是比较简单的,还有其余配置形式比方 xml、api、注解等,更具体的配置内容能够参考官网
https://dubbo.apache.org/zh/d…