本篇文章次要是提供根本的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下的)

@Servicepublic class CityServiceImpl implements CityService {    @Override    public String getCityName() {        return "hangzhou";    }}

@Service注解示意裸露服务,dubbo辨认到该注解会将其注册到注册核心去。
在你的springboot利用的Application上加上注解@EnableDubbo

@EnableDubbo@SpringBootApplicationpublic class DubboAnalyzeApplication {    public static void main(String[] args) {        SpringApplication.run(DubboAnalyzeApplication.class, args);    }}

EnableDubbo注解示意启用dubbo扫描,除了会将配置文件里的配置注入以外,还会解析@Service以及@Reference注解并实例化成bean。
resources目录下新增dubbo.properties文件,增加内容如下

dubbo.application.name=providerdubbo.protocol.port=20889dubbo.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注解。

@RestControllerpublic 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@SpringBootApplicationpublic class DubboAnalyzeApplication {    public static void main(String[] args) {        SpringApplication.run(DubboAnalyzeApplication.class, args);    }}
dubbo.application.name=consumerdubbo.protocol.port=20888dubbo.registry.address=zookeeper://192.168.10.118:2181

至此生产端也搭建实现了。

测试

用postman发一个申请到生产端,后果如下:


能够看到曾经胜利调用到服务端了。

总结

整体还是比较简单的,还有其余配置形式比方xml、api、注解等,更具体的配置内容能够参考官网
https://dubbo.apache.org/zh/d...