Springboot 整合Dubbo初步使用入门

1,548 阅读1分钟

一、引包

新建两个项目:dubbo-server,dubbo-client; pom.xml添加下面的引用

 <!-- dubbo依赖 -->
        <dependency>
            <groupId>com.alibaba.spring.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.3.3</version>
        </dependency>
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>

dubbo-server,dubbo-client都要引用;

二、定义接口

dubbo-server,dubbo-client两端都要添加接口; 且两端接口包名、类名必须保持一致。

package com.dubbo.api;

public interface OrderService {
    String query();
}

三、两端的Application注解

两端都添加上@EnableDubbo,表示启用dubbo;

四、application.yml

服务端:

dubbo:
  application:
    name:  dubbo-server
  registry:
    address: 127.0.0.1:2181
    protocol: zookeeper
    check: false
  protocol:
    name: dubbo
    port: 30003
  monitor:
    protocol: register
  consumer:
    check:  false
    timeout: 3000

server:
  port: 8081

客户端:

dubbo:
  application:
    name:  dubbo-consumer
  registry:
    address: 127.0.0.1:2181
    protocol: zookeeper
    check: false
  monitor:
    protocol: register
  consumer:
      check:  false
      timeout: 3000

server:
  servlet:
    context-path: /consumer
  port: 8082

五、dubbo-server

添加@Service注解,声明供远程调用,注意是dubbo的@Service,不是Spring的@Service

import com.alibaba.dubbo.config.annotation.Service;

@Service
public class OrderServiceImpl implements OrderService {
    @Override
    public String query() {
        return "{\"msg\":\"你好,我是dubbo远程调用的服务端,恭喜你成功了\"}";
    }
}

六、dubbo-client

使用@Reference注入远程对象

@RestController
class HelloController {

    @Reference
    OrderService mService;

    @GetMapping("/hello")
    public String hello() {
        return mService.query();
    }
}

七、启动

  1. 启动zookeeper
  2. 启动dubbo-server
  3. 启动dubbo-client
  4. 浏览器访问 localhost:8082/consumer/hello