SOFABoot 4.0 正式发布,多项新特性等你来体验!

1、SOFABoot 系列---简介 SOFABoot 是蚂蚁金服开源的基于 Spring Boot 的研发框架,它在 Spring Boot 的基础上,提供了诸如 Readiness Check,类隔离,日志空间隔离等能力。在增强了 Spring Boot 的同时,SOFABoot 提供了让用户可以在 Spring Boot 中非常方便地使用 SOFA 中间件的能力。 SOFABoot 版本和 Spring Boot 版本对... 阅读详情

432383f9eb2eb6a64f78d4be56d7f538.gif

文|胡子杰(GitHub ID:HzjNeverStop)

SOFABoot Maintainer

蚂蚁集团技术专家

8f93e731ea2af8dd8e939d02cdb5bcab.png

本文 3296 字 阅读 12 分钟

Part.1 「亿点点」新特性

基于 Java 17

SOFABoot 4.0 依赖 Java 17 作为最小支持的 JDK 版本。如果你的应用目前使用 Java 8 或 11,你需要先将自己的 JDK 版本升级到 17 才能基于 SOFABoot 4.0 进行开发。

二方库升级

SOFABoot 4.0 基于 Spring Boot 3.0 与 Spring Framework 6 构建。在 Spring Boot 3.0 与 Spring Framework 6 引入的二方库升级列表可参考文档👉 Spring Boot 3.0 Release Notes[1]。

在 SOFABoot 4.0 引入的二方库升级列表如下:

  • Spring Boot 3.0.5

  • Spring Cloud 4.0.0

  • Spring Cloud Stream 3.2.6

  • SOFA Common tools 2.0.0

  • SOFATracer 4.0.0

  • SOFARPC 5.10.0

  • FastJson 1.2.83

  • Guava 31.1-jre

  • Grpc 1.51.1

  • Grpc common protos 2.11.0

  • Druid 1.2.16

  • ASM 9.4

  • Javassist 3.29.2-GA

  • Curator 4.3.0

  • Dubbo 3.1.8

  • Nacos 2.0.3

  • Swagger 1.6.7

  • Swagger2 2.2.8

基于 Jakarta EE

Spring Boot 3.0 中依赖 Jakarta EE 规范的部分已经升级到了 Jakarta EE 10 版本。例如,使用 Servlet 6.0 和 JPA 3.1 规范。因此,部分包的命名空间也进行了替换,例如你应该使用:

✅jakarta.servlet.Filter 

而不是 javax.servlet.Filter。

同时,如果你使用了自己的依赖提供 Jakarta EE 规范的 API,需注意进行对应的依赖升级,例如你应该使用:

✅jakarta.servlet:jakarta.servlet-api 

而不是 javax.servlet:javax.servlet-api。

可参考文档:Migrate to Jakarta EE 9[2] 来修改 Jakarta 相关的包名以及依赖。

支持 SOFAArk 2.0

SOFAArk 2.0 模式[3]是 SOFAArk 框架的整体优化版本,相较于 SOFAArk 1.0 模式,它的整体优化思路和原则是 Ark Master Biz 保持和原生 SOFABoot 保持一致,弱化复杂的 Ark Plugin 类管控机制,将 Ark Plugin 与 Master Biz 合并。使得 Ark Master Biz 和原生 SOFABoot 应用的启动方式、类加载方式保持一致,大大降低了 Master Biz 应用的编程难度。

SOFABoot 4.0 版本不再支持 SOFAArk 1.0 模式,如果你想要在 SOFABoot 应用中使用 SOFAArk 2.0 模式,可以按照以下步骤进行操作:

1、在项目中引入 SOFAArk 组件依赖

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

2、添加 Spring Boot 的 Package 插件

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>4.0.0</version>


            <configuration>
                <outputDirectory>target</outputDirectory>
                <classifier>ark-biz</classifier>
            </configuration>
            <executions>
                <execution>
                    <id>package</id>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

3、启动应用

- 方式一:

IDEA 启动,注意需要添加启动参数:-Dsofa.ark.embed.enable=true -Dcom.alipay.sofa.ark.master.biz=${bizName}

- 方式二:

命令行启动,先运行 mvn clean package 命令进行打包,生成 ${bizName}-${bizVersion}-ark-biz.jar 的可执行文件,然后在终端运行以下启动参数:

java -jar -Dsofa.ark.embed.enable=true -Dcom.alipay.sofa.ark.master.biz=${bizName} ${bizName}-${bizVersion}-ark-biz.jar

支持场景化的按配置加载能力

通常情况下,应用在不同的场景下可能需要开启或者关闭不同的功能,Spring Boot 提供了丰富的 Configuration 动态配置能力[4] 能力以支持应用在不同的场景下加载不同的 Bean。

SOFABoot 在此基础上,对 org.springframework.context.ApplicationContextInitializer 等扩展点进行了增强,支持通过统一风格的配置定制各类 Bean 以及扩展点的开启与关闭,并提供了定制模版配置的开启方式以降低应用配置项的复杂度。

- 通过:

com.alipay.sofa.boot.autoconfigure.condition.ConditionalOnSwitch 注解为 Bean 添加按配置开启能力:

@Configuration(proxyBeanMethods = false)
@ConditionalOnSwitch(id="sample")
public class SampleConfiguration {


    @Bean
    public SampleBean sampleBean() {
        return new SampleBean();
    }
}

添加:

sofa.boot.switch.bean.sample.enabled=false 配置后,SampleConfiguration 配置类将不再加载。

- 通过继承:

com.alipay.sofa.boot.Initializer.SwitchableApplicationContextInitializer 类为:

ApplicationContextInitializer 添加按配置开启能力:

public class SampleSwitchSpringContextInitializer extends
                                                     SwitchableApplicationContextInitializer {
    @Override
    protected void doInitialize(ConfigurableApplicationContext applicationContext) {
        applicationContext.getEnvironment().addActiveProfile("sampleswitchtest");
    }


    @Override
    protected String switchKey() {
        return "sample";
    }


}

添加:

sofa.boot.switch.initializer.sample.enabled=false 配置后,

