SpringBoot整合Dubbo+Zookeeper

SpringBoot整合Dubbo+Zookeeper

不多BB,直接上代码,奥力给!

一、创建项目

1.首先创建一个空的项目Empty project

在这里插入图片描述

2.然后创建三个子模块分别为如下

dubbo-provider:服务提供者

dubbo-consumer:服务消费者

dubbo-interface:消费者与提供者共同的接口层

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三个创建好后是这样的

在这里插入图片描述

二、导入依赖

分别在dubbo-consumerdubbo-providerpom.xml文件导入依赖

dubbo-interface 、zookeeper依赖、dubbo依赖、zookeeper客户端

<!-- 导入dubbo-interface-->
        <dependency>
            <groupId>com.chw</groupId>
            <artifactId>dubbo-interface</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>

        <!-- zookeeper依赖 -->
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>4.0.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>4.0.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.6.1</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

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

        <!-- zookeeper客户端 -->
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>

三、在接口项目定义接口

在dubbo-interface模块下创建包 写入接口

在这里插入图片描述

public interface TestService {
    public String Test();
}

四、服务者提供实现接口

在dubbo-provider模块下最好在同包同名提供实现接口

我们需要用到dubbo的注解@Service

注意 :@Service 用在服务提供者中,在类或者接口中声明。
服务提供者实现相关的服务接口,当消费端调用相关的类时,最终会调用提供者的实现方法。

在这里插入图片描述

import com.chw.service.TestService;
import org.apache.dubbo.config.annotation.Service;

//注意这里的service是dubbo包里面的
@Service
public class TestServiceImpl implements TestService {
    @Override
    public String Test() {
        return "==========williamc==========";
    }
}

这时我们要写配置文件

resources目录下application.properties或yml,这里为了方便我就用properties。

#tomcat端口
server.port=8001
#服务应用的名字
dubbo.application.name=provider-server
#注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181
#哪些服务要被注册
dubbo.scan.base-packages=com.chw.service

这里我们就完成了dubbo-provider。

五、消费者订阅接口

在dubbo-consumer下创建一个Controller

这里要用到dubbo的注解@Reference

@Reference 用在消费端,表明使用的是服务端的什么服务

import com.chw.service.TestService;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class TestController {
    @Reference
    TestService testService;
    @ResponseBody
    @RequestMapping("/test")
    public String test(){
        return testService.Test();
    }

}

还需要写配置文件和服务者相似

#tomcat端口
server.port=8002
#服务应用的名字
dubbo.application.name=consumer-server
#注册中心地址与服务者一样
dubbo.registry.address=zookeeper://127.0.0.1:2181

六、运行

整个项目就写完了,是不是很容易。

接下里我们要先运行Zookeeper的zkServer.cmd这里不会的可以看我的博客dubbo+zookeeper简单入门

运行好之后,运行服务者的主程序DubboProviderApplication,再运行消费者的主程序DubboConsumerApplication。

访问http://localhost:8002/test

你们的消费者端口是多少就访问多少

在这里插入图片描述
我们就可以看到我们运行出来的结果。超简单~

如果想看dubbo管理控制台 我们要运行Dubbo官方给的dubbo-admin(这里不知道的看我的博客dubbo+zookeeper简单入门

然后访问http://localhost:7001/ (用户名密码都是root) 界面如下

在这里插入图片描述

我们可以进入服务治理的提供者和消费者

在这里插入图片描述

简单易懂
结合dubbo+zookeeper一起学

完结撒花!素质三连!谢谢!

原文地址:https://www.cnblogs.com/williamc/p/13086941.html