Springboot整合dubbo(一):搭建一个springboot + dubbo的微服务

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

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

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

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

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

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

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

第四步:下载安装zookeeper:https://zookeeper.apache.org/releases.html

具体在windows上如何启动的方法我也不详细说明了,请参照:https://blog.csdn.net/xuchaovip/article/details/55549370(版权归属@澄海单挑狂)

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

            
            
                io.dubbo.springboot
                spring-boot-starter-dubbo
                1.0.0
            
            
             
                com.101tec
                zkclient
                0.7
            

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

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查看接口情况:

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

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

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

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

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的服务可以看到一个提供者一个消费者:

你可能感兴趣的:(java,java,后端)