1. 准备

官网下载zookeeper 地址: zookeeper 配置环境变量

先新建变量:

idea 模拟dubbo请求 idea部署dubbo项目_java


然后添加path:%ZOOKEEPER_HOME%\bin

启动zookeeper服务。如果zookeeper服务打开闪退,可以打开zookeeper路径中conf,拷贝里面的zoo_sample.cfg 并改名为zoo.cfg.即可打开服务。

2. idea创建项目

可以先创建一个空工程在空工程中创建提供者、消费者、接口工程模块

  1. 先创建接口工程:普通的maven工程即可
  2. 再创建一个提供者:使用web项目就可以创建一个springboot项目
  3. 再创建一个消费者:也是一个web项目可以创建一个springboot项目

接口工程:存放实体bean和业务接口
服务提供者:业务接口的实现类并将服务暴露且注册到注册中心,调用数据持久层。添加依赖(dubbo,注册中心,接口工程)。配置服务提供者核心配置文件
服务消费者:处理浏览器客户端发送的请求,从注册中心调用服务提供者所提供的服务。添加依赖(dubbo,注册中心,接口工程)。配置服务消费者核心配置文件

3. 添加依赖

先在提供者项目的pom中添加依赖:

<!--dubbo依赖-->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.8</version>
        </dependency>


        <!--注册中心 zookeeper-->
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.10</version>
        </dependency>

        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>2.13.0</version>
        </dependency>

        <!--接口工程  自己刚刚创建的接口工程-->
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>interface</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

再在消费者的pom中添加依赖

<dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.8</version>
        </dependency>

        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>2.13.0</version>
        </dependency>


        <!--注册中心 zookeeper-->
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.10</version>
        </dependency>


        <dependency>
            <groupId>com.example</groupId>
            <artifactId>interface</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

4. 配置核心文件

配置提供者的核心文件

idea 模拟dubbo请求 idea部署dubbo项目_zookeeper_02

配置消费者核心文件

idea 模拟dubbo请求 idea部署dubbo项目_idea 模拟dubbo请求_03

server.port是当前部分工程内嵌tomcat的端口号
dubbo.applcation.name:是该部分工程向外暴露的名称
server.servlet.context-path:是当前上下文路径
dubbo.registry.address:dubbo的注册地址,即zookeeper的地址

5. 编写方法接口

  1. 可以现在接口工程中创建一个接口:
  2. 在生产者中实现这个接口
    这里@Service是dubbo包提供的注解
  3. 再在消费者中调用这些方法
    这里的@Reference时dubbo包提供的注解
    接口工程主要任务是提供方法接口,提供者主要任务是实现这些接口,消费者主要是处理请求调用这些接口。相当于MVC模式的各个层关系,消费者相当于控制器层,生产者和接口工程相当于model层。zookeeper服务中注册有生产者和消费者。

6.测试

启动zookeeper服务

再先启动服务提供者

最后启动服务消费者

访问消费者地址映射

idea 模拟dubbo请求 idea部署dubbo项目_spring_04


7. 可以再dubbo的可视化界面查看注册的接口。管理界面可以再Gitee中拉去:https://gitee.com/difcipo/dubbo-admin.git ,按照README.txt中步骤就可以完成打包,然后登录即可就可以查看注册的服务。

idea 模拟dubbo请求 idea部署dubbo项目_zookeeper_05