Springboot+dubbo+zookeeper环境搭建

Springboot+dubbo+zookeeper环境搭建



最近折腾了一下这个,网上搜索了一些资料,发现很多比较旧,发现集成时出现各种问题。经过我亲自试验,使用maven集成时,pom文件引入大概有2种方式。
我的版本配置如下:
springboot版本:2.1.8.RELEASE
dubbo版本:2.7.5
zookeeper版本:3.4.8

第一步,创建项目,引入依赖包

1、创建项目

zookeeper的安装,这里我就不再详细介绍了。
zookeeper下载地址
我这里安装的是windows版本的,然后,打开安装文件的bin目录,点击zkServer.cmd启动zookeeper

然后再idea中创建根项目,然后再创建3个sprngboot项目module,api接口的module名为common,服务提供的module为provide-user,消费者module为consumer-user.其它的忽略,那是我测试的。
在这里插入图片描述

2、pom文件引入dubbo和zookeeper相关依赖

这里依赖有2种方式,也是我踩坑的地方。
在provide-user模块中的pom文件加入如下代码;

2.1 方式一
<!--dubbo相关依赖 -->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.5</version>
        </dependency>

        <!--zookeeper相关依赖 -->
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.11</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-api</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>4.2.0</version>
        </dependency>

遇到的问题一: 在网上看的很多都说只引入dubbo-spring-boot-starter和zkclient,发现报错,找不到相关的class文件,需要引入curator-recipes包。
遇到问题二: 还有在引入zkclient时,最好把日志的依赖排除掉(exclusion),我测试时,发现日志容易冲突。

2.2 方式二

直接引入如下2个依赖就好

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

    <!-- Zookeeper dependencies -->
    <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo-dependencies-zookeeper</artifactId>
        <version>2.7.5</version>
        <type>pom</type>
        <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

dubbo-dependencies-zookeeper中其实已经包含了curator-recipes包

consumer-user也添加同样的依赖。

第二步,配置application.properties或者application.yml文件

在provide-user中添加如下配置

dubbo.application.name=provider-user
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.scan.base-packages=com.fm.todo.service

dubbo.application.name为应用名
dubbo.registry.address为注册中心地址
dubbo.scan.base-packages为服务暴露的包
这里配置详解可查看dubbo的官网,dubbo官方中文地址

在consumer-user中添加如下配置,和provide-user类似

dubbo.application.name=consumer-user
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.scan.base-packages=com.fm.todo.service

第三步,添加服务提供者代码

打开common模块,添加服务接口代码

public interface ITodoUserService{

    String hello();

}

在provide-user中依赖common模块,然后添加实现类

@Service
public class TodoUserServiceImpl implements ITodoUserService{

    @Override
    public String hello() {
        return "hello";
    }
}

注意,这个@Service是dubbo的注解,全包路径为org.apache.dubbo.config.annotation.Service

然后,启动服务提供者模块项目,springboot默认配置端口为8080,注意不要端口冲突。

第四步,添加消费者代码

在consumer-user中依赖common模块,然后添加一个controller接口调用服务service

@RestController
@RequestMapping("/todoUser")
public class TodoUserController {

    @Reference
    ITodoUserService todoUserService;

    @RequestMapping("/hello")
    public String hello(){
        String hello=todoUserService.hello();
        return hello;
    }


}

注意:这里使用@Reference,注入todoUserService,如果有新旧版本,可带上版本号,这个可在dubbo官网上看到。

然后启动消费者代码。

第五步,打开dubbo-admin查看服务是否注册成功

dubbo-admin的下载地址
下载配置好后,启动dubbo-admin,打开浏览器输入http://127.0.0.1:7001/,端口号自己配置的。
在这里插入图片描述在这里插入图片描述这里就可以看到我们的服务已经注册成功了。

我们打开浏览器输入接口地址测试一下
在这里插入图片描述这里可以看到接口已经调用成功了。
好了,到这里,就结束了。

最后的最后,疫情期间,武汉加油!全国加油!

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值