SampleSwitchSpringContextInitializer 类将不再执行 doInitialize 方法。

- 通过继承:

com.alipay.sofa.boot.listener.SwitchableApplicationListener 类为:

ApplicationListener 添加添加按配置开启能力:

public class SampleSwitchApplicationListener
                                                 extends
                                                 SwitchableApplicationListener<ContextRefreshedEvent> {


    @Override
    protected void doOnApplicationEvent(ContextRefreshedEvent event) {
        SampleBean sampleBean = event.getApplicationContext().getBean(SampleBean.class);
        sampleBean.setTrigger(true);
    }


    @Override
    protected String switchKey() {
        return "sample";
    }


}

添加:

sofa.boot.switch.listener.sample.enabled=false 配置后,

SampleSwitchApplicationListener 类将不再执行 doOnApplicationEvent 方法。

在使用上述扩展点为你的 Bean 和扩展点添加按配置开启能力后,你可以在 /sofa-boot/scenens 目录下添加指定场景名 scene-key 前缀的配置文件(支持 application 及 yaml 格式),在配置文件中添加该场景下的配置文件模版,例如:

sofa.boot.switch.bean.a.enabled=false
sofa.boot.switch.bean.b.enabled=true
sofa.boot.switch.initializer.a.enabled=false
sofa.boot.switch.initializer.b.enabled=false
sofa.boot.switch.initializer.c.enabled=false

当你的应用打包后,你只需要添加配置 sofa.boot.scenens=scene-key 便可以生效 /sofa-boot/scenens/scene-key.properites 配置文件中的开关配置。该配置项同时支持配置多个场景名,可以同时生效多个场景配置文件。

启动耗时统计能力增强

SOFABoot 在 3.6.0 版本提供了 /actuator/startup 能力用于查询应用启动过程中的耗时细节。后来,Spring Boot 在 2.4 版本也提供了官方的 /actuator/startup 能力用于展示应用启动耗时详情。在 SOFA Boot 4.0 版本中,我们整合了 SOFA Boot 与 Spring Boot 提供的启动耗时统计能力:

- 保留了 SOFABoot 特有的阶段耗时统计能力,例如 SOFA 模块化刷新耗时统计、健康检查耗时统计等;

- 使用 Spring Framework 提供的 org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup 统计 Applicaiton Context 的启动耗时详情。

你可以通过下述方式使用 SOFABoot 增强的 /actuator/startup 能力:

1、在项目中引入 actuator 组件依赖:

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

2、使用:

com.alipay.sofa.boot.startup.StartupSpringApplication 作为启动类启动应用:

public static void main(String[] args) {
    StartupSpringApplication startupSpringApplication = new StartupSpringApplication(Sofaboot4DemoApplication.class);
    startupSpringApplication.run(args);
}

3、启动应用后,访问:

localhost:8080/actuator/startup 查看启动耗时详情信息。

更丰富的 SPI

SOFABoot 4.0 版本中新增了大量 SPI ,你可以通过这些 SPI 定制 SOFABoot 框架的运行逻辑。

# 添加自定义的启动耗时阶段信息 #

com.alipay.sofa.boot.startup.StartupReporterAware 接口的使用方式与 org.springframework.context.ApplicationContextAware 接口的使用方法使用类似,当你的 Bean 实现了该接口时,你可以感知到应用中的:com.alipay.sofa.boot.startup.StartupReporter 实例。

com.alipay.sofa.boot.startup.StartupReporter 类用于管理 SOFABoot 提供的 /actuator/startup 耗时信息,你可以通过 com.alipay.sofa.boot.startup.StartupReporter#addCommonStartupStat 方法添加你定制的耗时阶段信息。

# 添加自定义的 Bean 启动耗时信息 #

com.alipay.sofa.boot.startup.BeanStatCustomizer 接口用于定制 SOFABoot 提供的 /actuator/startup 耗时信息中的 Bean 启动耗时特征。如果你想注册自定义的 com.alipay.sofa.boot.startup.BeanStatCustomizer 接口实现类,需要在 META-INF/spring.factories 文件注册 Spring Factories 形式的 SPI。你可以参考框架内置的 com.alipay.sofa.runtime.startup.ComponentBeanStatCustomizer 类用于提取 ServiceFactoryBean 类型的 Bean 的 Interface 字段用于展示。

# 定制 BeanPostProcessor 与 BeanFactoryPostProcessor 
在 SOFA 上下文中的共享模式 #

在开启模块化隔离特性时,你在 Spring Boot 上下文中注册的 BeanPostProcessor 以及 BeanFactoryPostProcessor 将 BeanDefinition 将被共享至所有的 SOFA 模块中,每个 SOFA 模块的上下文中都会创建一个 PostProcessor 类的实例。你可以通过以下方式,修改指定的 BeanPostProcessor 或者BeanFactoryPostProcessor 的共享方式:

- 在 PostProcessor 类上添加:

com.alipay.sofa.boot.context.processor.UnshareSofaPostProcessor 注解,PostProcessor 将不会被共享至 SOFA 模块中。

- 在 PostProcessor 类上添加:

com.alipay.sofa.boot.context.processor.SingletonSofaPostProcessor 注解,SOFA Boot 框架会获取其在 Spring Boot 上下文中的 Singleton 实例注册至 SOFA 模块中,而不是注册 BeanDefinition,这将确保 PostProcessor 类在整个应用中保持单例。

- 自定义:

com.alipay.sofa.boot.context.processor.SofaPostProcessorShareFilter 接口的实现类并将其注册至 Spring Boot 上下文中,通过 bean name 或 bean class 指定 PostProcessor 的共享方式。

# 添加感知 SOFA 模块刷新的扩展点 #

在开启模块化隔离特性时,你可以自定义 com.alipay.sofa.boot.context.ContextRefreshInterceptor 接口的实现类并将其注册至 Spring Boot 上下文中,当每个 SOFA 模块的 Spring 上下文开始刷新前以及刷新完成后,都会触发该接口的 beforeRefresh 以及 afterRefresh 方法。

你可以参考框架内置的:

