SpringBoot 整合 dubbo 基础框架 消息用的 zookeeper

话不多说 开整  自己动手搭建的第一个dubbo分布式框架

前提是你对dubbo服务有一个初步的认识

首先 你要下载一个zookeeper 并成功启动

具体怎么安装的详见https://www.cnblogs.com/grimm/p/6732867.html

就不多说了 我用的开发软件是idea 

首先我们要搭建一个maven项目  jdk 1.8 

SpringBoot 整合 dubbo 基础框架 消息用的 zookeeper

然后新建maven项目

SpringBoot 整合 dubbo 基础框架 消息用的 zookeeper

SpringBoot 整合 dubbo 基础框架 消息用的 zookeeper

SpringBoot 整合 dubbo 基础框架 消息用的 zookeeper

然后finish 我们的父框架就构建完成了

因为我们这个是用作父框架使用的 所以我们就可以把这个自动生成的src文件夹删掉了

然后我们要构建 三个 module 分别是 api(服务接口  服务提供者  和 消费者 公共引用这个接口 ) provider(服务提供者) consumer(服务消费者) 

SpringBoot 整合 dubbo 基础框架 消息用的 zookeeper

接下里就是三个module 建好的样子

SpringBoot 整合 dubbo 基础框架 消息用的 zookeeper

接下来咱们就要来写接口了  就是 我们的api   服务提供者和消费者 都是 要基于这个得

SpringBoot 整合 dubbo 基础框架 消息用的 zookeeper

这里现在无法创建package我们要在这里 配置一下

SpringBoot 整合 dubbo 基础框架 消息用的 zookeeper

SpringBoot 整合 dubbo 基础框架 消息用的 zookeeper

配置好了我们就可以常见package 然后写我们的api接口了 我就先创建了一个测试的小接口  

SpringBoot 整合 dubbo 基础框架 消息用的 zookeeper

写好了接口我们就要去写接口提供者和消费者了

我们先配置父项目的pom文件 这样我们的服务提供者和服务消费者就可以直接用父项目的pom文件了

把这些依赖放在父类pom文件里

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.3.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <zkClient.version>0.10</zkClient.version>
    <zookeeper.version>3.4.12</zookeeper.version>
    <dubbo.starter.version>0.2.0</dubbo.starter.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>com.alibaba.boot</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>${dubbo.starter.version}</version>
    </dependency>

    <dependency>
        <groupId>com.101tec</groupId>
        <artifactId>zkclient</artifactId>
        <version>${zkClient.version}</version>
    </dependency>

    <dependency>
        <groupId>org.apache.zookeeper</groupId>
        <artifactId>zookeeper</artifactId>
        <version>${zookeeper.version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

然后我们先配置服务提供者provider 需要配置 

首先第一步 pom 里面加入依赖 

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>com.lxy</groupId>
        <artifactId>api</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

然后配置我们的yml 文件 主要是配置dubbo 相关服务 详见 文章结尾 项目代码

之后我们开始配置Provider这个项目的启动类 并实现我们之间写的接口 接口的Service 一定要是dubbo的

SpringBoot 整合 dubbo 基础框架 消息用的 zookeeper

 

接下来我们去写服务消费者 首先pom记得引入我们的api依赖  然后配置yml文件以及启动类 

SpringBoot 整合 dubbo 基础框架 消息用的 zookeeper

 

然后写我们controller 调用我们的公共接口

SpringBoot 整合 dubbo 基础框架 消息用的 zookeeper

 

注意自己引用的包是否正确

然后下启动zookeeper 再启动 provider 最后启动consumer 一个dubbo服务就配好了 访问一下

SpringBoot 整合 dubbo 基础框架 消息用的 zookeeper

然后我们再dubbo 的服务治理(你们还没配,你们可能看不到,但是不影响项目正常启动)那里可以看到我们注册的服务 

SpringBoot 整合 dubbo 基础框架 消息用的 zookeeper

一个dubbo 框架就完成了 我也是小白 发出来大家共勉

附上当前项目的zip包:https://download.****.net/download/jiangyucaonima/10577630

再来一个附加整合mybatis的zip地址:https://download.****.net/download/jiangyucaonima/10577443