之前写过dubbo的简单项目,用的是Spring+Dubbo,约摸看了下博客的创建时间,然后默默捂了下脸,已经是一年多前的事了。
由于Dubbo最近在疯狂地更新,相信死灰复燃还是有小宇宙可以燃烧的。
这次带来的是SpringBoot+Dubbo+Zookeeper的简单整合,客官们可要赏脸看一看。
首先看下项目的结构,如下图所示(发现现在博客强制加了水印,这水印真的是人类交流的最大阻碍了):
项目名为dubbodemo,它下边分为三个模块,这里贴出pom.xml代码:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>dubbodemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>dubbodemo</name>
<description>Demo project for Spring Boot</description>
<modules>
<module>provider</module>
<module>consumer</module>
<module>api</module>
</modules>
</project>
接下来分别介绍三个模块的角色。
api
api中存放entity实体类和service接口,consumer和provider模块都需要依赖这个模块。
User.java,实体类根据需要自己编写,但要注意的是需要实现Serializable这个接口,因为dubbo是RPC框架,消费者consumber和服务提供者privoder的交流通过网络传输,在网络中传输实体是需要将实体对象序列化的。
public class User implements Serializable {
private static final long serialVersionUID = 7739394865008699599L;
private Long id;
private String username;
private String password;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public S