com.alipay.sofa.runtime.context.ComponentContextRefreshInterceptor 类,它用于在 SOFA 模块中的 Spring 上下文刷新成功后,将其注册为 SpringContextComponent,在 SOFA 模块中的 Spring 上下文刷新失败后取消注册的 ComponentInfo。

# 支持注解参数的占位符替换 #

在一些情况下,我们希望自定义注解中的属性使用非固定值,通过 Spring 配置进行定制。SOFABoot 提供了:

com.alipay.sofa.boot.annotation.WrapperAnnotation 工具类,用于快速实现上述功能。例如,你自定义了一个注解类 DemoAnnotation,并在某个类上使用了该注解:

@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER })
public @interface DemoAnnotation {


    String key() default "";
}
@DemoAnnotation(key = "${spring.annotation.config}")
public class TestClass {
}

通过以下方式获取的 key 字段数值将转换为你在 Spring Envrionment 中定义的 spring.annotation.config 配置值:

public String getAnnotationKey(Environment environment, DemoAnnotation demoAnnotation) {
    AnnotationWrapper<DemoAnnotation> serviceAnnotationWrapper = AnnotationWrapper.create(DemoAnnotation.class)
        .withEnvironment(environment)
        .withBinder(DefaultPlaceHolderBinder.INSTANCE);
    return serviceAnnotationWrapper.wrap(demoAnnotation).key();
}

Part.2 注意有重命名哦!

请先留意以下信息!

  • 通过 actuator-sofa-boot-starter 引入的 SOFABoot 增强的 actuator 能力,通过配置项定制开启的 actuator。

  • 依赖 health-sofa-boot-starter 与 startup-sofa-boot-starter 已被废弃,请使用 actuator-sofa-boot-starter 替换。

  • 依赖 log-sofa-boot-starter 已被废弃,如果你引入了其他的 sofa boot starter,可以直接删除该依赖。如果你没有引入任何其他 sofa boot starter,使用 sofa-boot-starter 代替它。

  • 依赖 rpc-sofa-boot-plugin、runtime-sofa-boot-plugin、tracer-sofa-boot-plugin 已被废弃,可使用 ark-sofa-boot-starter 代替它们。

我们对下表中包名下的类进行了重命名,如果你使用了对应的类,则需要修改为新的包名:

原包名

新包名

com.alipay.sofa.startup

com.alipay.sofa.boot.actuator.startup

com.alipay.sofa.healthcheck

com.alipay.sofa.boot.actuator.health

com.alipay.sofa.isle

com.alipay.sofa.boot.isle

com.alipay.sofa.tracer.boot

com.alipay.sofa.boot.tracer

com.alipay.sofa.service.api.component

com.alipay.sofa.runtime.ext

SOFABoot 提供的以下 API 类进行了重命名,如果你使用了对应的类,则需要修改为新的类名:

原类名

新类名

com.alipay.sofa.healthcheck.core.HealthChecker

com.alipay.sofa.boot.actuator.health.HealthChecker

com.alipay.sofa.healthcheck.startup.ReadinessCheckCallback

com.alipay.sofa.boot.actuator.health.ReadinessCheckCallback

com.alipay.sofa.runtime.spring.singleton.SingletonSofaPostProcessor

com.alipay.sofa.boot.context.processor.SingletonSofaPostProcessor

com.alipay.sofa.runtime.spring.share.UnshareSofaPostProcessor

com.alipay.sofa.boot.context.processor.UnshareSofaPostProcessor

com.alipay.sofa.runtime.factory.BeanLoadCostBeanFactory

com.alipay.sofa.boot.context.SofaDefaultListableBeanFactory

Part.3 废弃特性|

再见啦,SOFAArk 1.0

SOFABoot 4.0 不再支持 SOFAArk 1.0 模式,用于支持 Ark 测试的相关工具类已被移除,SOFAArk 2.0 模式下你不再需要这些类:

  • com.alipay.sofa.test.annotation.DelegateToRunner

  • com.alipay.sofa.test.runner.SofaBootRunner

  • com.alipay.sofa.test.runner.SofaJUnit4Runner

Part.4 请收下这份升级指南🙆🏻‍♂️

Before You Start

# 升级 SOFABoot 至
最新的 3.x 版本 #

在开始升级之前,请确保升级到最新可用的 3.x 版本。这将确保你正在针对该行的最新依赖项进行构建。

# 检查依赖列表 #

迁移到 SOFABoot 4.0 将升级许多依赖项(包括 Spring Boot 3.0 升级的依赖项),请确认依赖项升级对你的应用的影响。请参考:

- Spring Boot 2.7.x 依赖索引[5]

- Spring Boot 3.0.x 依赖索引[6]

# 检查已废弃的特性 #

SOFABoot 3 以及 Spring Boot 2 中弃用的类、方法和属性,请确保在升级之前没有调用已弃用的功能。详情请参考上方「Part.3 废弃特性|再见啦,SOFAArk 1.0」章节。

# 检查系统配置 #

SOFABoot 4.0 依赖 Java 17 或者更高的版本,不再支持 Java 8。同时依赖 Spring Boot 3.0。

升级至 SOFA Boot 4.0

# 修改重命名的配置项 #

请参考下方「Part.5 附录|配置变更」章节以及文档 Spring Boot 2 -> 3 配置变更[7]

# 修改重命名的类与依赖 #

参考上方「Part.2 注意有重命名哦!」章节

# 升级 Spring Boot 3.0 #

参考文档: Spring Boot 3.0 升级文档[8]

Part.5 附录|配置变更

注:配置属性对比基于 3.16.3 与 4.0 版本。

- 在 4.0 版本中废弃的配置

key

com.alipay.sofa.boot.serviceNameWithBeanId

com.alipay.sofa.boot.unregisterComponentWhenModuleInstallFailure

com.alipay.sofa.boot.startup.skipSofaBean

- 在 4.0 版本中新增的配置

key

default value

description

sofa.boot.isle.ignoreModules

无

指定忽略的 SOFA 模块列表

sofa.boot.isle.ignoreCalculateRequireModules

无

指定忽略 require module 属性的 SOFA 模块列表

sofa.boot.scenes

无

开启的场景配置列表

sofa.boot.startup.bufferSize

