美文网首页互联网科技spring boot
Springboot整合dubbo(一):搭建一个springb

Springboot整合dubbo(一):搭建一个springb

作者: 问题_解决_分享_讨论_最优 | 来源:发表于2019-12-24 07:34 被阅读0次

    现在越来越多的公司开发项目中使用了springboot作为搭建服务的框架,因为springboot集成了一套完整项目所需要的基本的开发工具的jar包,无需再像之前开发一个spring项目中需要引入各种配置,只需要引入简单的几个配置就能达到项目的启动,大大减少了开发周期,使开发越来越便捷,而dubbo是一款国内使用较多的SOA架构开发的中间件,其主要由三个部分组成:生产者,消费者,注册中心。注册中心一般使用的是zookeeper。于是我们从头来捋一捋如何搭建一个springboot+dubbo项目。

    首先,使用创建一个springboot项目,我这里使用的是IDEA工具,如果是使用eclipse的同学,大家可以去网上找有很多的搭建springboot项目的博客。

    第一步:选择新建project或者module,在界面中选择Spring Initilazr点击next:

    image

    第二步:填上项目的基本信息点击next:

    2018110315102796.jpg

    第三步:选择在你的项目中需要引入的相关依赖以及springboot的版本,这里我选了2.0.6并勾选web便于测试(当然你可以根据你的需要勾选不同的依赖,很全基本上涵盖了开发过程中所用到的所有插件)点击next编辑器就会帮你自动将项目初始化并下载相关的jar包依赖:

    image

    进入项目后我们可以先看看项目结构:


    image

    其中DemoApplication是项目的启动类,application.properties是配置文件,项目的一些相关的配置可以写在里面,springboot支持多种配置文件格式,目前比较常用的除了properties配置之外,比较流行的是yml格式的配置文件,这里我就将application.properties文件改成application.yml为配置文件格式,都ok了之后呢我们就可以启动启动类(启动类带有main方法可以直接启动),项目就可以启动了。

    第四步:下载安装zookeeper

    1. 下载zookeeper注册中心,下载地址:http://www.apache.org/dyn/closer.cgi/zookeeper/ 下载后解压即可,进入D:\apach-zookeeper-3.4.5\bin,

    双击zkServer.cmd启动注册中心服务。

    双击 zkServer.cmd,发现dos框一闪而过,无法正确启动zookeeper。

    右键编辑 zkServer.cmd


    关于在windows下启动zkServer.cmd闪退的解决办法

    在末尾输入pause ,保存退出。

    再次运行zkServer.cmd,发现dos命令行窗口静止了。


    关于在windows下启动zkServer.cmd闪退的解决办法

    现在能看到错误提示了,发现提示 JAVA_HOME 没有被正确设置。


    关于在windows下启动zkServer.cmd闪退的解决办法

    此时检查自己的 JAVA_HOME设置情况,发现 JAVA_HOME是正确设置的,那是怎么回事?
    右键编辑zkEnv.cmd


    关于在windows下启动zkServer.cmd闪退的解决办法

    在这两处添加双引号,保存退出。


    关于在windows下启动zkServer.cmd闪退的解决办法

    重新运行zkServer.cmd,OK,zkServer正常启动了!


    关于在windows下启动zkServer.cmd闪退的解决办法

    第五步:引入Springboot集成dubbo的依赖以及zookeeper客户端依赖:

          <!-- 整合dubbo -->
                <dependency>
                    <groupId>io.dubbo.springboot</groupId>
                    <artifactId>spring-boot-starter-dubbo</artifactId>
                    <version>1.0.0</version>
                </dependency>
                <!-- zookeeper客户端 -->
                 <dependency>
                    <groupId>com.101tec</groupId>
                    <artifactId>zkclient</artifactId>
                    <version>0.7</version>
                </dependency>
    

    第六步:创建接口及接口实现类:


    public interface TestService {
     
        void testDubbo();
    }
    
    
    import com.alibaba.dubbo.config.annotation.Service;
    import com.springboot.dubbo.service.TestService;
     
    @Service(version = "1.0.0",timeout = 3000)
    public class TestServiceImpl implements TestService{
     
        @Override
        public void testDubbo() {
     
        }
    }
    

    添加@Service注解,切记注解不是用spring的service注解,是 com.alibaba.dubbo.config.annotation.Service,由阿里提供的dubbo的注解,配上版本号1.0.0说明向zookeeper注册的是版本为1.0.0的TestService接口,超时时长为3000ms等信息。

    第七步:添加配置:

    server:
      port: 8080 #Tomcat端口
    spring:
      dubbo:
        application:
          name: springboot-dubbo-demo #应用名
        registry:
          address: zookeeper://localhost #zookeeper地址
          port: 2181 #提供注册的端口
        protocol:
          name: dubbo
          port: 20890 #dubbo服务暴露的端口
        scan: com.springboot.dubbo.service.impl #扫描的包名
    

    添加完毕后启动项目,没有异常的话,可以通过dubbo-admin查看接口情况:

    image image

    这样一个提供者服务就搭建好了。

    第八步:搭建消费者服务:

    项目创建步骤如上面步骤,引入提供者服务的依赖,需要使用maven install命令将提供者服务依赖安装至本地,或者使用maven deploy命令提交至远程服务器才能正常引入,否则会包依赖包找不到。

    添加controller层代码项目整体结构如图:

    20181103191909237.jpg

    TestController类中的代码结构使用服务注入时使用dubbo的Reference注解:

    @Reference(version = "1.0.0",timeout = 300)
        private TestService testService;
    
    spring:
      dubbo:
        application:
          name: springboot-dubbo-demo
        registry:
          address: zookeeper://localhost
          port: 2181
        scan: com.springboot.dubbo.test.controller
    

    将配置文件扫描的包改成com.springboot.dubbo.test,然后启动项目

    通过阿里的Reference这个注解,就可以将消费者注册到zookeeper上就能实现调用啦。

    查看dubbo的服务可以看到一个提供者一个消费者:

    image

    打个广告,本人博客地址是:风吟个人博客

    相关文章

      网友评论

        本文标题:Springboot整合dubbo(一):搭建一个springb

        本文链接:https://www.haomeiwen.com/subject/baqznctx.html