一、SOFA Boot是什么
说到 SOFABoot,不得不先说下 SOFARPC 框架,SOFARPC 也是大名远扬,最早起源于阿里淘宝 HSF 框架,现在是蚂蚁金服开源的一款高性能、高可扩展性、生产级别的 RPC 框架,在蚂蚁金服,SOFARPC 框架已经使用了十多年了,并且已经历经了五代。
SOFARPC 开源地址,有兴趣可以自行学习。
SOFARPC github地址
光看SOFA Boot这个名字,猜测是SOFA+Spring Boot?接下来看官网的介绍:

SOFABoot 是蚂蚁金服开源的基于 Spring Boot 的研发框架,它在 Spring Boot 的基础上,提供了诸如 Readiness Check,类隔离,日志空间隔离等等能力。
在增强了 Spring Boot 的同时,SOFABoot 提供了让用户可以在 Spring Boot 中非常方便地使用 SOFA 中间件的能力。

SOFABoot 开源地址:

https://github.com/sofastack/sofa-boot

看完之后可以发现,SOFA Boot并不是SOFA + Spring Boot,SOFABoot 和 SOFARPC 都是蚂蚁金服开源的 SOFA 技术栈的开源项目,SOFARPC 只是其 SOFA 技术栈体系(SOFAStack)中的一个 RPC 框架。
SOFABoot 也是 SOFA 技术栈体系中一个框架,但和 SOFARPC 没有直接关系,SOFABoot 是一个 Spring Boot 加强版,还提供了方便使用 SOFA 中间件的能力,SOFARPC 只是其中之一而已。
二、功能描述
Spring Boot 虽然是一个非常优秀的主流开源框架,但在蚂蚁内部会遇到很多问题,比如说 Spring Boot 在实施大规模微服务架构时候的就会遇到很多问题,所以 SOFABoot 应运而生。

SOFABoot 基于 Spring Boot 的基础上进行构建,并且是完全兼容 Spring Boot 的。

SOFABoot 在 Spring Boot 上还提供了哪些能力?

1)扩展 Spring Boot 的健康检查,额外提供了 Readiness Check 的能力,以保证应用实例安全上线;

2)增加基于 Spring 上下文隔离的模块化开发能力,每个 SOFABoot 模块使用独立的 Spring 上下文,避免不同 SOFABoot 模块间的 BeanId 冲突;

3)增加模块并行加载和 Spring Bean 异步初始化能力,加速应用启动;

4)增加日志空间隔离的能力,中间件框架自动发现应用的日志实现依赖并独立打印日志,避免中间件和应用日志实现绑定;

5)增加基于 SOFAArk 框架提供类隔离能力,方便解决各种类冲突问题;

6)增加中间件集成管理的能力,统一管控、提供中间件统一易用的编程接口、每一个 SOFA 中间件都是独立可插拔的组件;
三、依赖环境
SOFABoot 和 Spring Boot 版本依赖关系:

SOFABoot 目前最新版本已到 v3.4.6,最低支持 JDK 7,SOFABoot 3.1.0 基于 Spring Boot 2.1.0.RELEASE 已支持 JDK 11,所以其依赖的 JDK 的版本肯定应该也是根据 Spring Boot 走的。

目前的 Spring Boot 版本已经到了 2.4.x,想兼容最新的 Spring Boot 版本貌似还早。

SOFABoot 还使用了其他主要第三方开源组件:

Spring
Spring Boot
SLF4j
sofa-common-tools
一些扩展依赖:

nuxeo

SOFABoot 支持 Maven 和 Gradle 依赖管理,类似 Spring Boot 的依赖引入方式,如在 Maven 配置文件中增加如下 标签配置的方式:

<parent><groupId>com.alipay.sofa</groupId><artifactId>sofaboot-dependencies</artifactId><version>3.4.6</version>
</parent>

Spring Boot 的依赖引入是这样的:

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.0</version>
</parent>

可以看出和 Spring Boot 如出一辙!
三、引入 SOFA 组件
遵循 Spring Boot 命名规范,SOFABoot 所有中间件组件命名都是以 -sofa-boot-starter 来标示的。
SOFABoot 目前提供的中间件组件如下:

中间件 starter
SOFARPC rpc-sofa-boot-starter
SOFATracer tracer-sofa-boot-starter
SOFALookout lookout-sofa-boot-starter

SOFABoot 目前提供的扩展组件如下:

扩展组件 starter
健康检查 healthcheck-sofa-boot-starter
模块化隔离 isle-sofa-boot-starter
类隔离 sofa-ark-springboot-starter
测试扩展 test-sofa-boot-starter

比如想引入 SOFARPC 中间件,只需增加下面的 Maven 依赖即可:

<dependency><groupId>com.alipay.sofa</groupId><artifactId>rpc-sofa-boot-starter</artifactId>
</dependency>

四、应用场景
话说 SOFABoot 框架有哪些应用场景?
SOFABoot 框架本身就脱胎于蚂蚁金服内部对于 Spring Boot 框架的运用实践的成果,又解决了 Spring Boot 在大规模金融级微服务架构生产场景下遇到的各种问题,又经历了蚂蚁金服这样大规模金融服务的打磨和生产验证,所以 SOFABoot 在大规模金融级微服务架构下的运用是非常合适的。
另外,SOFABoot 框架集成了所有蚂蚁金服金融科技中间件,同时又能与 Spring Boot 框架无缝集成,大大降低了用户的迁移成本。
如果不想自研,又对 Spring Boot + 蚂蚁金服技术栈情有独钟的,完全可以利用 SOFABoot 轻松搭建稳定、可靠、安全、可扩展的分布式应用,以减少开发、测试、集成成本。
参考文档:
https://github.com/sofastack/sofa-boot
https://www.sofastack.tech/projects/sofa-boot/overview/

