SpringBoot+Dubbo+Zookeeper入门案例

项目功能

  • 生产者提供服务(售卖票)
  • 消费者消费服务(买票)

项目搭建

项目模块

  • 创建两个模块,分别代表生产者和消费者

    • 生产者pom文件
     <!-- Dubbo Spring Boot Starter -->
            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo-spring-boot-starter</artifactId>
                <version>2.7.3</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/com.github.sgroschupf/zkclient -->
            <dependency>
                <groupId>com.github.sgroschupf</groupId>
                <artifactId>zkclient</artifactId>
                <version>0.1</version>
            </dependency>
            <!--dubbo-->
            <!-- Dubbo Spring Boot Starter -->
            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo-spring-boot-starter</artifactId>
                <version>2.7.3</version>
            </dependency>
            <!--zookeeper-->
            <!-- https://mvnrepository.com/artifact/com.github.sgroschupf/zkclient -->
            <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>
    
    • 生产者配置文件
    # 应用名称
    spring.application.name=provider
    # 应用服务 WEB 访问端口
    server.port=8082
    
    #服务名字
    dubbo.application.name=provider
    #服务地址
    dubbo.registry.address=zookeeper://127.0.0.1:2181
    #那些服务要被注册
    dubbo.scan.base-packages=com.itdfq.provider.service
    
    
    • 消费者pom文件与生产者相同
    • 消费者配置文件
    # 应用名称
    spring.application.name=consumer
    # 应用服务 WEB 访问端口
    server.port=8081
    #消费者去注册中心拿服务(暴露自己的名字)
    dubbo.application.name=consumer
    #注册中心地址
    dubbo.registry.address=zookeeper://127.0.0.1:2181
    
  • 使用Dubbo-admin后台管理进行查看

  • 本地运行Zookeeper

生产者提供卖票

@Service  //发布服务,注入到注册中心  用的是dubbo的service
@Component  //放入容器中
public class TicketServiceImpl implements TicketService{
    @Override
    public String getTicker() {
        return "Doobo+Zookeeper";
    }
}

注意

  • Service用的是Dubbo的service

消费者买票

@Service //用的是Spring自带的,放入容器中
public class Uservice {
    //拿到provider的票
    @Reference //引用  1:pom坐标 2:定义相同的接口名
            TicketService ticketService;

    public void buyPiao(){
        String ticker = ticketService.getTicker();
        System.out.println("再注册中心拿到票"+ticker);
    }

}

注意:

  • 这里的Service用的是Spring中的Service
  • @Reference注解引用的时候,如果采用方法二,需要相同的目录结构才可以访问到

测试

  • 测试代码

     @Autowired
        Uservice uservice;
    
        @Test
        void contextLoads() {
            uservice.buyPiao();
        }
    
  • 消费者提供的服务
    后台管理
    具体提供的服务

  • 测试结果
    结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ITdfq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值