4096

框架内置的 BufferingApplicationStartup 的缓存大小

sofa.boot.threadPoolMonitor.disable

false

关闭 SOFA 线程池监控能力

sofa.boot.rpc.enableAutoPublish

false

支持应用启动时自动发布 rpc服务,不依赖 Actuator 模块

- 在 4.0 版本中重命名的配置

runtime properties

origin key

replaced key

com.alipay.sofa.boot.jvmFilterEnable

sofa.boot.runtime.jvmFilterEnable

com.alipay.sofa.boot.disableJvmFirst

sofa.boot.runtime.disableJvmFirst

com.alipay.sofa.boot.skipJvmReferenceHealthCheck

sofa.boot.runtime.skipJvmReferenceHealthCheck

com.alipay.sofa.boot.extensionFailureInsulating

sofa.boot.runtime.extensionFailureInsulating

com.alipay.sofa.boot.skipExtensionHealthCheck

sofa.boot.runtime.skipExtensionHealthCheck

com.alipay.sofa.boot.serviceInterfaceTypeCheck

sofa.boot.runtime.serviceInterfaceTypeCheck

com.alipay.sofa.boot.skipAllComponentShutdown

sofa.boot.runtime.skipAllComponentShutdown

com.alipay.sofa.boot.skipCommonComponentShutdown

sofa.boot.runtime.skipCommonComponentShutdown

com.alipay.sofa.boot.asyncInitBeanCoreSize

sofa.boot.runtime.asyncInitExecutorCoreSize

com.alipay.sofa.boot.asyncInitBeanMaxSize

sofa.boot.runtime.asyncInitExecutorMaxSize

com.alipay.sofa.boot.dynamicJvmServiceCacheEnable

sofa.boot.ark.jvmServiceCache

com.alipay.sofa.boot.skipJvmSerialize

sofa.boot.ark.jvmInvokeSerialize

com.alipay.sofa.boot.beanLoadCost

sofa.boot.startup.costThreshold

isle properties

origin key

replaced key

com.alipay.sofa.boot.activeProfiles

sofa.boot.isle.activeProfiles

com.alipay.sofa.boot.allowBeanDefinitionOverriding

sofa.boot.isle.allowBeanDefinitionOverriding

com.alipay.sofa.boot.moduleStartUpParallel

sofa.boot.isle.moduleStartUpParallel

com.alipay.sofa.boot.publishEventToParent

sofa.boot.isle.publishEventToParent

com.alipay.sofa.boot.enableIsle

sofa.boot.isle.enabled

com.alipay.sofa.boot.allowModuleOverriding

sofa.boot.isle.allowModuleOverriding

com.alipay.sofa.boot.ignoreModuleInstallFailure

sofa.boot.isle.ignoreModuleInstallFailure

com.alipay.sofa.boot.parallelRefreshCoreCountFactor

sofa.boot.isle.parallelRefreshPoolSizeFactor

com.alipay.sofa.boot.parallelRefreshTimeout

sofa.boot.isle.parallelRefreshTimeout

com.alipay.sofa.boot.parallelRefreshCheckPeriod

sofa.boot.isle.parallelRefreshCheckPeriod

com.alipay.sofa.boot.share.parent.context.post.processor.enabled

sofa.boot.isle.shareParentPostProcessor

actuator properties

origin key

replaced key

com.alipay.sofa.boot.manualReadinessCallback

sofa.boot.actuator.health.manualReadinessCallback

com.alipay.sofa.healthcheck.skip.all

sofa.boot.actuator.health.skipAll

com.alipay.sofa.healthcheck.skip.component

sofa.boot.actuator.health.skipHealthChecker

com.alipay.sofa.healthcheck.skip.indicator

sofa.boot.actuator.health.skipHealthIndicator

com.alipay.sofa.healthcheck.component.check.retry.count

sofa.boot.actuator.health.healthCheckerConfig.components.retryCount

com.alipay.sofa.healthcheck.component.check.retry.interval

sofa.boot.actuator.health.healthCheckerConfig.components.retryTimeInterval

com.alipay.sofa.healthcheck.component.check.strict.enabled

sofa.boot.actuator.health.healthCheckerConfig.components.strictCheck

com.alipay.sofa.healthcheck.component.timeout

sofa.boot.actuator.health.healthCheckerConfig.components.timeout

com.alipay.sofa.healthcheck.module.check.retry.count

sofa.boot.actuator.health.healthCheckerConfig.modules.retryCount

com.alipay.sofa.healthcheck.module.check.retry.interval

sofa.boot.actuator.health.healthCheckerConfig.modules.retryTimeInterval

com.alipay.sofa.healthcheck.module.check.strict.enabled

sofa.boot.actuator.health.healthCheckerConfig.modules.strictCheck

com.alipay.sofa.healthcheck.module.timeout

sofa.boot.actuator.health.healthCheckerConfig.modules.timeout

com.alipay.sofa.healthcheck.default.timeout

sofa.boot.actuator.health.globalHealthCheckerTimeout

com.alipay.sofa.healthcheck.indicator.timeout

sofa.boot.actuator.health.globalHealthIndicatorTimeout

com.alipay.sofa.boot.healthCheckInsulator

sofa.boot.actuator.health.insulator

com.alipay.sofa.boot.healthCheckParallelEnable

sofa.boot.actuator.health.parallelCheck

com.alipay.sofa.boot.healthCheckParallelTimeout

sofa.boot.actuator.health.parallelCheckTimeout

com.alipay.sofa.boot.excludedIndicators

sofa.boot.actuator.health.excludedIndicators

tracer properties

origin key

replaced key

com.alipay.sofa.tracer.datasource.enable

sofa.boot.tracer.datasource.enabled

com.alipay.sofa.tracer.feign.enabled

sofa.boot.tracer.feign.enabled

com.alipay.sofa.tracer.springmvc.enable

sofa.boot.tracer.springmvc.enabled

com.alipay.sofa.tracer.springmvc.filterOrder

sofa.boot.tracer.springmvc.filterOrder

com.alipay.tracer.kafka.enabled

sofa.boot.tracer.kafka.enabled

