SpringCloud Camden.SR2中文翻译

来源:互联网 发布:mysql修改字符集utf8 编辑:程序博客网 时间:2024/05/18 02:29

文章使用google翻译,需要看原版访问:http://cloud.spring.io/spring-cloud-static/Camden.SR2/

Spring Cloud

Spring Cloud为开发人员提供了快速构建分布式系统中的一些常见模式(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线)的工具。 分布式系统的协调导致了锅炉板模式,并且使用Spring Cloud开发人员可以快速地站起来实现这些模式的服务和应用程序。 它们可以在任何分布式环境中正常工作,包括开发人员自己的笔记本电脑,裸机数据中心和受管平台,如Cloud Foundry。

Version: Camden.SR2

特征

Spring Cloud专注于为典型用例提供良好的开箱体验,并扩展机制覆盖其他用户。
- 分布式/版本化配置
- 服务注册和发现
- 路由
- 服务到服务调用
- 负载均衡
- 断路器
- 分布式消息传递

Cloud Native Applications

Cloud Native是一种应用程序开发风格,鼓励在连续交付和价值驱动开发领域轻松采用最佳实践。 相关学科是建立12因素应用程序,其中开发实践与交付和操作目标一致,例如通过使用声明性编程和管理和监控。 Spring Cloud以多种特定方式促进这些开发风格,起点是一组特性,分布式系统中的所有组件都需要或需要在需要时轻松访问。

许多这些功能被Spring Boot覆盖,我们在Spring Cloud中构建它。 Spring Cloud提供了更多的两个库:Spring Cloud Context和Spring Cloud Commons。 Spring Cloud Context为Spring Cloud应用程序的ApplicationContext(引导上下文,加密,刷新范围和环境端点)提供实用程序和特殊服务。 Spring Cloud Commons是一组在不同Spring Cloud实现中使用的抽象和公共类(例如Spring Cloud Netflix vs. Spring Cloud Consul)。

如果由于“非法密钥大小”而您正在使用Sun的JDK,则需要安装Java密码术扩展(JCE)无限强度管辖权策略文件。 有关详细信息,请参阅以下链接:

  • Java 6 JCE
  • Java 7 JCE
  • Java 8 JCE

将文件解压缩到JDK / jre / lib / security文件夹(使用的是JRE / JDK x64 / x86版本)。

注意

Spring Cloud是根据非限制性Apache 2.0许可证发布的。 如果你想贡献文档的这一部分,或者如果你发现错误,请在github的项目中找到源代码和问题跟踪器。

Spring Cloud Context: Application Context Services

Spring Boot有一个关于如何使用Spring构建应用程序的看法:例如它具有用于公共配置文件的常规位置,以及用于公共管理和监视任务的端点。 Spring Cloud构建在它的基础之上,并添加了一些功能,可能是系统中的所有组件将使用或偶尔需要。

The Bootstrap Application Context

Spring Cloud应用程序通过创建“引导”上下文来操作,该引导上下文是主应用程序的父上下文。 开箱即用,它负责从外部源加载配置属性,以及解密本地外部配置文件中的属性。 这两个上下文共享一个环境,它是任何Spring应用程序的外部属性的源。 引导属性以高优先级添加,因此默认情况下它们不能被本地配置覆盖。

引导上下文使用不同的约定来定位外部配置,而不是主应用程序上下文,因此使用bootstrap.yml来代替application.yml(或.properties),从而使引导和主上下文的外部配置保持完美分离。 例:

bootstrap.yml

