Dubbo+zookeeper+springboot入门(IDEA)

Dubbo+zookeeper+springboot入门

下载zookeeper

官网下载zookeeper
我下载的是3.6.3
解压之后进到conf目录下复制一个zoo.cfg
在3.6.0以上要在zoo.cfg加入一行audit.enable=true 不然运行会显示ZooKeeper audit is disabled
运行zkServer.cmd

Dubbo下载

1、去官网下载Dubbo
2、2.5以上的没有dubbo-admin目录,所以我下载的2.5版本的进到dubbo-admin目录运行cmd然后运行mvn clean package也可以导入到idea里面然后打包,这里我的jdk是1.8,然后jdk版本是12的话会失败,因为我本来的jdk版本是12,如果是jdk版本是12,在pom文件中指定jdk版本,
**3、**打包成功后在target目录下会有.war的文件

4、可以在当前目录下运行cmd命令 java -jar xxxx.war,如果显示dubbo-admin-2.5.8.war中没有主清单属性
在这里插入图片描述
不用谎!!!
咱把.war文件复制到tomcat的webapps目录下,运行tomcat,会自己编译一个dubbo-admin-2.5.8文件夹,这里我自己把tomcat的默认端口改成了8088,因为会被占用,反正到时候也要改,看自己心情改端口。
运行tomcat,打开浏览器http://localhost:8088/dubbo-admin-2.5.8/
ok咱就进来了
账号密码都是root
在这里插入图片描述

创建项目

项目结构
在这里插入图片描述

先建一个空的项目,因为干净
然后在建一个Module
我把它叫做provide-server提供者
导入jar

   <!-- dubbo -->
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>0.2.0</version>
        </dependency>
        <!-- zookeeper -->
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>2.12.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>2.12.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.8</version>
            <exclusions>
                <exclusion>
                    <artifactId>slf4j-log4j12</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
            </exclusions>
    </dependency>
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.10</version>
        </dependency>
    </dependencies>

创建TicketServer服务接口

public interface TicketServer  {
    public String getTicket();
}

TicketServerImpl

package com.lwj.server;

import com.alibaba.dubbo.config.annotation.Service;
import org.springframework.stereotype.Component;

@Service
@Component//使用了dubbo 尽量不要是要@server
public class TicketServerImpl implements TicketServer {
    @Override
    public String getTicket() {
        return "lwj";
    }
}

这里@Service是dubbo包下的
配置application.properties

server.port=8001

#当前应用名字
dubbo.application.name=provider-server
#注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181
#扫描指定包下服务
dubbo.scan.base-packages=com.lwj.server

先把zookeeper和Dubbo开起来
然后run去Dubbo可视化界面查看
在这里插入图片描述
然后发现没有,没关系在启动类下加上@EnableDubbo注解,因为我们使用了Dubbo包下的@Server注解,不加这个springboot会不认识它
重新运行
在这里插入图片描述
在新建一个Module做消费者
导入和上面一样的jar

   <!-- dubbo -->
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>0.2.0</version>
        </dependency>
        <!-- zookeeper -->
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>2.12.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>2.12.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.8</version>
            <exclusions>
                <exclusion>
                    <artifactId>slf4j-log4j12</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
            </exclusions>
    </dependency>
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.10</version>
        </dependency>
    </dependencies>

写一个客户类
UserServer

package com.lwj.server;

import com.alibaba.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Service;

@Service
public class UserServer {
@Reference
 TicketServer ticketServer;
public  void  buyticket(){
 String ticket = ticketServer.getTicket();
 System.out.println("买到票"+ticket);
}
}

这个@Service是springframework包下的不然就报错
配置application.properties
在这里插入图片描述
测试运行

在这里插入图片描述
结束,主要是自己踩了很多坑记录一下

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值