快速开始

本文介绍如何快速使用 Spring Cloud SOFA Router。

操作步骤

  1. 在项目工程中添加 Spring Cloud SOFA Router 依赖。

    说明

    不要配置版本,版本由 dependencyManagement 控制。

    • 本例中采用 OpenFeign 作为服务框架,因此会引入相关依赖。

    • 同时项目中需引入负载均衡模块,请根据所使用的 Spring Cloud 版本在 LoadBalancer 或 Ribbon 中进行选择(本示例使用 Spring Cloud 2021 版本为例,因此选择 LoadBalancer)。

    • 为了获得路由配置,还需要引入动态配置模块作为数据源,可以选择使用 DRM 或 Nacos。本示例将引入 DRM 动态配置,以便于通过 SOFA 微服务控制台进行功能展示。

    • 最后本示例为了通过 SOFA 微服务控制台展示路由功能,将引入spring-cloud-starter-sofa-registry

    <dependency>
         <groupId>com.alipay.cloud</groupId>
         <artifactId>spring-cloud-starter-sofa-drm</artifactId>
    </dependency>
    <!-- 引入服务框架 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
    <!-- 引入负载均衡 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-loadbalancer</artifactId>
    </dependency>
    <!-- 引入动态配置 -->
    <dependency>
        <groupId>com.alipay.cloud</groupId>
        <artifactId>spring-cloud-starter-sofa-drm</artifactId>
    </dependency>
    <!-- 可替换为其他注册中心 -->
    <dependency>
         <groupId>com.alipay.cloud</groupId>
         <artifactId>spring-cloud-starter-sofa-registry</artifactId>
    </dependency>

    Spring Cloud SOFA 提供了多种路由算法,本例中使用基于动态规则的路由进行服务路由的快速体验。

  2. 启动服务提供者和消费者,为服务提供者启动两个以上节点,以观察路由是否生效。

    两个服务提供者的服务注册元数据中加入标识用于路由区分。

  3. 为 Demo 提供者应用创建一个新的路由规则。

    添加路由操作请参见 服务路由

    image.png

    SOFA 微服务支持对应用和访问路径设置规则,应用和访问路径均可以有多条规则,它们合并为一个规则组,如上图所示,创建了一个规则组为testRules。此处仅设置一条规则testRule作为示例。

    SOFA 的路由规则分为流量匹配和流量目的地两个重要的配置。流量匹配是用于挑选哪些请求会应用此规则,流量目的地则是用于判断当规则可应用于请求时,请求应该路由到哪些地址,判断条件是根据注册中心元数据中的信息来判断的。此处为简化说明,不设置流量匹配,即所有流量均运用此规则,流量目的地仅设置一个,让所有请求都只访问一个提供者。

    image.png

    通过 curl 命令循环调用消费者应用,在路由规则创建前,会随机调用到两个提供者中的一个。在规则创建后,就只会调用到一个提供者。

    image.png