Spring Cloud(十二):分布式配置管理 Config 之 配置详解
本篇是前面两篇 Config Git 和 JDBC 实现的文章的延续,主要对 Spring Cloud Config 服务器端和客户端的相关配置进行详细的描述。
具体包括引导启动、服务存储库、健康检测、安全认证、集成服务发现、请求失败重试等配置详解。
Spring Cloud(十二):分布式配置管理 Config 之 配置详解
本篇是前面两篇 Config Git 和 JDBC 实现的文章的延续,主要对 Spring Cloud Config 服务器端和客户端的相关配置进行详细的描述。
具体包括引导启动、服务存储库、健康检测、安全认证、集成服务发现、请求失败重试等配置详解。
Spring Cloud(十一):分布式配置管理 Config 之 JDBC 实现
Spring Cloud Config 支持 Git 和 JDBC 做为后端存储库,默认是 Git 存储库,对于开发来说是方便且易于理解的;但对于运维来说,因涉及 Git 操作,可能就不那么方便了。
另外,如果能给分布式配置管理提供 Web 控制台来操作就非常直观和方便了,JDBC 存储库就可以较好的应用在 Web 应用中。
Spring Cloud(十):分布式配置管理 Config 之 Git 实现
在微服务架构集群部署的环境中,可能会有十几甚至几十个服务,若要修改项目属性参数,手动的方式是很糟糕的,所以就有了分布式配置管理这个概念。
将服务器的配置外部化,可以存在文件或数据库中,一个专门用于管理应用服务配置的应用,可以随时修改和自动更新到目标服务器上。目前已有开源项目,如,smconf、disconf、QConf。
Spring Cloud Config 为分布式系统中的外部化配置提供服务器端和客户端支持。使用 Config Server,可以在所有环境中管理应用程序的外部属性。Spring Cloud Config 官方文档,spring-cloud-config Github。
Spring Cloud(九):API网关 Zuul 其它详细设置
该篇是 Spring Cloud系列(八):路由和过滤器之API网关 Zuul 的延续,主要讲解 Zuul 的相关配置,比如编码、过滤器、熔断回退、超时、跨域等。
Spring Cloud(八):路由和过滤器之API网关 Zuul
API 网关是对外服务的一个入口,隐藏了内部架构的实现,是微服务架构不可或缺的一部分。
Zuul 是 Netflix 基于JVM的路由器和服务器端负载均衡器。Zuul 能够与 Eureka、Ribbon、Hystrix等组件配合使用。
相关文档可参考Spring Cloud文档:Router and Filter-Zuul Netflix Zuul GitHub,Zuul Wiki 文档
Spring Cloud(七):Hystrix 属性配置详解
HystrixCommand 中除了 fallbackMethod,还有很多的配置。详细可查看 原生 Netflix Hystrix,Netflix Hystrix Wiki 文档。
Spring Cloud(六):服务容错之断路器 Hystrix
微服务架构中,会有多个可调用的微服务,一个请求可能会连续调用多个服务,若其中某一个服务失败可能会导致级联失败(连锁反应),最终导致整个系统不可用,这种情况称之为服务雪崩效应。
Netflix 为微服务架构开发了一个 Hystrix 中间件(库),用于实现断路器功能,类似于电路中的保险丝。Hystrix 通过 HystrixCommand 对服务调用进行隔离来阻止故障连锁反应,能够让接口调用快速失败并迅速恢复正常、或者回退并优雅降级到另一个受 hystrix 保护的调用。
原生 Netflix Hystrix,Netflix Hystrix Wiki 文档,Spring Cloud Hystrix 文档。
Spring Cloud(五):声明式 REST 客户端 Feign
Feign 是一个声明式 Web 客户端,让 Rest 服务调用更简单。要使用 Feign ,只需在编写接口并添加其注解,就可以定义好 http 请求的参数、格式、地址等信息。
Feign 会完全代理 Http 请求,只需向调用方法一样调用 feign 注解的客户端就可以完成服务请求及相关处理。
Spring Cloud 支持集成 Ribbon 和 Eureka,Feign 和他们一起使用时支持客户端负载均衡功能。Spring Cloud OpenFeign 文档。
MySQL 对范围查询提供了 range access method(范围访问方法) 来优化查询。
范围访问方法使用单个索引来检索包含在一个或多个索引值区间内的表行的子集。这里的单个索引可以是单列索引或多列索引。
MySQL 查询是以 SELECT 语句形式执行数据库中的所有查找操作,SELECT 操作在执行的 SQL 语句中占大比例,SELECT 调优可以说是对 SQL 优化的首要任务。
查询调优除了应用于 SELECT 语句外,还适用于诸如 create table…as select、insert in to…select 和 delete 语句中的 where 子句等构造。这些语句还有额外的性能考虑,因为它们将写操作与面向读的操作结合在了一起。