六、SpringBoot整合Zookeeper及Dubbo实现RPC调用

一、构建项目

  1. 创建空项目

  2. 创建两个module:provider-server和consumer-server

  3. 分别引入如下依赖

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo-spring-boot-starter</artifactId>
                <version>2.7.3</version>
            </dependency>
            <dependency>
                <groupId>com.github.sgroschupf</groupId>
                <artifactId>zkclient</artifactId>
                <version>0.1</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.14</version>
                <!--排除这个slf4j-log4j12-->
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
    
    
  4. 在provider-server的service文件夹下创建买票服务接口TicketService及TicketServiceImpl,在propeties中配置端口和注册中心

    package com.jx.service;
    public interface TicketService {
        public String getTicket();
    }
    
    package com.jx.service;
    import org.apache.dubbo.config.annotation.Service;//是dubbo下的类而不是springframework
    import org.springframework.stereotype.Component;
    //服务注册与发现
    @Service//用于注册到注册中心,表明是提供者
    @Component
    public class TicketServiceImpl implements TicketService{
        @Override
        public String getTicket() {
            return "调用卖票服务,买到一张票";
        }
    }
    
    server.port=8001
    #当前应用名字
    dubbo.application.name=provider-server
    #注册中心地址
    dubbo.registry.address=zookeeper://127.0.0.1:2181
    #扫描指定包下服务
    dubbo.scan.base-packages=com.jx.service
    
  5. 在consumer-server的service文件夹下创建UserService和与provider-server一样的买票接口买票服务接口TicketService,在propeties中配置端口和注册中心

    package com.jx.service;
    import org.apache.dubbo.config.annotation.Reference;
    import org.springframework.stereotype.Service;
    @Service
    public class UserService {
        @Reference//引用注解,调用注册中心的ticketService远程服务,表明此服务为消费者
        TicketService ticketService;
        public void buyTicket(){
            String ticket = ticketService.getTicket();
            System.out.println(ticket);
        }
    }
    
    package com.jx.service;
    
    public interface TicketService {
        public String getTicket();
    }
    
    server.port=8002
    #当前应用名字
    dubbo.application.name=consumer-server
    #注册中心地址
    dubbo.registry.address=zookeeper://127.0.0.1:2181
    
  6. 在consumer-server测试类中创建一个测试方法

    package com.jx;
    import com.jx.service.UserService;
    import org.junit.jupiter.api.Test;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    
    @SpringBootTest
    class ConsumerServerApplicationTests {
        @Autowired
        UserService userService;
        @Test
        void contextLoads() {
            userService.buyTicket();//实际通过注册中心调用provider-server的buyTicket()
        }
    
    }
    

二、下载和运行Zookeeper

  1. 下载 zookeeper压缩包腾讯微云下载地址
  2. 在zookeeper-3.4.10\conf 同目录下复制粘贴zoo_sample.cfg 并修改为zoo.cfg
  3. 以管理员权限运行bin\zkServer.cmd

三、下载和运行dubbo-admin

  1. 下载dubbo-admin.jar腾讯微云下载地址
  2. 在文件资源管理器的下载路径cmd 打开命令行
  3. 输入 java -jar dubbo-admin.jar 运行项目
  4. 浏览器访问localhost:7001进行登录 用户名及密码均为root

四、运行测试

  1. 分别运行provider-server和consumer-server
  2. 刷新dubbo管理页面,查看提供者及消费者是否已注册
  3. 运行测试方法,查看买票语句是否被输出
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值