SOFA Boot
本文将分别介绍 SOFA Boot 技术栈原理以及项目目录结构,便于您理解并快速上手基于 SOFA Boot 技术栈的研发。
技术栈介绍
SOFA Boot 是基于 Spring Boot 的开发框架,用于快速、敏捷地开发 Spring 应用程序,特别适合构建微服务系统。SOFA Boot 在 Spring Boot 的基础上提供了诸如 Readiness Check、类隔离、日志空间隔离等能力,以解决大规模团队开发云原生微服务系统中会遇到的问题。同时 SOFA Boot 也提供了 SOFAStack 中间件的轻量级集成方案,仅需少量配置即可在 SOFA Boot 中使用 SOFAStack 中间件。
开发工具
- 小程序前端:小程序开发者工具
- 小程序后端:IDEA(配合 蚂蚁开发者 IDEA 插件)
目录结构示例
如下图所示,这是一个标准的 SOFA Boot 工程的目录,目录主要分成四个部分:
- 应用代码目录
src/main/java
- 测试代码目录
src/test/java
- 配置文件目录
src/main/resources
pom.xml
文件
配置文件说明
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 创建并部署云应用。
工程配置
pom.xml
文件是 Maven 的配置文件。
在 project
标签中,声明工程坐标,包括以下内容:
- modelVersion:声明工程描述应遵循的 POM 模型版本。
- groupId:工程的全球唯一标识符,一般为公司域名或组织域名的反写。
- artifactId:工程的构件标识符。
- version:工程版本号。SNAPSHOT 意为快照,说明该项目还在开发中,是不稳定的版本。
- packaging:工程产生的构建类型,例如 jar、war、ear、pom。
- name:工程的名称,非必选项。
- url:工程主页的 URL,非必选项。
更多关于以上元素的信息,参见 Apache Maven 官方文档。
下表列出了 SOFAStack 中间件服务在 SOFA Boot 框架对应 starter 的 artifactId:
中间件服务名称 | SOFA Boot artifactId | SOFA Boot version |
---|---|---|
SOFA RPC | rpc-enterprise-sofa-boot-starter | 2.4.0 |
SOFA REST | rest-enterprise-sofa-boot-starter | 2.4.0 |
定时任务 | scheduler-enterprise-sofa-boot-starter | 2.4.0 |
动态配置 | ddcs-enterprise-sofa-boot-starter | 2.4.0 |
消息队列 | mq-enterprise-sofa-boot-starter | 2.2.8 |
SOFAStack 中间件
SOFAStack(Scalable Open Financial Architecture Stack,简称 SOFAStack)中间件是金融科技自主研发的金融级分布式中间件,专注为用户提供安全、稳定、可靠、高效、敏捷的基础架构能力,帮助用户解决传统集中式架构转型的困难,打造大规模高可用的分布式系统架构,加快“互联网+”推进的速度,轻松应对亿级用户的大规模、突发性、高并发量的瞬间冲击。
SOFAStack 中间件以 SOFA Boot 轻量级服务框架为基础,提供微服务平台、消息队列、分布式链路跟踪等服务。
产品名 | 简介 | 使用 |
---|---|---|
SOFA Boot | 基于 Spring Boot 的微服务框架,为中间件提供轻量级集成方案。详情参见 SOFA Boot。 | 快速开始 |
微服务平台 | 微服务提供实现微服务架构所需的各种组件,包括 RPC、注册中心、服务治理、动态配置、定时任务等,致力于帮助企业快速构建高可扩展、高性能、低成本的金融级分布式系统。详情参见 微服务。 | 快速开始 |
消息队列 | 保证业务系统或组件之间的数据异步通信。详情参见 消息队列。 | 快速开始 |
分布式链路跟踪 | 快速构建系统调用关系链,提供实时系统分析与异常定位。详情参见 分布式链路跟踪。 | 快速开始 |