zoukankan      html  css  js  c++  java
  • 【Spring Boot】六、整合dubbo(注解的方式)

    一.创建项目

      1.创建一个空的项目

      2.在空的项目中添加两个Spring Boot模块,如下图所示

        

    二.在provider模块中的pom文件中添加依赖

            <dependency>
                <groupId>com.alibaba.boot</groupId>
                <artifactId>dubbo-spring-boot-starter</artifactId>
                <version>0.2.0</version>
            </dependency>
            <!--引入zookeeper的客户端工具-->
            <dependency>
                <groupId>com.github.sgroschupf</groupId>
                <artifactId>zkclient</artifactId>
                <version>0.1</version>
            </dependency>

      注意,本人的Spring Boot是2.0以上版本的,导入的dubbo依赖是0.2.0。如果版本不对应,可能会启动失败

    三.在配置文件中配置dubbo

      例如本人的配置如下(provider中的application.properties文件)

    dubbo.application.name=provider
    dubbo.registry.address=zookeeper://192.168.2.130:2181
    dubbo.protocol.name=dubbo
    dubbo.protocol.port=20880
    dubbo.scan.basePackages=com.whzc.service.impl

      如果是consumer模块,则

    dubbo.application.name=consumer
    dubbo.registry.address=zookeeper://192.168.2.130:2181
    dubbo.protocol.name=dubbo
    dubbo.protocol.port=20880

    四.在provider模块中实现发布服务

      接口

    package com.whzc.service;
    
    public interface ArticleProviderService {
        public String writeArticle(String name);
    }

      实现类(注意注解不要引错了)

    package com.whzc.service.impl;
    
    import com.alibaba.dubbo.config.annotation.Service;
    import com.whzc.service.ArticleProviderService;
    import org.springframework.stereotype.Component;
    
    @Service
    @Component
    public class ArticleProviderServiceImpl implements ArticleProviderService {
        @Override
        public String writeArticle(String name) {
                return "写了一篇文章"+ name;
        }
    }

      启动项目,启动成功后如下图所示 (有可能连接时间过长,或zookeeper未开启等各方面原因导致启动失败,可以多尝试几次)

      

      在linux中查看服务,在zookeeper的安装目录中,有一个bin目录,bin目录中有一个zkCli.sh,启动zkCli.sh,

    ./zkCli.sh

      如下图所示

       

      输入

    ls /

      再输入

    ls /dubbo

      可以查看已经发布的服务,例如本人的如下所示

      

      附:如果装有dubbo-admin,可以直接在dubbo-admin中查看,例如下图所示(网上直接找dubbo-admin的war包,放到tomcat中即可)

      

    五.在consumer中获取到服务

      1.复制provider中的接口到consumer对应的包中(和provider中的接口的包名相同,都是com.whzc.service包中),这里不需要实现类了

      2.创建一个消费者服务,例如(注意Service注解和Reference注解对应的包不要引错了)

    package com.whzc.service;
    import com.alibaba.dubbo.config.annotation.Reference;
    import org.springframework.stereotype.Service;
    
    @Service
    public class ArticleConsumerService {
        @Reference
        ArticleProviderService articleProviderService;
    
        public void readArticle(){
            String str = articleProviderService.writeArticle("文章111");
            System.out.println("读了别人"+str);
        }
    }

      3.在测试类中测试

        @Autowired
        ArticleConsumerService articleConsumerService;
    
        @Test
        public void contextLoads() {
            articleConsumerService.readArticle();
        }

      4.发现成功获取到了provider发布的服务,如下图所示

      

       如果直接启动该consumer项目,则可以在dubbo-admin中看到如下图所示

      

  • 相关阅读:
    点击按钮倒计时
    js实现-小框框全选
    CSS文字,文本,背景,盒模型等记录
    xps9560黑苹果展示
    面试——谈谈你对抽象和接口的理解(小知识大考点)
    谈谈你对Java 面向对象思想的理解
    谈谈你对Java 平台的理解
    HashMap1.7 问题总结
    2.3.2 InnoDB内存
    2.3 InnoDB 体系架构
  • 原文地址:https://www.cnblogs.com/ywb-articles/p/10817062.html
Copyright © 2011-2022 走看看