作者:empty 页数:317 出版社:empty |
Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理, 服务发现, 断路器,智能路出, 微代理, 控制总线) , 分布式系统的协调导致了样板模式, 使用Spring Cloud开发人员可以快速地支持实现这些模式的服务和应用程序,他们将在任何分布式环境中运行良好,包括开发人员自己的笔记木电脑,裸机数据中心, 以及Cloud Foundry等托管平台。
云生Ohpeoploalioplaferm-a-a-ervice tmigraingodoudnatveappli at on-arch tee lures e booo是一种应用开发风格, 鼓在持腰父付和价值题动开发领域轻松采用最实践。相关的学科是建立12-factoLAppsthttpW12 factor.neu) .其中开发实践与交付和运营目标相一致,例如通过使用声明式编程和管理和监控。Spring Cloud以多种具体方式促进这些开发风络, 起点是一姐功能分布式系统中的所有组作都要或要叶轻松仿问,许多送功能都巾Spring Boot(hupaiprojeetsspringiol spring-b 000覆盖, 我们在Spring Claud中建立, 更多的巾Spring Cloud提供为两个库:Spring Claud Context f Spring Cloud Commons.Spring Cloud上下文为Spring Cloud用程序(引导上下文, 加密, 刷新范用和环精点) 的ApplicationContext提供实用程序和特殊服务:Spring Claud Commons是姐在不同的Spring Cloud实现中使用的抽象和常用类(例Spring Cloud Net ll ix vs.Spring Cloud Consul) ,如果由于*非法密钥人小*而导致异常。开且您正在使用Sun的JDK, 丽要安装Java加密扩展(JCE) 无限强度管理策略文件。有关评细信
Spring Cloud上下文:应用程序上下文服务Spring Bao t对于如刊使用Spring构建应用程序有一个看法:例妇它具有常规配置文件的常规位置, 以及州于常见管理和监视任务的精点。Spring Cloud建立在此之f, 并面了一些可能系统中所有组件将使用或偶尔需要的功能,引导应用程序上下文一个5pring Cloud州程序通过创建一个“引“上下文来进行操作, 这个下文是主应程序的父十下文。开箱印用, 负责从外部源加载配置隔性, 解密本地外部配置文件中的属性, 这个上下文共享一个Environ nent, 这是任何Spring应用程序的外部性的来源。Boat strap品性的优先线高, 因此默认情况下不能被本地配置覆盖。引导上下文使用与主空用程序上下文不同的外部配置约定, 因此用bootstrap.yml applicata on.yil(成, properties) 代普引导
如果您的应用程序需要服务装上的特定于应用程的配置, 那么设置spring:s pplication.name(在bootstrap.yml或application-y nl) 中是个好主意。您可以通过设置spring-cloud.bootstrap.enabled=false《例如在系统属性中) 来完全禁用可导过程。应用程序上下文层次结构如果您从Spring Application或Spring Application Builder构建磁用程序上下文, 将Bao t strap l下文添加为该1下文的父绒、这是个Spring的功能, 即子上下文从其父进程维承属性源和配置文件, 因此与不使用Spring Cloud Config构建相同上下文相比, “主“应用程序上下文将包含其他属性源,外的财产来源是:·“bout strap :在Bootstrap上下文中找到任何Property Source Locators.则可选Composite Property Source显示为高优先锻, 并且具有丰空属性。个例子是来白Spring Cloud Config服务器的属性。有关如何自定义此属性源的内容的说明, 请参阅下文。·“application Config:I classpath:bootstrap.yml] (如果Spring A置文件处于活动状态。则为友》, 如果您有一个bootstrap-yml(或属性) , 那么这些属性田于配置引导上下文。然后在父进程设置时将它们添加刘于上下文中。它们的优先级低于appl 1 cation.y nl(或属性) 以及作为创建Spring Boot应用程序的过程的正常部分加到子级的柯具单属性源, 有关何自定义迷些属性源的内容的说明,请参阀下文。由于属性源的序, “引导 条月优先, 但请注意, 这哦条月不创含米白bootstrap.y nl的任何效据。它具有才常低的优先级:佩可用您可以增过简单地设置您创建的任何Appl1 cation Context的父上下文米扩展上下文层次结构, 如使用白己的界面, 或使用Spring Application Builder方方法(parent() , child() 和sibling() ) .导环境将是您创理自己的最高机先的父级。基次结中的每个上文都将有自己的“引导“园性源(可能为空),以避更无盘中将情从父级升级到其后代,层次结构中的每个上下文(原则上) 也可以具有不同的spring-application.name, 因此如果存在配置制务著, 则本网的远程属性源。普通的Spring应用程序上下文行为规适用丁属性解析:子环境中的属性通过名称和属性源名称覆盖父项中的属性(如果子级具有与父级名称相网的属性源。一个来父母的孩子不包括在孩子中)。请注章, Spring Application Builder允许您在整个层次结构中共享Environ nent, 但这不是默认值, 因此, 兄弟情填元其不需要具有相同的瓷料或财产末源,尽管它们与父母共享其点。改变引导位置Properties可以使用spring.cloud.bootstrap.nane(默认“导“) 成spring.cloud.bao t strap.location《默认为空) 指定bootstrap-yml《或.properties) 控置-侧如在系统属性中.这些属性的行为关似于具有相同名称的spring.config.*变体, 实际上它们用于通过在其Environ tent中没置这些属性来设置引导ApplicationContext。如果在正在构建的上下文中有活动的配置文件(来白spring.profiles active或通过Environ nent API) ) , 财该置文件中的属性也将加, 就像常规的Spring Boot用程序。例来自bootstrap-develop nent.properties的*开发*简介,覆盖远程Properties的值
通过引导上下文添加到应用程序的隔性源道常是 远程”(如从配置服务器》,并几默认情况下,不能在木地盖,除了在命令行上,如果要允许您的应用程序使用白己的系丝属性成配冒文件盖运程隔性。则远程属性源必须通过设置spring.cloud.config.all on Override-true(在本液置本身不起作用) 授了权限, 一旦置了该标志, 就会有一些更精细的设置来控制远程件与系统属性和遮程序本地配置的位置:spring-cloud.config.override None=true覆盖任何本地围性源,spring.cloud.config.override Syste r Properties-false如果具有最统性和env var该覆盖远程设置, 而不是木地配置文件。可以通过在org.spring frane work.cloud.bootstrap.Bootstrap Configuration馆下添加条/META-INF/spring.factories来练引导上下文来执行任何您喜欢的操作, 这是用于创建上下文的Spring e Configuration美的边号分隔列表。您可以在此处创建要用于自动装配的主应用程序上下文的任何bean, 并且还有ApplicationContext Initializer类国的ee ans的特殊合同。如果要控锅日动顺序(默认联序为 最后*) , 可以使用0 order标记类,引导注程通过将初始化器注入主Sprang Application实例(印正的Spring Boot启动期序, 无论是作为独文应用解运行还是暑在应用程墩务器中) 纳束。首先, 从spring.factories中找到的类创建导上下文, 然后在ApplicationContext Initializer类里的引导注程加的外配背的默认属性深是Config Server, 但您可以通过将Property 5ource Locator类型的bean添加到引导上下文(通过spring.factories) 添其他源。您可以使用此方法从其他服务器或数据库中插入其他国性。public class Custon Property Source Lucatorirplewents Property Source Locator传入的Environ nent是型创建的ApplicationContext的Environ nent, 即为我们提供外的属性来源的。它将已经具有正常的Spring Boot提供的资源米激。因此能可以使用它们来定位特定于此Environ nent的属性测(创如通过将其定在spring.application.nane上, 如在款认情况下所做的耶样Can fig Server属性测定位器) 。如果你在这个英中创建一个jar, 然后加一个META-INF/spring.factories包含:org.spring fra we work.cloud.bootstrap.Bootstrap Configu i ratione sar ple.custon.Custon Property Source Locator那*custom Propery Property Source将显示在其美路径中国含读jar的任向应用程序中。用程序将收听Environment Change Event, 并以凡种标准方式进行更改(用户可以以常规方式添扣Application Listeners附加Application Listeners) , 当观套到Environ nent Change Event时, 它将有一个己更改的键值判表, 应用程序将使用以下内容:请注意, 配置客户端不会通过默认轮面查找Environ nent中的更改, 通常我们不建议检测更改的方法(管可以使用e Scheduled注释进行置) 。如果您有个扩的客户精用程序, 么最好将Environ nent Change Event广到所有实, 面不是让它们轮询更改(侧红Environ nent Change Event涵盖了人量的刷新用例, 只要您点的可以更改Emv iron nent开发布半件(这些API是公开的, 部分内核为Spring) , 您可以通过诗问/config props点(普道Spring Boot行爵功能) 米检证更改是否鲜定到@Configuration Fro per tiesbean.例加, DataSource可以在运行时更设其max Pool Size(由Spring Bao t创建的织认DataSource是一个
特性
云原生应用程序
5pring Clud上下文:应用程序上下文服务
引导应用程序上下文
应用程序上下文层次结构
改变引导位置Prperties
陵盖远程Prperties的值
自定义引导配置
自定义引导属性谭
环境变化
刷新范围
加密和解密
Spring Clud Cm mans:普通釉象
@Enable Discvery Client
Service Registry
Spring Rest Template作为负平衡器客户端
多个Rest Template对象
忽略网络接
Sprg Clud Cnn g
快速开始
客户使用
Sping Clud Cnfig服务器
环境库
健康指标
安全
加密和解密
密明管理
创建用于测试的密明库
使用多个键和健旋转
服务加密Prperties
服务智代格式
服务纯文本
嵌入配置服务器
推送通知和5pningCludBus
5pring Clud Cnfig客户端
配置第一引导
发现第一个引
配置客户端快速失败
配置客户端重试
查找远程配置资源
安全
Vault
Spring Clud Netflix
服务发现:Eureka客户端
如何包含Eureka客户销
注册Eureka
使用Eureka服务器进行身份验证
状态爽和健康指标
注明安全应用程序
Eureka的健康检查
Eureka实例和客户端的元数据
使用Eureka Client
本机Net fix Eureka Client的替代方案
服务发现:Eureka服务器
如何包含Eureka服务
如何运行Eureka服务器
高可用性,区域和地区
独立模式
同行意识
IP地址偏好
斯路器:Hystrix客户端
如何加入Hystrix
Binder抽象
持续发布-订阅支持
消费群体
声明和绑定频道
生产者和消费者
BinderS PI
Binder检测
Classpath上有多个Binders
连接到多个系统
Binder配置属性
5pring Clud Stream Prperties
使用动态绑定目的地
MIME类型和Java类型
白定义邮件转换
Stre an Listener和邮件转换
Apache Avr讯息转换器
具有横式支持的转换器
Schema注册表支持
Schema注册服务器
Avr Schema注册表客户端消息转换器
连接多个应用程序实例
实例索引和实例计数
用法
Apache Kafka Binder概述
配置选项
Dead-Letter主题处理
用法
Rabbit MQ Binder概述
配置选项
重试Rabbit MQ Binder
Dead-Letter队列处理
传播安全上下文或使用S prng范围
健康指标
Hystrix指标流
断路器:Hystrix仪表板
Hystrix超时和Ribbn客户
如何包含Hystrix仪表板
Turbine
Turbine Stream
客户负戴平衡器.Ribbn
如何加入Ribbn
自定义Ribbn客户端
使用属性自定义Ribbn客户端
在Eureka中使用Ribbn
示例:如何使用Ribbn不使用Eureka
示例:在Ribbn中禁用Eureka使用
直接使用Ribbn API
缓存Ribbn配
声明性REST客户端:Feign
如何加入Feign
橫盖Feign默认倩
手动创建Feign客户端
Feign Hystrix支持
Feign Hystrix回退
Feign和e Primary
Feign继承支持
Feign请求/电皮压编
Feign日志记录
外部配置; Arch a i us
路由器和过滤器:Zu ul
如何加入Zu ul
嵌入式Zu ul反向代理
Zu ul Http客户瑞
Ck le和感Header
忽略的Header
路线端点
扼杀模式和本地前进
通过Zu ul上传文件
查询字符串编码
普通嵌入Zu ul
禁用Zu ul过滤器
为路线提供Hystrix回运
Zu ul开发人员指南
Plyglt支持5idecar
Rx Java与Spring MVC
指标:5pectatr, 5erv和Atlas
维度与层次度量
默认度量集合
指标集:Spectatr
谱标集:Serv
指标后端:Atlas
重试失败的请求
Spring Clud Stream
介绍Spring Clud Stream
主要概念
应用模型
分区支持
编程模型
Binders
配置选项
定Prperties
内容类型和转换
MIME类型
5chema进化支持
5chema注册表客户