springcloud
文章平均质量分 95
RachelHwang
鹏城百晓生
展开
-
springcloud — 微服务熔断处理之断路器Resilience4j
断路器Resilience4j1、使用场景在现在的微服务应用中,服务间依赖性强,经常会出现一些故障,而一些故障会直接或者间接的拖垮其它的服务,造成服务器雪崩,系统就会死掉。我们需要解决的是,当某一个微服务发生蔓延当时候,不能发生故障蔓延,整个系统还能以其它某种方式正常运行。此时这里我们会涉及到几个微服务治理的概念:服务熔断当下游的服务因为某种原因导致服务不可用或响应过慢时,上游服务为了保证自己整体服务的可用性,不再继续调用目标服务,直接返回。当下游服务恢复后,上游服务会恢复调用。服务容错原创 2020-10-14 00:46:02 · 2132 阅读 · 0 评论 -
springcloud — 微服务负载均衡组件之Ribbon解析(一)
Ribbon 负载均衡Ribbon是一个内置软件负载平衡器的进程间通信(远程过程调用)库。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,Ribbon是一个客户端负载均衡器,我们可以在配置文件中Load Balancer后面的所有机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器,我们也很容易使用Ribbon实现自定义的负载均衡算法。Ribbon是一个经过云测试的客户端库。它提供了以下特性Load balancing 负载均衡Fault原创 2020-07-19 13:13:52 · 298 阅读 · 0 评论 -
springcloud — 微服务网关之spring cloud zuul
API网关API 网关(API Gateway)主要负责服务请求路由、组合及协议转换。API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问API。服务端通过API-GW注册和管原创 2020-07-15 12:45:23 · 303 阅读 · 0 评论 -
springcloud — 微服务熔断治理之断路器Hystrix解析(一)
1、隔离方式线程隔离(默认):使用一个线程池来存储当前的请求,线程池对请求作处理,设置任务返回处理超时时间,堆积的请求堆积入线程池队列。这种方式需要为每个依赖的服务申请线程池,有一定的资源消耗,好处是可以应对突发流量(流量洪峰来临时,处理不完可将数据存储到线程池队里慢慢处理)信号隔离:使用一个原子计数器(或信号量)来记录当前有多少个线程在运行,请求来先判断计数器的数值,若超过设置的最大线程个数则丢弃改类型的新请求,若不超过则执行计数操作请求来计数器+1,请求返回计数器-1。这种方式是严格的控制线原创 2020-07-16 00:26:05 · 501 阅读 · 0 评论 -
springcloud微服务:使用Hystrix實現微服務的容錯處理
一.實現容錯的手段1.雪崩效應如果在A的链路上某个或几个被调用的子服务不可用或延迟较高,则会导致调用A服务的请求被堵住。 堵住的请求会消耗占用掉系统的线程、io等资源,当该类请求越来越多,占用的计算机资源越来越多的时候,会导致系统瓶颈出现,造成其他的请求同样不可用,最终导致业务系统崩溃,又称:雪崩效应。2.造成雪崩效应的原因硬件故障负载过大(如:抢红包,双十一)代码问题3.服务雪...原创 2018-10-05 01:15:06 · 119 阅读 · 0 评论 -
高并发解决方案之限流策略
高并发解决方案之限流策略在开发高并发系统时,有三把利器用来保护系统:缓存、降级和限流。在很多实际项目中,我们需要考虑项目中的并发问题,抢购或者支付之类的场景,经常需要考虑的问题就是,限制同一时间的请求次数,在前端接收请求的基础上,我们可以考虑nginx的限流方案,在nginx层面我们设置请求数,这是其中的一种解决方案,但是在实际项目中,往往需要处理的是某一个模块接口的请求处理方案,此时需要为接口...转载 2018-09-20 00:28:39 · 2075 阅读 · 1 评论 -
springcloud — 注册中心Nacos组件原理解析
Nacos介绍Nacos中文官方文档:https://nacos.io/zh-cn/docs/quick-start.htmlNacos是什么?Nacos是一个注册中心组件,Nacos也是一个配置中心,比如SpringCloud中的Config,将配置文件版本化管理。那么Nacos到底是什么呢, 总结为官网一句话就是:Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos功能1. 服务注册发原创 2021-05-27 00:42:27 · 936 阅读 · 1 评论 -
springcloud — 微服务链路追踪sleuth组件
随着分布式服务架构的流行,特别是微服务等设计理念在系统中的应用,系统规模也会变得越来越大,各微服务间的调用关系也变得越来越复杂。通常一个由客户端发起的请求在后端系统中会经过多个不同的微服务调用来协同产生最后的请求结果。在复杂的微服务架构系统中,几乎每一个前端请求都会形成一个复杂的分布式服务调用链路。那么就带来一系列问题,在业务规模不断增大、服务不断增多以及频繁变更的情况下,如何快速发现问题?如何判断故障影响范围?如何梳理服务依赖以及依赖的合理性?如何分析链路性能问题以及实时容量规划?面对上面这些问题,Sp原创 2021-03-26 00:05:27 · 352 阅读 · 0 评论 -
springcloud — 微服务鉴权管理Spring Security OAuth2原理解析(五)
回顾之前文章:1. 微服务鉴权管理之OAuth2原理解析(一)2. 微服务鉴权管理Spring Security原理解析(二)3. 微服务鉴权管理Spring Security OAuth2原理解析(三)4. 微服务鉴权管理Spring Security OAuth2原理解析(四)上一篇文章中我们介绍了获取token的流程,这一篇重点分析一下,携带token访问受限资源时,内部的工作流程。1、ResourceServerConfigurerAdapter上一篇文章重点介绍的其实是与身份认证相关原创 2021-01-28 00:50:04 · 684 阅读 · 0 评论 -
springcloud — 微服务鉴权管理Spring Security OAuth2原理解析(四)
回顾之前文章:1. 微服务鉴权管理之OAuth2原理解析(一)2. 微服务鉴权管理Spring Security原理解析(二)3. 微服务鉴权管理Spring Security OAuth2原理解析(三)本文开始从源码的层面,讲解一些Spring Security Oauth2的认证流程。1、AuthorizationServerConfigurerAdapter上一篇博客中我们尝试使用了password模式和client模式,有一个比较关键的endpoint:/oauth/token。从这个入原创 2021-01-27 15:12:10 · 819 阅读 · 0 评论 -
springcloud — 微服务鉴权管理Spring Security OAuth2原理解析(三)
回顾之前文章:1. 微服务鉴权管理之OAuth2原理解析(一),2. 微服务鉴权管理Spring Security原理解析(二)前面的部分,我们关注了Spring Security是如何完成认证工作的,接下来将继续讲解接口对接中常使用的密码模式(以下简称password模式)和客户端模式(以下简称client模式)。授权码模式使用到了回调地址,是最为复杂的方式,通常网站中经常出现的微博,qq第三方登录,都会采用这个形式。简化模式不常用。1、概述使用oauth2保护你的应用,可以分为简易的分为三个步原创 2021-01-26 10:45:39 · 1361 阅读 · 1 评论 -
springcloud — 微服务鉴权管理Spring Security原理解析(二)
回顾之前介绍的OAuth2简单分析与介绍,微服务鉴权管理之OAuth2原理解析(一),本文将进一步对OAuth2的原理和使用做进一步的分析;原创 2021-01-24 13:38:20 · 806 阅读 · 0 评论 -
springcloud — 微服务注册与发现之consul组件原理解析(二)
回顾之前文章:1. 微服务注册与发现之consul组件治理能力(一)其中介绍了consul的概念和基于springcloud进行集成的操作步骤,本文将从consul组件原理细讲相关的原理;consul整体架构图如下:1、自动配置在spring-cloud-consul-config.jar!/META-INF/spring.factories中,有如下配置:# Auto Configurationorg.springframework.boot.autoconfigure.EnableAuto原创 2021-01-15 22:25:10 · 924 阅读 · 1 评论 -
springcloud — 微服务熔断处理之断路器Resilience4j-circuitbreaker组件(三)
回顾之前文章:1. 微服务熔断处理之断路器Resilience4j(一)2. 微服务熔断处理之断路器Resilience4j-circuitbreaker组件(二)两篇文章中介绍了 Resilience4j 的一些基本功能,详解Resilience4j-circuitbreaker组件源码流程,本文将继续梳理circuitbreaker组件中的熔断器度量指标以及熔断器事件发布;1、CircuitBreakerMetrics(熔断器度量指标)熔断器度量指标,熔断器在工作中,熔断相关实际数据,均存储在原创 2021-01-11 17:16:34 · 678 阅读 · 1 评论 -
springcloud — 微服务熔断处理之断路器Resilience4j-circuitbreaker组件(二)
回顾之前文章:微服务熔断处理之断路器Resilience4j(一)中介绍了 Resilience4j 的一些基本功能,这些基本功能涵盖了请求熔断、限流、以及重试等功能,以及Resilience4j 的一些基本用法。本文将详解Resilience4j-circuitbreaker组件;1、CiruitBreaker(熔断器)模块概述Resilience4j的CircuitBreaker主要由6个部分组成:管理熔断器实例的注册容器、熔断器的相关配置、熔断器的各种状态、触发熔断器状态变化的指标、熔断器行为变化原创 2021-01-10 15:07:12 · 1262 阅读 · 3 评论 -
springcloud — 微服务负载均衡组件Ribbon之PredicateBasedRule解析(二)
回顾之前Ribbon组件的文章:springcloud — 微服务负载均衡组件Ribbon解析(一)1、PredicateBasedRule依赖图分析:2、PredicateBasedRule源码解读//抽象策略,继承自ClientConfigEnabledRoundRobinRule//基于Predicate的策略//Predicateshi Google Guava Collection工具对集合进行过滤的条件接口public abstract class PredicateBasedR原创 2020-12-19 16:01:53 · 841 阅读 · 1 评论 -
springcloud — 微服务熔断治理之断路器Hystrix状态之HystrixCircuitBreaker解析(三)
回顾之前SpringCloud Hystrix断路器相关文章:一、微服务熔断治理之断路器Hystrix解析(一)二、微服务熔断治理之断路器Hystrix解析(二)1、断路器相关知识点首先我们需要搞清楚的一个问题就是,断路器断的是什么?断路器断的其实就是我们对依赖服务的调用,而我们对依赖服务的调用其实被包装在HystrixCommand里面,断路器断的就是HystrixCommand是否需要对依赖服务发起请求,更直白的一点说,就是断HystrixCommand。关于什么是断路器这个问题,应该不用再做更原创 2020-12-13 23:57:44 · 737 阅读 · 1 评论 -
springboot — SpringApplication的生命周期和事件机制解析
本文将以SpringApplication的启动流程以及生命周期各时期发出的Event事件为主线,结合每个生命周期内完成的事件介绍,真正实现一文让你总览Spring Boot的全貌,这对读者深入理解Spring Boot,以及整合进Spring Cloud都将非常重要。接下来我们先看下SpringApplication生命周期事件流程图,然后再讲解各个事件的详情:1、SpringApplicationEvent它是和SpringApplication生命周期有关的所有事件的父类,@since 1.0原创 2020-12-02 01:58:05 · 1515 阅读 · 0 评论 -
springcloud — 微服务熔断治理之断路器Hystrix解析(二)
Hystrix是一个限流、降级容错框架,它能很好的保护我们的接口、应用。这很大程度上得益于它提供了fallback机制:回退(也叫降级)。本文主要讲述了Hystrix的fallback的主要特性和核心点:Hystrix的fallback回退/降级逻辑Hystrix触发fallback降级逻辑的5种情况Hystrix抛出HystrixBadRequestException异常不熔断1、Hystrix的fallback回退/降级逻辑xxxCommand系列正常的执行逻辑、以及出现异常的回退逻辑均在原创 2020-11-11 18:24:24 · 1778 阅读 · 0 评论 -
springcloud — 微服务远程调用组件之Feign
1、spring cloud feign概述在前面的文章中,负载均衡组件ribbon介绍中,可以发现当我们通过RestTemplate调用其它服务的API时,所需要的参数须在请求的URL中进行拼接,如果参数少的话或许我们还可以忍受,一旦有多个参数或者调用多个API时,代码上就显得比较冗余了。为了克服这些不足,Spring Cloud提供了声明式调用组件—Feign。Feign是一个声明式的Web Service客户端,它的目的就是让Web Service调用更加简单。Feign提供了HTTP请求的模板,原创 2020-10-27 01:04:51 · 468 阅读 · 0 评论 -
springcloud — 微服务负载均衡组件之Ribbon
1、SpringCloud Ribbon概述Spring Cloud Ribbon是一个进行客户端的LoadBalance负载均衡组件,基于HTTP和TCP客户端。它虽然只是一个工具类库,并不需要像eureka注册中心、网关服务那样单独部署,但它却是每一个微服务的基础设施。因为实际上,对于服务间调用、API网关请求转发都需要经过Ribbon负载均衡来实现,比如我们熟悉的Feign发送请求也得经过它。负载均衡是互联网开发避不开的核心概念之一,它是HA高可用的最有效手段。而在微服务日益流行的今天,对Ribbo原创 2020-10-26 18:39:14 · 381 阅读 · 0 评论 -
springcloud — 微服务注册与发现之consul组件治理能力
1、consul概述Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置,与其它分布式服务注册与发现的方案,Consul 的方案更“一站式”,内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value 存储、多数据中心方案,不再需要依赖其它工具(比如 ZooKeeper 等)。使用起来也较为简单。Consul 优势:使用 Raft 算法来保证一致性, 比复杂的 Paxos 算法更直接. 相比较而言, zookeeper 采用的是 Paxos,原创 2020-10-23 00:02:24 · 306 阅读 · 1 评论 -
springcloud — 微服务网关治理及熔断限流处理之spring cloud gateway
1、SpringCloud Gateway概述SpringCloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关。作为Netflix Zuul的替代者,Spring Cloud Gateway是一款非常实用的微服务网关,在Spring Cloud微服务架构体系中发挥非常大的作用,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。SpringCloud原创 2020-10-21 01:22:14 · 2120 阅读 · 1 评论 -
springcloud — 微服务下RabbitMQ消息驱动代理之SpringCloud Stream
1、概述云时代,微服务已在企业环境中变得突出。Spring Boot改变了开发人员构建应用程序的方式。借助Spring的编程模型和Spring Boot处理的运行时职责,无缝开发了基于生产,生产级Spring的独立微服务。为了将其扩展到数据集成工作负载,Spring Integration和Spring Boot被放到一个新项目中。Spring Cloud Stream出生了。Spring Cloud Stream是一个建立在Spring Boot和Spring Integration之上的框架,有助于原创 2020-10-20 01:04:02 · 332 阅读 · 0 评论 -
springcloud — 微服务分布式追踪之Sleuth链路处理
Spring Cloud Sleuth1、使用场景随着业务的发展,单体架构变为微服务架构,并且系统规模也变得越来越大,各微服务间的调用关系也变得越来越复杂。在分布式系统中,一个集群中有几十个微服务;微服务调用微服务,一个或多个微服务的网络环境问题、硬件问题导致服务提供失败;多服务协同工作在微服务的应用中,一个由客户端发起的请求在后端系统中会经过多个不同的微服务调用来协同产生最后的请求结果。复杂的调用链条容易出错在复杂的微服务架构系统中,几乎每一个前端请求都会形成一个复杂的分布式服务调用链路,在原创 2020-10-16 01:39:55 · 581 阅读 · 1 评论 -
springcloud — 微服务鉴权管理之OAuth2原理解析(一)
Spring Security OAuth2建立在Spring Security的基础之上,实现了OAuth2的规范,Spring Cloud Security模块用于构建安全的应用程序和服务。在Spring Boot和Spring Security OAuth2的基础上,我们可以快速创建实现常见模式(如单点登录,令牌中继和令牌交换)的系统。Spring OAuth2.0 提供者实现原理Spring OAuth2.0提供者实际上分为:授权服务 Authorization Service资源服务 R原创 2020-08-05 00:55:27 · 1594 阅读 · 0 评论