springboot使用dubbo和zookeeper代码实例

发布时间:2019-11-19 16:11 来源:互联网 当前栏目:网站服务器

这篇文章主要介绍了springboot使用dubbo和zookeeper代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

创建服务接口模块

接口工程只提供接口,不提供实现,在后面的提供者和消费者中使用

在使用接口的模块中只需要写具体实现类,避免了在每个模块中重复编写接口

在接口中引入依赖包

    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <optional>true</optional>
    </dependency>

创建一个实体类,一定要实现Serializable接口,否则dubbo协议之间无法传输

@Data
@AllArgsConstructor
public class User implements Serializable {
  private String name;
}

创建接口

public interface UserService {
  List<User> getAll();
  List<User> getAll2();
}

创建服务提供者

引入依赖

    <!--引入创建的接口服务-->
    <dependency>
      <groupId>com.yls</groupId>
      <artifactId>common-api</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>
    <!--由于服务提供者不是web项目
    ,只需引入spring-boot-starter,不用引入spring-boot-starter-web-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
    </dependency>

    <!--dubbo-->
    <dependency>
      <groupId>com.alibaba.boot</groupId>
      <artifactId>dubbo-spring-boot-starter</artifactId>
      <version>0.2.0</version>
    </dependency>

修改配置文件

#服务名称
dubbo.application.name=provider1
#注册中心地址
dubbo.registry.address=39.97.234.52:2181,39.97.234.52:2182,39.97.234.52:2183
#注册中心类型
dubbo.registry.protocol=zookeeper

#版本号
dubbo.application.version=3
# Dubbo Protocol
#协议名称
dubbo.protocol.name=dubbo
#服务暴露端口
dubbo.protocol.port=20880

实现服务接口

//暴露服务
//这里的@Service是Dubbo提供的,不是spring中的
//version必填
@Service(version = "${dubbo.application.version}")
@Component
public class UserImpl implements UserService {
  @Override
  public List<User> getAll() {
    User user1 = new User("张三");
    User user2 = new User("lisi");
    List<User> list = Arrays.asList(user1, user2);
    return list;
  }
}

启动服务

//@EnableDubbo等价于在配置文件中配置dubbo.scan.base-packages
//扫描实现类所在的包,注册Bean
@EnableDubbo
@SpringBootApplication
public class ProviderApplication {

  public static void main(String[] args) {

    SpringApplication.run(ProviderApplication.class,args);
  }
}

创建消费者

引入依赖

<!--消费者是web项目-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!--dubbo-->
    <dependency>
      <groupId>com.alibaba.boot</groupId>
      <artifactId>dubbo-spring-boot-starter</artifactId>
      <version>0.2.0</version>
    </dependency>

    <!--引入创建的接口服务-->
    <dependency>
      <groupId>com.yls</groupId>
      <artifactId>common-api</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>
        
 
  • 1、
  • 2、
  • 3、
  • 4、
  • 5、
  • 6、
  • 7、
  • 8、
  • 9、
  • 10、
  • 11、
  • 12、
  • 13、
  • 14、
  • 15、
  • 16、
  • 17、
  • 18、
  • 19、
  • 20、
  • 21、
  • 22、
  • 23、
  • 24、
  • 25、
  • 1、
  • 2、
  • 3、
  • 4、
  • 5、
  • 6、
  • 7、
  • 8、
  • 9、
  • 10、
  • 11、
  • 12、
  • 13、
  • 14、
  • 15、
  • 16、
  • 17、
  • 18、
  • 19、
  • 20、
  • 21、
  • 22、
  • 23、
  • 24、
  • 25、