领先一步
VMware 提供培训和认证,助力您的职业加速发展。
了解更多我代表社区很高兴地宣布,Spring Cloud Dalston 版本火车 (Release Train) 的 Release Candidate 1 (RC1) 今天发布了。该版本可在我们的 Spring Milestone 仓库中找到。您可以查阅 Dalston 的发布说明以获取更多信息。
Spring Cloud Vault Config 是一个新项目,它通过 Hashicorp Vault 为分布式系统中的外部化秘密管理提供客户端支持。
Config Server 现在通过组合模式(Composite pattern)支持多种后端。这使得之前不可能实现的后端类型组合成为可能,例如:Vault 和 git,或者多个 git 后端。现在支持对 AWS Codecommit 上托管的 git 仓库进行身份验证。在之前的 Camden 版本中,Hashicorp Vault 已经作为 Config Server 的后端添加,与基于 VCS 的后端一同使用。
从核心 Spring Cloud 模块(Commons, Config, Netflix, Bus)诞生之初,DiscoveryClient
的实现就自动将运行中的客户端注册到发现服务器。这是最初 Netflix Eureka 实现的一个副作用。现在,服务注册和已注册服务的发现是独立关注点。现在有一个 ServiceRegistry
接口,Spring Cloud Netflix、Consul 和 Zookeeper 都实现了该接口。默认情况下,客户端仍然会自动注册,但这可以通过 @EnableDiscoveryClient
的 autoRegister
属性禁用,或者通过属性动态禁用。这也允许在每个 JVM 中以编程方式注册多个服务。更多详细信息请关注未来的博客文章。
社区贡献了对 @LoadBalanced
AsyncRestTemplate
的支持。
Sleuth 添加了一个通用上下文传播系统的支持。它被称为“baggage”,允许使用 Sleuth 已有的 instrumentation 在边界(如 HTTP 或消息传递)之间传递任意属性。
另一个特性是基于注解的 Span 创建以及日志和标签的添加。这不仅减少了样板代码,而且在使用运行时生成实现的框架(如 Spring Data)时也非常有用。
Contract 得到了增强,以支持更灵活的契约输入和输出。增加了 Pact 支持用于读取契约,而不是 Groovy DSL。Contract 变得更具可插拔性,允许自定义 DSL 格式、测试&存根生成以及 Stub Runner 实现。
除了支持新的 ServiceRegistry
API 外,Spring Cloud Consul 还支持 Consul 的特性,可以注销僵尸服务(即在可配置的时间内健康检查失败的服务将从 Consul 中移除)。
Dalston 基于 Spring Boot 1.5.x,这是最低要求的版本。其他变更包括各种库的升级、错误修复、文档更新和改进。非常感谢所有社区贡献的 pull request 和 issue。
作为 Dalston.RC1 的一部分,以下模块已更新
模块 | 版本 |
---|---|
Spring Cloud AWS | 1.2.0.RC1 |
Spring Cloud Build | 1.3.1.RELEASE |
Spring Cloud Bus | 1.3.0.M1 |
Spring Cloud Cloudfoundry | 1.1.0.M1 |
Spring Cloud Commons | 1.2.0.RC1 |
Spring Cloud Config | 1.3.0.RC1 |
Spring Cloud Consul | 1.2.0.RC1 |
Spring Cloud Contract | 1.1.0.RC1 |
Spring Cloud Netflix | 1.3.0.RC1 |
Spring Cloud Security | 1.2.0.RC1 |
Spring Cloud Sleuth | 1.2.0.RC1 |
Spring Cloud Stream | Chelsea.RC1 |
Spring Cloud Task | 1.1.1.RELEASE |
Spring Cloud Vault Config | 1.0.0.RC1 |
Spring Cloud Zookeeper | 1.1.0.RC1 |
Spring Cloud Thin Launcher | 1.1.0.RC1 |
Spring Cloud CLI | 1.3.0.RC1 |
一如既往,我们欢迎您的反馈:无论是在 GitHub、Gitter、Stack Overflow 还是 Twitter 上。
使用 Maven BOM (仅用于依赖管理) 快速入门
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>http://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<dependencyManagement>
<dependencies>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.RC1</version>
<type>pom</type>
<scope>import</scope>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
...
</dependencies>
或使用 Gradle
buildscript {
dependencies {
classpath "io.spring.gradle:dependency-management-plugin:1.0.0.RELEASE"
}
}
repositories {
maven {
url 'http://repo.spring.io/milestone'
}
}
apply plugin: "io.spring.dependency-management"
dependencyManagement {
imports {
mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Dalston.RC1'
}
}
dependencies {
compile 'org.springframework.cloud:spring-cloud-starter-config'
compile 'org.springframework.cloud:spring-cloud-starter-eureka'
...
}