SOFA Boot

本文将分别介绍 SOFA Boot 技术栈原理以及项目目录结构,便于您理解并快速上手基于 SOFA Boot 技术栈的研发。

技术栈介绍

SOFA Boot 是基于 Spring Boot 的开发框架,用于快速、敏捷地开发 Spring 应用程序,特别适合构建微服务系统。SOFA Boot 在 Spring Boot 的基础上提供了诸如 Readiness Check、类隔离、日志空间隔离等能力,以解决大规模团队开发云原生微服务系统中会遇到的问题。同时 SOFA Boot 也提供了 SOFAStack 中间件的轻量级集成方案,仅需少量配置即可在 SOFA Boot 中使用 SOFAStack 中间件。

开发工具

目录结构示例

如下图所示,这是一个标准的 SOFA Boot 工程的目录,目录主要分成四个部分:

  • 应用代码目录 src/main/java
  • 测试代码目录 src/test/java
  • 配置文件目录 src/main/resources
  • pom.xml 文件
    SOFA Boot 工程的目录

配置文件说明

SOFA Boot 技术栈使用标准的 application.properties 作为配置文件,以下参数为必须项:

  • 应用名称 spring.application.name

重要:应用名称 spring.application.name 必须与创建的云应用的名称一致。

  • 标识信息 com.alipay.env

重要:标识信息 com.alipay.env 必须默认为 shared

  • 中间件实例唯一标识 com.alipay.instanceid
  • 中间件基于 AntVIP 寻址 com.antcloud.antvip.endpoint=${ip}
  • 访问控制键值 com.antcloud.mw.access
  • 访问控制密钥 com.antcloud.mw.secret

说明:最后四个参数值可以在控制台上获取。详见 基于 SOFA Boot 创建并部署云应用

application.properties

工程配置

pom.xml 文件是 Maven 的配置文件。

pom.xml

project 标签中,声明工程坐标,包括以下内容:

  • modelVersion:声明工程描述应遵循的 POM 模型版本。
  • groupId:工程的全球唯一标识符,一般为公司域名或组织域名的反写。
  • artifactId:工程的构件标识符。
  • version:工程版本号。SNAPSHOT 意为快照,说明该项目还在开发中,是不稳定的版本。
  • packaging:工程产生的构建类型,例如 jar、war、ear、pom。
  • name:工程的名称,非必选项。
  • url:工程主页的 URL,非必选项。
    更多关于以上元素的信息,参见 Apache Maven 官方文档

下表列出了 SOFAStack 中间件服务在 SOFA Boot 框架对应 starter 的 artifactId:

中间件服务名称SOFA Boot artifactIdSOFA Boot version
SOFA RPCrpc-enterprise-sofa-boot-starter2.4.0
SOFA REST rest-enterprise-sofa-boot-starter2.4.0
定时任务scheduler-enterprise-sofa-boot-starter2.4.0
动态配置ddcs-enterprise-sofa-boot-starter2.4.0
消息队列mq-enterprise-sofa-boot-starter2.2.8

SOFAStack 中间件

SOFAStack(Scalable Open Financial Architecture Stack,简称 SOFAStack)中间件是金融科技自主研发的金融级分布式中间件,专注为用户提供安全、稳定、可靠、高效、敏捷的基础架构能力,帮助用户解决传统集中式架构转型的困难,打造大规模高可用的分布式系统架构,加快“互联网+”推进的速度,轻松应对亿级用户的大规模、突发性、高并发量的瞬间冲击。

SOFAStack 中间件以 SOFA Boot 轻量级服务框架为基础,提供微服务平台、消息队列、分布式链路跟踪等服务。

产品名简介使用
SOFA Boot基于 Spring Boot 的微服务框架,为中间件提供轻量级集成方案。详情参见 SOFA Boot快速开始
微服务平台微服务提供实现微服务架构所需的各种组件,包括 RPC、注册中心、服务治理、动态配置、定时任务等,致力于帮助企业快速构建高可扩展、高性能、低成本的金融级分布式系统。详情参见 微服务快速开始
消息队列保证业务系统或组件之间的数据异步通信。详情参见 消息队列快速开始
分布式链路跟踪快速构建系统调用关系链,提供实时系统分析与异常定位。详情参见 分布式链路跟踪快速开始

原文: https://docs.alipay.com/mini/cloud-service/tmp44c