SpringBoot整合Dubbo实操记录

  1. 新建3个工程

1.1 新建springboot-dubbo-interface工程

此工程是接口工程,只存放实体类,因此只需创建一个普通的maven工程

1.1.1 新建实体类User

新建User,并定义一些变量

1.1.2 新建UserService类

新建UserService,并写一个findUser()方法

1.2 新建服务提供工程

新建服务提供工程“springboot-dubbo-service-provider”,此工程为springboot工程

1.2.1 导入依赖

<dependencies>
    <!--SpringBoot框架web项目起步依赖-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>2.6.7</version>
    </dependency>

    <!--Dubbo集成SpringBoot起步依赖-->
    <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>3.1.0</version>
    </dependency>

    <!--zookeeper注册中心依赖-->
    <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo-registry-zookeeper</artifactId>
        <version>3.1.0</version>
    </dependency>

    <!--接口工程依赖-->
    <dependency>
        <groupId>com.xxx</groupId>
        <artifactId>springboot-dubbo-interface</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

</dependencies>

1.2.2 新建UserServiceImpl类

import com.xxx.xxx.service.UserService; // 导入接口工程的UserService
import com.alibaba.dubbo.config.annotation.Service;
import org.springframework.stereotype.Component;

@Service(version = "1.0.0", timeout = 10000)
@Component
public class UserServiceImpl implements UserService {

    @Override
    public String findUser() {
        return "用户[ user1001 ]";
    }
}

1.2.3 配置文件application.properties

#设置端口号
server.port=8080

#设置dubbo的配置
#服务提供者声明名称:必须保证服务名称的唯一性,它的名称是dubbo内部使用的唯一标识
spring.application.name=springboot-dubbo-service-provider

#指定zookeeper注册中心地址和端口号
dubbo.registry.address=zookeeper://localhost:2181

1.2.4 启动类

启动类增加@EnableDubbo注解

1.3 新建服务消费工程

新建服务消费工程“springboot-dubbo-consumer”,此工程为springboot工程

1.3.1 导入依赖

<dependencies>
    <!--SpringBoot框架web项目起步依赖-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>2.6.7</version>
    </dependency>

    <!--Dubbo集成SpringBoot起步依赖-->
    <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>3.1.0</version>
    </dependency>

    <!--zookeeper注册中心依赖-->
    <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo-registry-zookeeper</artifactId>
        <version>3.1.0</version>
    </dependency>

    <!--接口工程依赖-->
    <dependency>
        <groupId>com.xxx</groupId>
        <artifactId>springboot-dubbo-interface</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
</dependencies>

1.3.2 新建controller,UserController

import com.xxx.sdi.service.UserService;
import com.alibaba.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("/user")
public class UserController {

    @Reference(interfaceClass = UserService.class, version = "1.0.0")
    private UserService userService;

    @RequestMapping("/findUser")
    @ResponseBody
    public String findUser() {
        System.out.println("访问了!!!");
        return this.userService.findUser();
    }
}

1.3.3 配置文件application.properties

#端口号
server.port=8081

#设置dubbo的配置
#服务提供者声明名称:必须保证服务名称的唯一性,它的名称是dubbo内部使用的唯一标识
spring.application.name=springboot-dubbo-consumer

#指定zookeeper注册中心地址和端口号
dubbo.registry.address=zookeeper://localhost:2181

1.3.4 启动类

启动类增加@EnableDubbo注解

至此demo工程建立完毕,还需要下载zookeeper才能运行

2. 下载zookeeper

参考:https://yjtzfywh.blog.csdn.net/article/details/127792052?spm=1001.2014.3001.5506

3. 测试

3.1 启动zookeeper

在zookeeper的bin目录下双击“zkServer.cmd”文件

3.2 启动工程

(1)启动服务提供者工程“springboot-dubbo-service-provider”

(2)启动服务消费者工程“springboot-dubbo-consumer”

3.3 访问接口

成功!

(后续补充需要注意的地方)


版权声明:本文为weixin_45050237原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。