阿里巴巴与蚂蚁集团开源框架SOFA Boot相关推荐

  1. 蚂蚁集团网络通信框架 SOFABolt 功能介绍及协议框架解析 | 开源

    简介:开源网络通信框架 SOFABolt 首次线上直播文字回顾. ,有趣实用的分布式架构频道. 回顾视频以及 PPT 查看地址见文末.欢迎加入直播互动钉钉群 : 30315793,不错过每场直播. 大 ...

  2. 蚂蚁集团开源可信隐私计算框架「隐语」:开放、通用

    7 月 4 日,蚂蚁集团宣布面向全球开发者正式开源可信隐私计算框架 "隐语". 隐语是蚂蚁集团历时 6 年自主研发,以安全.开放为核心设计理念打造的可信隐私计算技术框架,涵盖了当前 ...

  3. 蚂蚁集团开源大规模视频侵权定位数据集

    "做衣服不买布",有专家这样形容短视频的侵权行为. 截至2021年12月底,中国短视频用户规模达到9.34亿.但面对海量的视频内容,"如何监测"也是一个老大难的 ...

  4. 详解蚂蚁开源框架SOFA

    前言 SOFA解决:分布式下的服务和组件管理以及调用繁琐的问题 SOFA结构图 1.Sofa是什么 SOFA 源自于 Service Oriented Fabric Architecture,即面向服 ...

  5. 蚂蚁集团涵畅:再启程,Service Mesh 前路虽长,尤可期许

    本文根据涵畅在开源中国 OSC 源创会架构专场分享整理. 前言 几乎所有人都在说 Service Mesh:貌似没人知道怎么落地 Service Mesh:但是大家都觉得其他人在大力做 Service ...

  6. 中秋邀请共赏图数据库-蚂蚁集团图数据TuGraph 正式开源

    目录 前言 1.五道口+蚂蚁集团的系统长什么样 2.性能拉满,能抗能打 优点: 缺点: 一.TuGraph,比关系数据库更懂关系 1.更懂关系的图数据TuGraph 2.图数据发展的三个阶段 2.1第 ...

  7. 阿里蚂蚁金服Java岗330道面试题(性能调优+微服务+并发编程+开源框架+分布式)

    前言 2019年还有不到2个月的时间就结束了,这一你,你收获了多少?  前段时间一直有粉丝问我,有没有今年一些大厂Java面试题总结?最新抽时间整理了一些,分享给大家,大家一起共享学习! 一.性能调优 ...

  8. 源三:聊聊注册中心在蚂蚁集团的降本提效之路

    文|林育智(花名:源三 ) 蚂蚁集团高级专家 专注微服务/服务发现相关领域 校对|李旭东 本文 8624 字 阅读 18 分钟 |引 言| 服务发现是构建分布式系统的最重要的依赖之一, 在蚂蚁集团承担 ...

  9. 蚂蚁集团境外站点 Seata 实践与探索

    PART. 1 背景 蚂蚁国际境外银行业务正在部分迁移至阿里云,原内部使用的 SOFA 技术栈无法在阿里云上得到支持.为了满足银行业务快速发展.简化银行系统技术栈的目标,我们采用了 Spring+Du ...

最新文章

  1. dcom配置_spring cloud 二代架构依赖组件 全配置放送
  2. Ext JS 6开发实例(三) :主界面设计
  3. ERP项目实施记录02
  4. 东芝如何看待蓝牙在物联网热潮下的机遇
  5. jquery 文本编辑器插件
  6. 服务器虚拟化税收编码,服务器主机税收分类
  7. unity3d手游破解(一)
  8. R语言与临床模型预测——LASSO回归,单因素多因素cox,差异表达分析,Venn图,森林图,列线图,矫正曲线,ROC全套代码及解析——第五部分 批量cox回归分析 本专栏可免费答疑
  9. 基于PHP+MYSQL的成绩查询系统(含源码)
  10. 从乐清女孩发出救命信息后殒命想到,微信滴滴应增加SOS求救功能
  11. RFC7515- JSON Web Signature (JWS)(JSON Web签名)
  12. SharePoint专家新闻轮转器WebPart----亲测力推之Web部件
  13. iphonex 序列号_iPhoneX如何查看手机序列号?三种查看方法全教给你!
  14. 讲师征集令 | Apache DolphinScheduler Meetup分享嘉宾,期待你的议题和声音!
  15. 学校计算机考试插u盘,一种带USB插头的计算机考试防U盘作弊装置的制作方法
  16. 英语不好的同学已经期盼已久了!IDEA、Clion、Pycharm等2020版本支持中文啦,汉化教程
  17. .dll文件(DLL文件)
  18. web ctf解题记录 bugku的ctf_论剑场
  19. android stuio 设置代理
  20. SQL查询优化外连接和内连接

热门文章

  1. 35Java抽象类与抽象方法
  2. arduino使用oled代码_Arduino指纹传感器模块使用方法(FPM10A)
  3. 事业单位人力资源开发中的职业发展分析
  4. Linux 查找项目路径
  5. java服务器常见状态码
  6. mysql5.1.35_在Windows上安装MySql 5.1.35 Noinstall版
  7. 国家自然科学基金成果填写经验
  8. 机器学习数据划分笔记(train_test_split)
  9. java保存map_Java之map
  10. Ubuntu 20.04自动挂载NFS失败