com.alipay.tracer.mongodb.enabled

sofa.boot.tracer.mongodb.enabled

com.alipay.sofa.tracer.rabbitmq.enable

sofa.boot.tracer.rabbitmq.enabled

com.alipay.sofa.tracer.redis.enabled

sofa.boot.tracer.redis.enabled

com.alipay.sofa.tracer.resttemplate

sofa.boot.tracer.resttemplate.enabled

com.alipay.sofa.tracer.rocketmq

sofa.boot.tracer.rocketmq.enabled

com.alipay.sofa.tracer.message

sofa.boot.tracer.springmessage.enabled

com.alipay.sofa.tracer.flexible

sofa.boot.tracer.flexible.enabled

com.alipay.sofa.tracer.zipkin.enabled

sofa.boot.tracer.zipkin.enabled

com.alipay.sofa.tracer.zipkin.baseUrl

sofa.boot.tracer.zipkin.baseUrl

com.alipay.sofa.tracer.zipkin.gzipped

sofa.boot.tracer.zipkin.gzipped

com.alipay.sofa.tracer.disableDigestLog

sofa.boot.tracer.disableDigestLog

com.alipay.sofa.tracer.disableConfiguration

sofa.boot.tracer.disableConfiguration

com.alipay.sofa.tracer.tracerGlobalRollingPolicy

sofa.boot.tracer.tracerGlobalRollingPolicy

com.alipay.sofa.tracer.tracerGlobalLogReserveDay

sofa.boot.tracer.tracerGlobalLogReserveDay

com.alipay.sofa.tracer.statLogInterval

sofa.boot.tracer.statLogInterval

com.alipay.sofa.tracer.baggageMaxLength

sofa.boot.tracer.baggageMaxLength

com.alipay.sofa.tracer.samplerName

sofa.boot.tracer.samplerName

com.alipay.sofa.tracer.samplerPercentage

sofa.boot.tracer.samplerPercentage

com.alipay.sofa.tracer.samplerCustomRuleClassName

sofa.boot.tracer.samplerCustomRuleClassName

com.alipay.sofa.tracer.reporterName

sofa.boot.tracer.reporterName

com.alipay.sofa.tracer.jsonOutput

sofa.boot.tracer.jsonOutput

rpc properties

origin key

replaced key

com.alipay.sofa.rpc.aftRegulationEffective

sofa.boot.rpc.aftRegulationEffective

com.alipay.sofa.rpc.aftDegradeEffective

sofa.boot.rpc.aftDegradeEffective

com.alipay.sofa.rpc.aftTimeWindow

sofa.boot.rpc.aftTimeWindow

com.alipay.sofa.rpc.aftLeastWindowCount

sofa.boot.rpc.aftLeastWindowCount

com.alipay.sofa.rpc.aftLeastWindowExceptionRateMultiple

sofa.boot.rpc.aftLeastWindowExceptionRateMultiple

com.alipay.sofa.rpc.aftWeightDegradeRate

sofa.boot.rpc.aftWeightDegradeRate

com.alipay.sofa.rpc.aftWeightRecoverRate

sofa.boot.rpc.aftWeightRecoverRate

com.alipay.sofa.rpc.aftDegradeLeastWeight

sofa.boot.rpc.aftDegradeLeastWeight

com.alipay.sofa.rpc.aftDegradeMaxIpCount

sofa.boot.rpc.aftDegradeMaxIpCount

com.alipay.sofa.rpc.boltPort

sofa.boot.rpc.boltPort

com.alipay.sofa.rpc.boltThreadPoolCoreSize

sofa.boot.rpc.boltThreadPoolCoreSize

com.alipay.sofa.rpc.boltThreadPoolMaxSize

sofa.boot.rpc.boltThreadPoolMaxSize

com.alipay.sofa.rpc.boltThreadPoolQueueSize

sofa.boot.rpc.boltThreadPoolQueueSize

com.alipay.sofa.rpc.boltAcceptsSize

sofa.boot.rpc.boltAcceptsSize

com.alipay.sofa.rpc.boltProcessInIoThread

sofa.boot.rpc.boltProcessInIoThread

com.alipay.sofa.rpc.enableSwagger

sofa.boot.rpc.enableSwagger

com.alipay.sofa.rpc.mockUrl

sofa.boot.rpc.mockUrl

com.alipay.sofa.rpc.h2cPort

sofa.boot.rpc.h2cPort

com.alipay.sofa.rpc.h2cThreadPoolCoreSize

sofa.boot.rpc.h2cThreadPoolCoreSize

com.alipay.sofa.rpc.h2cThreadPoolMaxSize

sofa.boot.rpc.h2cThreadPoolMaxSize

com.alipay.sofa.rpc.h2cThreadPoolQueueSize

sofa.boot.rpc.h2cThreadPoolQueueSize

com.alipay.sofa.rpc.h2cAcceptsSize

sofa.boot.rpc.h2cAcceptsSize

com.alipay.sofa.rpc.restHostname

sofa.boot.rpc.restHostname

com.alipay.sofa.rpc.restPort

sofa.boot.rpc.restPort

com.alipay.sofa.rpc.restIoThreadSize

sofa.boot.rpc.restIoThreadSize

com.alipay.sofa.rpc.restContextPath

sofa.boot.rpc.restContextPath

com.alipay.sofa.rpc.restAllowedOrigins

sofa.boot.rpc.restAllowedOrigins

com.alipay.sofa.rpc.restThreadPoolCoreSize

sofa.boot.rpc.restThreadPoolCoreSize

com.alipay.sofa.rpc.restThreadPoolMaxSize

sofa.boot.rpc.restThreadPoolMaxSize

com.alipay.sofa.rpc.restMaxRequestSize

sofa.boot.rpc.restMaxRequestSize

com.alipay.sofa.rpc.restTelnet

sofa.boot.rpc.restTelnet

com.alipay.sofa.rpc.restDaemon

sofa.boot.rpc.restDaemon

com.alipay.sofa.rpc.restSwagger

sofa.boot.rpc.restSwagger

com.alipay.sofa.rpc.dubboPort

sofa.boot.rpc.dubboPort

