引入 SOFA 中间件

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

为了在 SOFABoot 应用中引入 SOFA 中间件,需要在工程文件中进行以下配置:

  1. application.properties 文件中添加 properties 配置项

  2. 在主 pom.xml 文件中 引入相关中间件服务的 starter

properties 配置项

在 Web 项目的 app/web/src/main/resources/config/application.properties 中必须配置的属性,汇总如下:

  • 运行模式:run.mode=NORMAL

  • 环境标识:com.alipay.env=shared

  • 实例标识:com.alipay.instanceid=${real value}

  • AntVIP 地址:com.antcloud.antvip.endpoint=${real value}

  • 访问控制键 ID:com.antcloud.mw.access=${real value}

  • 访问控制密钥:com.antcloud.mw.secret=${real value}

    警告

    • 以上参数为必选项,否则会导致服务注册失败。

    • {real value}:为占位符,请务必替换为真实值。

    • 运行模式和环境标识在云端发布时应置为默认值。

配置项说明

  • run.mode:标识工程的运行模式。默认为 NORMAL

    枚举值说明如下:

    • DEV:表示 RPC 路由时,强制用本地模式(客户端和服务端均在一台机器)。

    • TEST:表示 RPC 路由时,强制用 test-url 参数指定的地址(点对点连接)。

    • NORMAL:表示 RPC 路由时,使用软负载的路由,也是线上正确的模式。

  • com.alipay.env:用来作为环境标识。默认为 com.alipay.env=shared

  • com.alipay.instanceid:中间件实例的唯一标识。用来将使用的中间件逻辑实例和其他用户做区分。

  • com.antcloud.antvip.endpoint:中间件基于 AntVIP 寻址,在分布式环境中,应用启动后,采用轮询策略,通过 AntVIP 指定的内网 IP 地址,寻找各个组件服务端。不同环境的 AntVIP 地址值,规定如下。

    • 杭州金区:cn-hangzhou-fin-middleware-acvip-prod.cloud.alipaycs.net

    • 上海非金:cn-shanghai-middleware-acvip-prod.cloud.alipaycs.net

    • 上海金区:cn-shanghai-fin-sofastack-middleware-acvip-prod.cloud.alipaycs.net

    • 杭州非金:cn-hangzhou-middleware-acvip-prod.cloud.alipaycs.net

  • com.antcloud.mw.access:访问控制键 ID。

  • com.antcloud.mw.secret:访问控制键密钥。

配置步骤

上述属性的配置步骤,说明如下:

  1. 登录 SOFAStack 控制台

  2. 在左侧导航栏选择 中间件 > 中间件总览

    image

    从中获取以下信息:

    • instanceld(实例标识):应用实例在工作空间中的唯一标识,在 application 中对应的 key 为:com.alipay.instanceid

    • AntVIP endpoint:应用通过 AntVIP 来获取各个组件的服务端地址,每个区域一个地址。在 application 中对应的 key 为 com.antcloud.antvip.endpoint。不同环境的 AntVIP 地址值,请参见 配置项说明 配置。

  3. 单击控制台右上角的用户头像,然后单击 AccessKey 管理,在跳转的页面中即可获取访问控制对应的属性值。 这些属性在 application 中对应的 key 分别为:

    • Access Key IDcom.antcloud.mw.access

    • Access Secretcom.antcloud.mw.secret

      说明

      如果需要创建 AccessKey,可单击获取 AK。更多详情,请参见 创建 AccessKey

  4. 配置运行模式和运行环境,示例如下:

    run.mode=NORMAL
    com.alipay.env=shared
  5. 将上述属性键和值,配置在 application.properties 文件中。

引入相关中间件服务的 starter

SOFABoot 对引入的各中间件服务版本进行了统一管理。您只需在主 pom.xml 文件中添加或修改相应的中间件服务 starter,即可引入相应的中间件服务。

中间件服务及对应 starter 的依赖信息汇总如下:

  • groupIdcom.alipay.sofa

  • version:自 SOFABoot 3.2.1 开始,中间件对应 starter 的版本和 SOFABoot 版本信息保持一致。SOFABoot 的最新版本信息,请参见 版本说明

  • artifactId:即 starter 的名称,更多详情见下表。

    中间件

    artifactId

    产品

    微服务

    SOFARPC

    rpc-enterprise-sofa-boot-starter

    动态配置

    ddcs-enterprise-sofa-boot-starter

    限流熔断

    guardian-sofa-boot-starter

    SOFABoot

    模块隔离

    isle-enterprise-sofa-boot-starter

    任务调度

    scheduler-enterprise-sofa-boot-starter

    消息队列

    sofamq-enterprise-sofa-boot-starter

    分布式链路跟踪

    tracer-enterprise-sofa-boot-starter

    分布式事务

    dtx-enterprise-sofa-boot-starter

    跨产品

    Security

    security-enterprise-sofa-boot-starter

    SOFA Runtime

    runtime-enterprise-sofa-boot-starter

    健康检查

    healthcheck-enterprise-sofa-boot-starter


查看 starter 信息

对于 SOFABoot 引入的各个中间件 starter,您可以通过以下步骤快速获取应用中各中间件 starter 的依赖、版本等信息:

  1. 在应用中启用 健康检查 功能。

    • 按照官网文档 创建工程 创建的 SOFABoot 工程,默认已经有其它组件引入了健康检查功能。

    • 若尚未启用,引入健康检查的操作,请参见 引入健康检查

  2. 在浏览器中,访问 http://localhost:8080/actuator/versions 以查看中间件 starter 的信息。示例如下:

    [
            {
                GroupId:"com.alipay.sofa",
                Doc-Url:"https://www.cloud.alipay.com/docs/2/56003",
                ArtifactId:"rpc-enterprise-sofa-boot-starter",
                Commit-Time:"2020-02-20T16:53:47+0800",
                Commit-Id:"fdfaded104aafe578a3e3b741a4cedaaf07e3c26",
                Version:"3.3.0",
                Build-Time:"2020-02-20T17:00:19+0800"
            },
            ...
    ]