Spring Cloud Alibaba 分布式服务调用

1. 简介
  在《Spring Cloud Alibaba 服务注册与发现》篇中曾提到,Spring Cloud
Alibaba Nacos Discovery 能无缝整合 Spring Cloud OpenFeign。换言之,Spring
Cloud Alibaba 延续了 Spring Cloud 分布式服务调用的特性。除此之外,Spring
Cloud Alibaba 引入了 Dubbo Spring Cloud,扩展了分布式服务调用能力,不仅能使
Apache Dubbo 和 OpenFeign 共存,还允许 Spring Cloud 标准调用底层通过
Dubbo 支持的通讯协议传输。无论开发人员是 Dubbo 用户还是 Spring Cloud 用户,
都能轻松地驾驭,并以接近“零”成本的代价使应用向上迁移。Dubbo Spring Cloud 致
力于简化 Cloud Native 开发成本,提高研发效能以及提升应用性能等目的。

2. 学习目标
  使用 Dubbo Spring Cloud 实现 Spring Cloud 分布式服务调用
  使用 Dubbo Spring Cloud 替换 Spring Cloud 分布式服务调用底层协议
  理解 Dubbo Spring Cloud 高级特性:服务订阅、元数据、Actuator
  
3. 我们了解Spring Cloud Alibaba中的Nacos来作为服务注册中心,如Spring Cloud使用
   Ribbon或Feign来实现服务消费。这篇介绍Spring Cloud Alibaba下额外支持的RPC方案:Dubbo。

4.入门案例
  通过官方文档简单案例,感受Nacos服务注册中心中,利用Dubbo来实现服务提供方与服务消费方。
  这里省略Nacos的安装与使用,如果对Nacos还不了解,可以查看博主springcloud alibaba系列文章:
  
  4.1通过直接访问阿里云[沙箱环境](https://start.aliyun.com/bootstrap.html):
     https://start.aliyun.com/bootstrap.html
     根据需求配置的案例代码进行使用
     
     1.构建服务接口提供方
     
     以谷歌浏览器为例,网站首先,在 "项目基本信息" 部分输入 Group :“com.alibaba.cloud” 
     以及 Artifact:“dubbo-provider-sample”(见下图绿框部分)。然后,“组件依赖” 输入框搜索:
     “Dubbo”(见下图红箭头部分),最后,选择"Spring Cloud Alibaba Dubbo"(见下图红框部分),
     如下所示

在这里插入图片描述

  继续依赖其他组件:
  Nacos Service Discovery - 服务注册与发现组件
  Spring Web - Spring Web MVC 组件
  Spring Boot Actuator - Spring Boot Actator 组件

在这里插入图片描述

	点击 “生成” 高亮按钮,平台将生成一个名为 “dubbo-provider-sample.zip”的压缩文件,
将其保存到本地目录,并解压该文件,工程目录将随之生成。打开目录下的pom.xml 文件,
不难发现 Dubbo Spring Cloud Starter 声明其中(以下 XML 内容均来自于项目
根路径中的 pom.xml 文件):
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>dubbo-provider-sample</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>dubbo-provider-sample</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
        <spring-cloud-alibaba.version>2.2.2.RELEASE</spring-cloud-alibaba.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-dubbo</artifactId>
        </dependency>
        <!-- Dubbo 服务 artifact 本地-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>dubbo-sample-api</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zkhyzy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值