当前位置:首页 > 后端开发 > Springboot整合dubbo(一):搭建一个springboot + dubbo的微服务

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

7个月前 (05-26)62

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

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

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

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

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

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

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

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

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

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

其中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客户端依赖:

            <!-- 整合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>

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

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

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

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

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

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

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

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

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

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

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

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

 

作者:赏花同学
来源链接:https://blog.csdn.net/weixin_41843053/article/details/83687289

标签: Spring Boot

“Springboot整合dubbo(一):搭建一个springboot + dubbo的微服务” 的相关文章

30分钟了解Springboot整合Shiro

30分钟了解Springboot整合Shiro

前言:06年7月的某日,不才创作了一篇题为《30分钟学会如何使用Shiro》的文章。不在意之间居然斩获了22万的阅读量,许多人因此加了我的联系方式咨询源码工程,只可惜当时并没有专门保留。...

springboot整合netty(二)

springboot整合netty(二)

目录 前言 正文 代码 1. 新建一个springboot项目,在pom文...

SpringBoot 之Actuator.

SpringBoot 之Actuator.

一、Actuator 介绍     Actuator 是 SpringBoot 项目中一个非常强大一个功能,有助于对应用程序进行监视和管理,通过 restful...

springboot 事务手动回滚

小伙伴们肯定都知道springboot吧,现如今只要是个程序员就没有不知道springboot的。如今在各种企业级应用开发中事务回滚使用的非常频繁,小伙伴们知道sp...

springboot添加事务

springboot添加事务

添加事务的原因:如果不添加事务 在执行修改操作时,如果有异常出现数据不会回滚仍然会修改到数据库,但是如果添加了事务,如果有异常出现,数据会回滚,数据库中的数据库不会被改...

SpringBoot启动流程分析(一):SpringApplication类初始化过程

SpringBoot启动流程分析(一):SpringApplication类初始化过程

SpringBoot系列文章简介 SpringBoot源码阅读辅助篇:   Spring IoC容器与应用上下文的设计与实现 SpringBoot启动流程源码分析:...

Spring和SpringBoot是什么?

Spring和SpringBoot是什么?

  Spring是什么(5W1H)? 5W: What ?开源框架 Where ?Java开发 When ?2003年兴起...

SpringBoot的幕后推手...

SpringBoot的幕后推手...

深入学习SpringBoot框架的必经之路 一、背景 ​  这两年随着微服务的盛行,SpringBoot框架水到渠成的得到了高曝光,作为程序猿的我们,...

springboot注解@Order的使用

使用order属性,设置该类在spring容器中的加载顺序 例如有三个类:Order1,Order2,Order3,其中Order1类如下:   @Co...