SOFABoot框架的简单搭建
先简单介绍一下 ,SOFA Boot 是基于 Spring Boot 的开发框架,是蚂蚁金服下的一款开源框架,用于快速、敏捷地开发 Spring 应用程序,特别适合构建微服务系统 提供了诸如 Readiness Check,类隔离,日志空间隔离等等能力。
SOFABoot 在 Spring Boot 基础上,提供了以下能力:
- 扩展 Spring Boot 健康检查的能力:在 Spring Boot 健康检查能力基础上,提供了 Readiness Check 的能力,针对 Spring Boot 缺少 Readiness Check 能力的情况,SOFABoot 增加了 Spring Boot 现有的健康检查的能力,提供了 Readiness Check 的能力。利用 Readiness Check 的能力,SOFAStack 下各种中间件只有在 Readiness Check 通过之后,才将流量引入到应用的实例中,比如 RPC,只有在 Readiness Check 通过之后,才会向服务注册中心注册,后面来自上游应用的流量才会进入。
- 提供模块化开发的能力:基于 Spring 上下文隔离提供模块化开发能力,每个 SOFABoot 模块使用独立的 Spring 上下文,避免不同 SOFABoot 模块间的 BeanId 冲突。
- 增加模块并行加载和 Spring Bean 异步初始化能力,加速应用启动;
- 增加日志空间隔离的能力:中间件框架自动发现应用的日志实现依赖并独立打印日志,避免中间件和应用日志实现绑定,通过 sofa-common-tools 实现。
- 增加类隔离的能力:基于 SOFAArk 框架提供类隔离能力,方便使用者解决各种类冲突问题。
- 增加中间件集成管理的能力:统一管控、提供中间件统一易用的编程接口、每一个 SOFA 中间件都是独立可插拔的组件。
- 提供完全兼容 Spring Boot的能力:SOFABoot 基于 Spring Boot 的基础上进行构建,并且完全兼容 Spring Boot
文档地址:www.sofastack.tech/sofa-boot/d…
今天就先简单创建一个小demo,下期可能会讲sofaboot整合Rpc和zookeeper。
1. 解压本地下载好的springboot的项目,修改pom文件,
替换:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>${spring.boot.version}</version>
<relativePath/>
</parent>
为:
<parent>
<groupId>com.alipay.sofa</groupId>
<artifactId>sofaboot-dependencies</artifactId>
<version>${sofa.boot.version}</version>
</parent>
各版本springboot项目对应sofaboot项目,版本对应见官网。
添加依赖信息:
<dependency>
<groupId>com.alipay.sofa</groupId>
<artifactId>healthcheck-sofa-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2. application.properties配置文件中加入:
# Application Name
spring.application.name=SOFABoot Demo
# logging path
logging.path=./logs
3.运行项目同springboot,会发现控制台原本spring boot变成了sofaboot
4.测试:
SOFABOOT 3.X之前—>浏览器输入:http://localhost:8080/sofaboot/versions
SOFABOOT 3.X之后—>浏览器输入:http://localhost:8080/actuator/versions
查看sofa中间件版本信息(这里我修改了端口号)