com.alipay.sofa.rpc.dubboIoThreadSize

sofa.boot.rpc.dubboIoThreadSize

com.alipay.sofa.rpc.dubboThreadPoolCoreSize

sofa.boot.rpc.dubboThreadPoolCoreSize

com.alipay.sofa.rpc.dubboThreadPoolMaxSize

sofa.boot.rpc.dubboThreadPoolMaxSize

com.alipay.sofa.rpc.dubboThreadPoolQueueSize

sofa.boot.rpc.dubboThreadPoolQueueSize

com.alipay.sofa.rpc.dubboAcceptsSize

sofa.boot.rpc.dubboAcceptsSize

com.alipay.sofa.rpc.httpPort

sofa.boot.rpc.httpPort

com.alipay.sofa.rpc.httpThreadPoolCoreSize

sofa.boot.rpc.httpThreadPoolCoreSize

com.alipay.sofa.rpc.httpThreadPoolMaxSize

sofa.boot.rpc.httpThreadPoolMaxSize

com.alipay.sofa.rpc.httpThreadPoolQueueSize

sofa.boot.rpc.httpThreadPoolQueueSize

com.alipay.sofa.rpc.httpAcceptsSize

sofa.boot.rpc.httpAcceptsSize

com.alipay.sofa.rpc.triplePort

sofa.boot.rpc.triplePort

com.alipay.sofa.rpc.tripleThreadPoolCoreSize

sofa.boot.rpc.tripleThreadPoolCoreSize

com.alipay.sofa.rpc.tripleThreadPoolMaxSize

sofa.boot.rpc.tripleThreadPoolMaxSize

com.alipay.sofa.rpc.tripleThreadPoolQueueSize

sofa.boot.rpc.tripleThreadPoolQueueSize

com.alipay.sofa.rpc.tripleAcceptsSize

sofa.boot.rpc.tripleAcceptsSize

com.alipay.sofa.rpc.registryAddress

sofa.boot.rpc.registryAddress

com.alipay.sofa.rpc.virtualHost

sofa.boot.rpc.virtualHost

com.alipay.sofa.rpc.virtualPort

sofa.boot.rpc.virtualPort

com.alipay.sofa.rpc.enabledIpRange

sofa.boot.rpc.enabledIpRange

com.alipay.sofa.rpc.bindNetworkInterface

sofa.boot.rpc.bindNetworkInterface

com.alipay.sofa.rpc.boundHost

sofa.boot.rpc.boundHost

com.alipay.sofa.rpc.lookoutCollectDisable

sofa.boot.rpc.lookoutCollectDisable

com.alipay.sofa.rpc.registries

sofa.boot.rpc.registries

com.alipay.sofa.rpc.enableMesh

sofa.boot.rpc.enableMesh

com.alipay.sofa.rpc.consumerRepeatedReferenceLimit

sofa.boot.rpc.consumerRepeatedReferenceLimit

com.alipay.sofa.rpc.hystrixEnable

sofa.boot.rpc.hystrixEnable

com.alipay.sofa.rpc.defaultTracer

sofa.boot.rpc.defaultTracer

com.alipay.sofa.rpc.dynamicConfig

sofa.boot.rpc.dynamicConfig

sofa.rpc.registry.disablePub

sofa.boot.rpc.registry.disablePub

sofa.rpc.registry.defaultRegistry

sofa.boot.rpc.registry.defaultRegistry


参考链接🔗

[1]Spring Boot 3.0 Release Notes:

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Release-Notes

[2]Migrate to Jakarta EE 9:

https://docs.openrewrite.org/recipes/java/migrate/jakarta/javaxmigrationtojakarta

[3]SOFAArk 2.0 模式:

https://www.sofastack.tech/projects/sofa-boot/sofa-ark-migration-guide/

[4]Configuration 动态配置能力:

https://docs.spring.io/spring-boot/docs/3.0.2/reference/htmlsingle/#using.configuration-classes

[5]Spring Boot 2.7.x 依赖索引:

https://docs.spring.io/spring-boot/docs/2.7.x/reference/html/dependency-versions.html#appendix.dependency-versions

[6]Spring Boot 3.0.x 依赖索引:

https://docs.spring.io/spring-boot/docs/3.0.x/reference/html/dependency-versions.html#appendix.dependency-versions

[7]Spring Boot 2 -> 3 配置变更:

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Configuration-Changelog

[8]Spring Boot 3.0 升级文档:

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide

 了解更多...

SOFABoot Star 一下✨:
https://github.com/sofastack/sofa-boot

  本周推荐阅读  

026b9ca83f3622fd47114d9ae08d1d6a.png

金融级应用开发|SOFABoot 框架剖析

30e504b8d54248fc55a655f8f4a6180d.png

SOFAServerless 体系助力业务极速研发

514871b80d7f38367e2835e3b2a87b45.png

SOFAStack 的下一个五年

0a1ac5f85a34db8ddc351995a35e9269.png

SOFAArk Committer 专访|看它不爽,就直接动手改!

f6a18cea1134e1735f1aa7e9872a879c.jpeg

4c7a7a7bb0feba514ec1da381a5dc359.png点击“阅读原文”开启 SOFABoot 4.0 新世界!

沙发启动:SOFABoot是一个框架,可增强Spring Boot并与之完全兼容,并提供就绪检查,类隔离等功能。 沙发靴 SOFABoot是Ant蚁金服开源的基于Spring Boot的研发框架,它在Spring Boot的基础上,提供了诸如Readiness Check,类隔离,日志空间隔离等等能力。在增强了Spring Boot的同时,SOFABoot提供了让用户可以在Spring Boot中非常方便地使用SOFA中间件的能力。 一,背景 Spring Boot是一个非常优秀的开源框架,可以非常方便地就建造出一个基于Spring的应用程序,但是在使用过程中,还是会遇到一些问题: Spring Boot提供了一个基础的健康检查的能力,中间件和应用都可以扩展来实现自己的健康检查逻辑。但是Spring Boot的健康检查只有Liveness Check的能力,具备Readiness Check的能力,这样会有比较致命的问题。当一个微服务应用启动的时候,必须要先保证启动后应用是健康的,才可以将上游的流 立即下载