spring:  application:    name: foo  cloud:    config:      uri: ${SPRING_CONFIG_URI:http://localhost:8888}

如果您的应用程序需要从服务器进行任何特定于应用程序的配置,则最好设置spring.application.name(在bootstrap.yml或application.yml中)。

您可以通过设置spring.cloud.bootstrap.enabled = false(例如在系统属性中)完全禁用引导过程。

Application Context Hierarchies

如果从SpringApplication或SpringApplicationBuilder构建应用程序上下文,则会将Bootstrap上下文作为父上下文添加。 Spring的一个特点是子上下文从它们的父继承属性源和配置文件,所以与在没有Spring Cloud Config的情况下构建相同的上下文相比,“主”应用上下文将包含额外的属性源。 其他属性来源包括:

  • “bootstrap”:如果在Bootstrap上下文中找到任何PropertySourceLocators,并且它们具有非空属性,那么可选的CompositePropertySource将显示高优先级。 一个示例是来自Spring Cloud配置服务器的属性。 有关如何自定义此属性源的内容的说明,请参阅下文。
  • “applicationConfig:[classpath:bootstrap.yml]”(和朋友如果Spring配置文件是活动的)。 如果你有一个bootstrap.yml(或属性),那么这些属性用于配置Bootstrap上下文,然后当它的父设置时,它们被添加到子上下文。 它们的优先级低于application.yml(或属性)以及作为创建Spring Boot应用程序过程的正常部分添加到子代的任何其他属性源。 有关如何自定义这些属性源的内容的说明,请参阅下文。

由于属性源的排序规则,“引导”条目优先,但请注意,这些不包含来自bootstrap.yml的任何数据,该数据具有非常低的优先级,但可以用于设置默认值。

您可以通过简单地设置您创建的任何ApplicationContext的父上下文来扩展上下文层次结构。 使用自己的接口,或者使用SpringApplicationBuilder方便的方法(parent(),child()和sibling())。 引导上下文将是您自己创建的最高级祖先的父级。 层次结构中的每个上下文都有自己的“bootstrap”属性源(可能为空),以避免将值从父级向下推送到其后代。 层次结构中的每个上下文也可以(原则上)具有不同的spring.application.name,因此如果有一个配置服务器,也会有不同的远程属性源。 正常的Spring应用程序上下文行为规则适用于属性解析:来自子上下文的属性通过名称以及属性源名称覆盖父级中的属性(如果子级拥有与父级同名的属性源, 父项不包括在子项中)。

请注意,SpringApplicationBuilder允许您在整个层次结构之间共享环境,但这不是缺省值。 因此,兄弟上下文特别不需要具有相同的配置文件或属性源,即使它们将与它们的父代共享共同的东西。

Changing the Location of Bootstrap Properties

可以使用spring.cloud.bootstrap.name(默认为“bootstrap”)或spring.cloud.bootstrap.location(默认为空)指定bootstrap.yml(或.properties)位置。 在系统属性中。 这些属性的行为类似于具有相同名称的spring.config。*变体,实际上它们用于通过在其环境中设置这些属性来设置引导ApplicationContext。 如果有一个活动的配置文件(从spring.profiles.active或通过您正在构建的环境中的API),那么该配置文件中的属性也将被加载,就像在普通的Spring Boot应用程序中一样。 从“开发”配置文件的bootstrap-development.properties。

Overriding the Values of Remote Properties

通过引导上下文添加到您的应用程序的属性源通常是“远程”(例如从配置服务器),并且默认情况下它们不能在本地覆盖,除非在命令行。 如果要允许应用程序使用自己的系统属性或配置文件覆盖远程属性,则远程属性源必须通过设置spring.cloud.config.allowOverride = true来授予它权限(它不能设置此属性 本地)。 一旦该标志被设置,有一些更细粒度的设置来控制远程属性相对于系统属性和应用程序的本地配置的位置:spring.cloud.config.overrideNone = true以使用任何本地属性源和spring来覆盖。 cloud.config.overrideSystemProperties = false如果只有系统属性和env vars应该覆盖远程设置,而不是本地配置文件。

Customizing the Bootstrap Configuration

可以训练引导上下文以通过在关键org.springframework.cloud.bootstrap.BootstrapConfiguration下向/META-INF/spring.factories添加条目来执行任何操作。 这是一个以逗号分隔的Spring @Configuration类的列表,将用于创建上下文。 您可以在此处创建要用于主应用程序上下文以进行自动装配的任何bean,并且还有一个类型为ApplicationContextInitializer的@Beans的特殊合同。 如果要控制启动顺序(默认顺序为“last”),可以使用@Order标记类。

警告

在添加自定义BootstrapConfiguration时,请注意,添加的类不是@ComponentScanned,而是错误地插入到您的“主”应用程序上下文中,可能不需要它们。 对于尚未由@ComponentScan或@SpringBootApplication注释配置类涵盖的引导配置类使用单独的包名称。

(未完,待续)

0 0