E1cc963e5e9a8c711090035b36a88ea2
18.基于spring-cloud/spring-cloud-alibaba的微服务架构实战案例——SpringCloud与Dubbo融合

基于spring-cloud/spring-cloud-alibaba套件实现的微服务实战案例,第十八篇

SpringCloudAlibaba组件的出现,使SpringCloud与Dubbo可以轻松的融合在一起,本节就带你一探究竟。

Dubbo

Dubbo定位于高性能、轻量级的开源Java RPC框架,在国内dubbo的使用相当广泛。即便在不维护期间也分支出dubbox,由当当维护,后来dubbo重启维护后合并到主干。即便是在不维护期间,活跃度依旧。dubbo生态不在断的完善中。

为快速上手Dubbo应用,仿照start.spring.io,官方也推出快速生成基于SpringBoot的Dubbo项目的网站:http://start.dubbo.io/113。更详细的dubbo文档,可到官网查看。

增加parking-carwash模块

此模块需要完成对外提供RPC接口的功能,代码结构如下

编写parking-carwash-serv服务提供者

在api模块中编写接口,同时将对应的实体放在这里,以便被依赖时正常使用。在服务提供者模块引入jar(nacos注册、mybatis、lombok、fastjson等按正常引入即可)

<!-- Spring Boot dependencies -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-actuator</artifactId>
        </dependency>

        <!-- Dubbo Spring Cloud Starter -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-dubbo</artifactId>
        </dependency>

为体验yml配置的使用,本项目中引入bootstrap.yml文件

spring:
  application:
    name: carwash-service
  main:
    allow-bean-definition-overriding: true
  cloud:
    nacos:
      discovery:
        enabled: true
        register-enabled: true
        server-addr: 127.0.0.1:8848

application.properties中再配置dubbo其它的相关配置

# dubbo config
dubbo.protocols.dubbo.name=dubbo
dubbo.protocols.dubbo.port=-1
dubbo.scan.base-packages=com.mall.parking.carwash.serv.service
dubbo.registry.address=spring-cloud://127.0.0.1
dubbo.registry.register=true
dubbo.application.qos.enable=false

#此配置项为了防止nacos大量的naming日志输出而配置
logging.level.com.alibaba.nacos.client.naming=error

Application启动类,与一般SpringCloud的启动类无异。启动后,在nacos的服务列表中可以看到本模块的服务已经注册成功。

parking-member服务消息者

pom中引入dubbo的jar

```xml

com.alibaba.cloud spring-cloud-starter-dubbo

top Created with Sketch.