相关推荐

HTML入门(详细教程),前端入门从这里开始

HTML基础教程,网页框架搭建,表单制作,了解HTML标签的基本用法,每个标签具备哪些属性。

wandertp的博客 1284

最近超火的SOFABoot是个什么东西?带你快速入门SOFABoot

最近发现了一个新的开源项目:SOFABoot,再加上公司用的框架也是SOFABoot,所以给将这个框架分享给大家,希望能扩展大家的视野。 首先我们需要知道什么是SOFABoot? SOFABoot 是蚂蚁集团开源的基于 Spring Boot 的研发框架,它在 Spring Boot 的基础上,提供了诸如 Readiness Check,类隔离,日志空间隔离等等能力。 下面是他的项目地址: https://gitee.com/sofastack/sofa-boot 为什么要选择SOFABoot?他能.

编码人生 1万+

STM32F4用FSMC驱动AX58100 EtherCAT从站芯片,保姆级配置流程与避坑指南

本文详细介绍了STM32F4通过FSMC接口驱动AX58100 EtherCAT从站芯片的完整配置流程,包括硬件连接、时序优化、协议栈移植及TwinCAT主站集成。针对工业自动化场景,提供高性价比的实时控制解决方案,特别适合机械臂、CNC机床等精确同步应用,并分享关键调试技巧与性能优化方法。

weixin_27869497的博客 306

SOFABoot

前两天在看 SOFABoot 的时候,看到一个让我眼前一亮的东西,来给大家盘一下。SOFABoot,你可能不眼熟,但是没关系,本文也不是给你讲这个东西的,你就认为它是 SpringBoot 的变种就行了。因为有蚂蚁金服背书,所以主要是一些金融类的公司在使用这个框架:官方介绍是这样的:SOFABoot 是蚂蚁金服开源的基于 Spring Boot 的研发框架,它在 Spring Boot 的基础上,提供了诸如 Readiness Check,类隔离,日志空间隔离等能力。

qq_33709529的博客 1866

el-transfer和el-tree进行结合搞一个树形穿梭框

由于业务需求需要在穿梭框里使用树形结构,但是本身element里并不支持,于是参考了别的大佬发的文章作为思路及后续自己新增了一些处理功能。

bbkhhvv的博客 6306

语言 拉丁超立方抽样_医学统计与R语言:间断时间序列分析(Interrupted time series regression)...

微信公众号:医学统计与R语言如果你觉得对你有帮助,欢迎转发Interrupted time series (ITS) analysis is a valuable study design for evaluating the effectiveness of population-level health interventions that have been implemented...

weixin_29300805的博客 3706

SOFABoot——基本使用(笔记)

SOFABoot基础

weixin_46949627的博客 4663

示波器实测RGMII信号:从125MHz时钟判断千兆模式,到时序抓取与PHY寄存器避坑

本文详细介绍了使用示波器实测RGMII信号的完整流程,包括125MHz时钟频率判断、时序参数测量及PHY寄存器配置避坑指南。通过实战操作和典型故障案例分析,帮助硬件工程师快速定位和解决千兆以太网接口的调试问题,提升通信稳定性。

weixin_30015371的博客 260

直播预告|SOFAChannel#35《SOFABoot 4.0 — 迈向 JDK 17 新时代》

SOFABoot 项目简介SOFABoot 是蚂蚁集团开源的基于 Spring Boot 的研发框架,提供了诸如Readiness Check、模块化和日志空间隔离等能力,用于快速、敏捷地开发 Spring 应用程序,特别适合构建微服务系统。近期,SOFABoot 更新了 4.0 版本,带来了更多新特性。不仅正式支持了 Spring Boot 3 版本,也同时做出了包括历史功能演进在内的一系列调...

金融级分布式架构 189

第3章 基于三电平空间矢量的中点电位平衡策略

本文档深入探讨了基于三电平空间矢量的中点电位平衡策略。重点在于NPC型三电平逆变器的中点电位平衡问题,由于三电平结构的特点,使得直流侧两个电解电容器的充放电不均匀导致中点电压不均衡。文章通过对不同矢量作用下电流、电压的变化进行了详细的定量和定性分析,并提出了利用冗余小矢量的合理配置以及引入调制因子来解决中点电位偏移的方法,确保中点电压在一个完整的开关周期内的稳定性,进而提高系统的可靠性。

嵌入式老牛的博客 2182

图文教程本地部署开源扣子Coze Studio工作流并接入 Gemini 大模型(windows亲测) Coze Studio 本地部署、Gemini 模型接入、开源 AI 工具平台、大模型工作流搭建

本文介绍了在Windows系统本地部署开源AI工具平台Coze Studio并接入Google Gemini大模型的完整教程。主要内容包括:1) 环境准备要求(Docker等);2) 获取源码和配置Gemini模型(需API密钥);3) 通过Docker Compose部署服务;4) 浏览器访问验证。文章指出该平台适合私有化部署,支持智能体和工作流搭建,但也存在插件系统不完善等局限。最后提供了相关资源链接,为开发者实现本地AI解决方案提供了实用指南。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 2780

直播倒计时 2 天|SOFAChannel#35《SOFABoot 4.0 — 迈向 JDK 17 新时代》

????SOFAChannel#35直播倒计时 2 天!直播预约1.视频号SOFAGirl直播⬇️点击一键预约⬇️2.添加SOFAGirl 微信加入 SOFAChannel 技术交流群3. 钉钉搜索:44858463钉钉群同步直播,讲师在线答疑4.扫描????下方二维码或“阅读原文”预约 B 站直播将有机会获得SOFAStack 精美周边~????欢迎对 SOFABoot 项目感兴趣的朋友们加入...

金融级分布式架构 117

ROSTEA软件下载及情感分析详细操作教程(附网盘链接)

