Spring Cloud Sleuth:实现微服务跟踪
摘要:一. 简介 1. 微服务之间通过网络进行通信,如果能够跟踪每个请求,了解请求经过哪些微服务,请求耗时,网络延迟,业务逻辑耗时等指标,那么就能够更好的分析系统瓶颈,解决系统问题; 2. Sleuth借用了Google Dapper的术语: span:跨度,基本工作单元,用一个64位的ID唯一标识,除I
阅读全文
Spring Cloud Config:统一管理微服务配置
摘要:一. 简介 1. 微服务的配置管理一般有以下需求: 集中管理配置; 不同环境,不同配置; 运行期间可动态调整; 配置修改后可自动更新; 2. 简介 Spring Cloud Config为分布式系统外部化配置提供了服务器端和客户端的支持,包括Config Server 和Config Client两
阅读全文
Zuul:构建微服务网关
摘要:一. 简介 1. 微服务网关是介于客户端和服务器之间的中间层,所有的外部请求都会先经过微服务网关; 2. 优点 微服务网关封装了应用程序的内部结构,客户端只用跟网关交互,无需直接调用特定微服务的接口,简化开发流程; 易于监控,可在微服务网关收集监控数据并推送到外部系统进行分析; 易于认证,可在微服务
阅读全文
Hystrix:实现微服务的容错处理
摘要:一. 简介 1. 一个延迟和容错库,用于隔离访问远程系统,服务或者第三方库,防止级联失败,提升系统的可用性与容错性; 2. 通过以下几点实现延迟和容错: 包裹请求:使用HystrixCommand包裹对依赖的调用逻辑,每个命令在独立线程中执行; 跳闸机制:当某服务的错误率超过一定阈值时,Hystri
阅读全文
Feign:声明式REST调用
摘要:一. 简介 1. 声明式,模板化的HTTP客户端,可以帮助我们更加便捷,优雅的调用HTTP API; 2. 为服务消费者整合Feign 添加spring-cloud-starter-openfeigh依赖; 创建一个Feign接口,添加@FeignClient注解; 在Controller中调用Fe
阅读全文
Ribbon:客户端负载均衡
摘要:一. 简介 1. 为Ribbon配置服务提供者地址列表后,Ribbon就可以基于某种负载均衡算法,自动帮助服务消费者去请求; 2. 当Ribbon与Eureka配合使用时,Ribbon可以自动从Eureka Server获取服务提供者地址列表,并基于负载均衡算法,请求其中一个服务提供者实例; 3.
阅读全文
Eureka:服务注册与发现
摘要:一. 简介 1. Eureka是一个基于REST的服务,包含Server和Client两部分,实现微服务的注册与发现; 2. Service提供服务发现的能力,各个微服务启动时,会向Server注册自己的信息,如IP,端口,微服务名称等,Server会存储这些信息; 3. Client是一个Java
阅读全文