2020最新IDEA SpringBoot整合Dubbo(zookeeper版)

2020最新IDEA SpringBoot整合Dubbo(zookeeper版)

首先,要在电脑上安装配置好zookeeper哦~

  • 这是我云服务器上的zookeeper状态
    2020最新IDEA SpringBoot整合Dubbo(zookeeper版)_第1张图片

接下来,开始整合

1. 准备一个dubbo-api的SpringBoot项目

  • 用来存储Entity类和Server接口的项目,配置文件无须改动。
    2020最新IDEA SpringBoot整合Dubbo(zookeeper版)_第2张图片
    1. entity – User

      // Lombok注解 相当于Setter Getter toString()
      @Data
      public class User implements Serializable {
                // 序列化很重要!!!
          private static final long serialVersionUID = 7739394865008699599L; 
          private Long id;
          private String username;
          private String password;
      
      }
      
    2. service – UserService

      public interface UserService {
               
          User getUser();
      }
      

2. 准备一个dubbo-provider的SpringBoot项目(提供服务方)

  • 用来存储dubbo-api 的 Server接口 的实现类
    2020最新IDEA SpringBoot整合Dubbo(zookeeper版)_第3张图片

    1. Impl – UserServiceImpl

      @DubboService(version = "1.0.0")
      public class UserServiceImpl implements UserService {
               
      	// 此处的User类以及UserService接口都是来自dubbo-api中,所以需要在Maven中导入dubbo-api
          @Override
          public User getUser() {
               
              User user = new User();
              user.setId(1L);
              user.setUsername("root");
              user.setPassword("root");
              return user;
          }
      }
      

2020最新IDEA SpringBoot整合Dubbo(zookeeper版)_第4张图片

  1. application.properties !!!

    server.port=8001
    ## Dubbo 服务提供者配置
    ## 名称
    dubbo.application.name=provider
    ## Dubbo 服务对象的注册中心zookeeper的地址和端口
    dubbo.registry.address=zookeeper://112.124.14.148:2181
    ## 注册中心请求超时,以毫秒为单位
    dubbo.registry.timeout=25000
    ## 用Dubbo协议
    dubbo.protocol.name=dubbo
    ## 在20880端口暴露服务
    dubbo.protocol.port=20880
    ## 包扫描范围
    dubbo.scan.base-packages=com.itzhang.Impl
    

3. 准备一个dubbo-consumer的SpringBoot项目(调用服务方)

  • 用来存Controller层

2020最新IDEA SpringBoot整合Dubbo(zookeeper版)_第5张图片

  1. controller – UserController

    @RestController
    @RequestMapping("/user")
    public class UserController {
           
    
        @DubboReference(version = "1.0.0")
        private UserService userService;
    
        @RequestMapping("/getUser")
        public User getUserList() {
           
            return userService.getUser();
        }
    }
    
  2. application.properties !!!

    ## 不要和provider项目端口冲突
    server.port=7001
    ## Dubbo 服务消费者配置
    dubbo.application.name=consumer
    ## Dubbo 服务对象的注册中心zookeeper的地址和端口
    dubbo.registry.address=zookeeper://112.124.14.148:2181
    ##  服务对象的被注入的包扫描范围
    dubbo.scan.base-packages=com.itzhang.controller
    ## 请求超时
    dubbo.registry.timeout=25000
    

3. 测试

  • 首先启动dubbo-provider

  • 其次启动dubbo-consumer

  • 访问dubbo-consumer中controller提供的接口。完整路径:http://localhost:7001/user/getUser,输出结果并且zookeeper中已成功注册,配置成功!
    在这里插入图片描述

在这里插入图片描述

你可能感兴趣的:(SpringBoot,zookeeper,分布式)