原ROST虚拟团队出品的ROST系列文本内容挖掘分析平台,是辅助人文社会科学研究的免费计算平台。该软件可以实现文本预处理、分字、分词、词性识别、特殊名词抽取、词频统计、英文词频统计、情感计算、分类算法、聚类算法等一系列文本挖掘,是人文社科研究和论文写作的一把利器。该软件用户量超过一万人,遍布海内外100多所大学,包括剑桥大学、日本北海道大学、北京大学、清华大学、香港城市大学、澳门大学等众多高校。关于ROSTCM6的安装介绍可以参考之前的文章ROSTCM6软件下载及语义网络分析详细操作教程ROST EA。

m0_64336780的博客 1万+

直播倒计时 1 天|SOFAChannel#35《SOFABoot 4.0 — 迈向 JDK 17 新时代》

????SOFAChannel#35直播倒计时1天!直播预约1.视频号SOFAGirl直播⬇️点击一键预约⬇️2.添加SOFAGirl 微信加入 SOFAChannel 技术交流群3. 钉钉搜索:44858463钉钉群同步直播,讲师在线答疑4.扫描????下方二维码或“阅读原文”预约 B 站直播将有机会获得SOFAStack 精美周边~????欢迎对 SOFABoot 项目感兴趣的朋友们加入...

金融级分布式架构 172

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

SOFA Weekly|SOFAChannel#35 直播预告、SOFARPC/SOFAHessian 新版本发布、社区会议

SOFA WEEKLY | 每周精选筛选每周精华问答,同步开源进展欢迎留言互动~SOFAStack(ScalableOpenFinancialArchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控...

金融级分布式架构 185

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

HAVE FUN | SOFAArk 、SOFABoot 源码解析活动进展

源码解析进展SOFARegistry 和 Layotto 的源码解析已经圆满结束,想要领取SOFABoot、SOFAArk 的源码解析任务的同学抓紧咯~源码解析活动进展「SOFAArk项目介绍????????‍♂️」SOFAArk 是一款由蚂蚁集团开源贡献的,基于 Java 实现的轻量级类隔离容器,主要提供类隔离和应用(模块)合并部署能力。SOFAArk 提供了一套较为规范化的...

金融级分布式架构 410

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

SOFABoot 社区贡献完整指南:7个步骤轻松参与开源项目开发

SOFABoot 是一个增强 Spring Boot 并与其完全兼容的框架,提供就绪检查、类隔离等功能。作为开源项目,社区贡献是其持续发展的核心动力。本文将通过7个简单步骤,帮助新手快速掌握参与 SOFABoot 开源开发的完整流程。 ### 1. 了解项目基础 在开始贡献前,建议先熟悉 SOFABoot 的核心功能和架构。项目的主要代码位于 [sofa-boot-project/](https

gitblog_00541的博客 601

SOFA Weekly|SOFAServerless 社区会议回顾、社区本周贡献、SOFA 亚运特辑

SOFA WEEKLY | 每周精选筛选每周精华问答,同步开源进展欢迎留言互动~SOFAStack(ScalableOpenFinancialArchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控...

金融级分布式架构 190

SOFA Weekly|Layotto 社区会议预告、SOFAServerless 社区会议回顾、社区本周贡献

SOFA WEEKLY | 每周精选筛选每周精华问答,同步开源进展欢迎留言互动~SOFAStack(ScalableOpenFinancialArchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控...

金融级分布式架构 189

SOFA Weekly|Koupleless 社区会议预告、社区本周贡献、本周推荐阅读

SOFA WEEKLY | 每周精选筛选每周精华问答,同步开源进展欢迎留言互动~SOFAStack(ScalableOpenFinancialArchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控...

金融级分布式架构 159

Special Weekly | 瑞兔送福,Live Long and Prosper

SOFAWish送虎迎兔各位 SOFAStack 社区的朋友好:我是 SOFAStack 社区的负责人鲁直,度过了令人难忘的虎年,我们即将迈入充满希望的兔年,在这里给大家拜个早年,祝大家兔年吉祥。虎年虽然有诸多的不便与艰难,但是好在开源本就是倡导异步沟通、在线协作;无论你在世界的哪个角落,只要连上互联网,都可以参与到开源社区中来。在过去的一年中,SOFAStack 社区新增了 100 多位...

金融级分布式架构 1313

SOFA Weekly|SOFAServerless & Layotto 社区会议预告、社区本周贡献

SOFA WEEKLY | 每周精选筛选每周精华问答,同步开源进展欢迎留言互动~SOFAStack(ScalableOpenFinancialArchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控...

金融级分布式架构 122

SOFA Weekly|SOFA 聊天室、issue 精选

SOFA WEEKLY | 每周精选筛选每周精华问答,同步开源进展欢迎留言互动~SOFAStack(ScalableOpenFinancialArchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控...

金融级分布式架构 178

go-modern-guidelines完整教程:AI代理如何自动使用Go 1.27新特性

go-modern-guidelines 是 JetBrains 官方开源的 **现代 Go 编码规范工具包**,它能帮 AI 编码代理(AI Coding Agent)自动写出符合 Go 1.27 新特性的代码。只需一次安装,代理在写 Go 代码前会自动查询"你的项目能用哪些新特性",从此告别满屏的老式写法。本教程带你快速完成安装,并看懂它背后的完整工作原理 🚀 ## 为什么 AI 写出的

gitblog_00996的博客 703

蚂蚁金服开源增强版 Spring Boot 研发框架

点击上方蓝色字体,选择“标星公众号”优质文章,第一时间送达SOFABoot 是蚂蚁金服开源的基于 Spring Boot 的研发框架,它在 Spring Boot 的基础上,提供了诸如 Readiness Check,类隔离,日志空间隔离等等能力。在增强了 Spring Boot 的同时,SOFABoot 提供了让用户可以在 Spring Boot 中非常方便地使用 SO...

程序IT圈 177

微信“欲封”百度;AI 主播入职新华社;今日头条遭狠罚 | 极客头条

「优快云 极客头条」,是从 优快云 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道。风里雨里,我们将每天为朋友们,播报最新鲜有料的新闻资讯,让所有技术人,时...

优快云资讯 1615
上一篇: 活动推荐|Harbor & Narrows & Velero 开源项目技术沙龙来了!
下一篇: 活动推荐丨隐语开源社区 Meetup-开源一周年专场
SOFAStack
博客等级 码龄7年 747粉丝 389原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值