
springcloud
文章平均质量分 89
笨鸟不是菜鸟
路虽远,行则必达
展开
-
SpringCloud学习笔记 - 分布式系统全局事务管理 - Seata1.5.2+Nacos+OpenFeign
由于业务和技术的发展,单体应用被拆分成微服务应用,原来的三个模块被拆分成三个独立的应用,分别使用三个独立的数据源,业务操作需要调用三个服务来完成。此时每个服务内部的数据一致性由本地事务来保证, 但是全局的数据一致性问题没法保证。Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。原创 2023-03-01 21:53:20 · 3583 阅读 · 0 评论 -
SpringCloud学习笔记 - Sentinel流控规则配置的持久化 - Sentinel
默认的的流控规则是配置在sentinel中的,又因为sentinel是懒加载的,只有当我们访问了一个请求的时候,sentinel才能监控到我们的簇点链路,我们才能对该链路进行流控配置,一旦我们重启应用sentinel将会丢失我们的监控链路,sentinel规则也将会消失,这样对我们的生产服务器的重新部署是非常不友好的。我们知道nacos中是内置了一个轻量化的数据库的,我们就可以将我们的流控规则通过一种方式配置在nacos中的,只要Nacos里面的配置不删除,sentinel上的流控规则就持续有效。原创 2023-02-25 21:53:03 · 1203 阅读 · 3 评论 -
SpringCloud学习笔记 - @SentinelResource的fallback&blockHandler配置详解 - sentinel
也就是说会优先处理服务限流,保证高可用,不要卡死服务器。http://localhost:84/consumer/fallback/5,在没有降级处理的时候会直接报错,添加了fallback后进入降级处理方法。访问 http://localhost:84/consumer/paymentSQL/2,此时将9003服务提供者断开,84消费侧自动降级,不会被耗死。访问 http://localhost:84/consumer/fallback/1,多次访问,通过观察端口号可以发现,对支付服务进行了轮询访问。原创 2023-02-17 10:13:58 · 1096 阅读 · 0 评论 -
SpringCloud学习笔记 - 自定义及解耦降级处理方法 - Sentinel
这时我们就需要定义自己的降级处理类,将我们自定义的降级处理方法放在一个统一的类中进行管理,从而将降级方法抽象出来,以便之后的方法复用,并且实现降级处理方法和现有业务逻辑代码的解耦原创 2023-02-14 15:22:51 · 455 阅读 · 0 评论 -
SpringCloud学习笔记 - 系统自适应限流 - Sentinel
Sentinel 系统自适应限流从整体维度对应用入口流量进行控制,结合应用的 Load、CPU 使用率、总体平均 RT、入口 QPS 和并发线程数等几个维度的监控指标,通过自适应的流控策略,让系统的入口流量和系统的负载达到一个平衡,让系统尽可能跑在最大吞吐量的同时保证系统整体的稳定性。我们把系统处理请求的过程想象为一个水管,到来的请求是往这个水管灌水,当系统处理顺畅的时候,请求不需要排队,直接从水管中穿过,这个请求的RT是最短的;系统保护规则是应用整体维度的,而不是资源维度的,并且仅对入口流量生效。原创 2023-02-09 14:48:58 · 470 阅读 · 0 评论 -
SpringCloud学习笔记 - 热点参数限流 - Sentinel
何为热点?热点即经常访问的数据。很多时候我们希望统计某个热点数据中访问频次最高的 Top N 数据,并对其访问进行限制。比如:* 商品 ID 为参数,统计一段时间内最常购买的商品 ID 并进行限制* 用户 ID 为参数,针对一段时间内频繁访问的用户 ID 进行限制原创 2023-02-03 15:55:10 · 647 阅读 · 0 评论 -
SpringCloud学习笔记 - 熔断降级 - Sentinel
除了流量控制以外,对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。一个服务常常会调用别的模块,可能是另外的一个远程服务、数据库,或者第三方 API 等。例如,支付的时候,可能需要远程调用银联提供的 API;查询某个商品的价格,可能需要进行数据库查询。然而,这个被依赖服务的稳定性是不能保证的。如果依赖的服务出现了不稳定的情况,请求的响应时间变长,那么调用服务的方法的响应时间也会变长,线程会产生堆积,最终可能耗尽业务自身的线程池,服务本身也变得不可用。原创 2023-01-30 21:54:10 · 834 阅读 · 0 评论 -
SpringCloud学习笔记 - 流控规则 - Sentinel
这里的流控指的是“流量控制”,进一步解释说明:资源名:唯一名称,默认请求路径。针对来源:Sentinel可以针对调用者进行限流,填写微服务名,默认default(不区分来源)。QPS(每秒钟的请求数量)︰当调用该API的QPS达到阈值的时候,进行限流。线程数:当调用该API的线程数达到阈值的时候,进行限流。是否集群:不需要集群直接:API达到限流条件时,直接限流关联:当关联的资源达到阈值时,就限流当前资源。原创 2023-01-17 21:53:31 · 1988 阅读 · 0 评论 -
SpringCloud学习笔记 - Sentinel概述
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。简而言之,sentinel就是为了做微服务的服务熔断、服务降级、服务限流、服务调用雪崩的,和Hystrix具有异曲同工之妙。原创 2023-01-12 16:23:59 · 640 阅读 · 0 评论 -
SpringCloud学习笔记 - Nacos集群配置和配置持久化
Nacos集群配置和配置持久化原创 2023-01-09 15:49:58 · 732 阅读 · 0 评论 -
SpringCloud学习笔记 - Nacos配置中心搭建 - Nacos Config
Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持。使用 Spring Cloud Alibaba Nacos Config,您可以在 Nacos Server 集中管理你 Spring Cloud 应用的外部属性配置。原创 2022-12-17 22:01:58 · 2556 阅读 · 0 评论 -
SpringCloud学习笔记 - Nacos服务注册中心 - Nacos Discovery
Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。原创 2022-12-07 18:01:11 · 1088 阅读 · 0 评论 -
SpringCloud学习笔记 -Spring Cloud Alibaba
Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。诞生:2018.10.31,Spring Cloud Alibaba 正式入驻了Spring Cloud官方孵化器,并原创 2022-12-05 09:40:40 · 352 阅读 · 0 评论 -
SpringCloud学习笔记 - 链路监控 - SpringCloud Sleuth
在微服务框架中,一个由客户端发起的请求,在后端系统中会调用多个不同的的服务节点,来协同产生最后的响应结果,因此每一个前端请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误时都会引起整个请求最后的失败。因此就需要一个能够跟踪我们发出的请求调用了哪些服务,哪些服务出现了问题的组件,这时Sleuth就应运而生Spring Cloud Sleuth提供了一套完整的服务跟踪的解决方案在分布式系统中提供追踪解决方案并且兼容支持了zipkin。原创 2022-11-30 11:05:28 · 1381 阅读 · 0 评论 -
SpringCloud学习笔记 - 消息驱动 - Spring Cloud Stream
什么是Spring Cloud Stream?官方定义Spring Cloud Stream是一个构建消息驱动微服务的框架。应用程序通过inputs或者 outputs 来与Spring Cloud Stream中binder对象交互。通过我们配置来binding(绑定),而Spring Cloud Stream 的binder对象负责与消息中间件交互。所以,我们只需要搞清楚如何与Spring Cloud Stream交互就可以方便使用消息驱动的方式。原创 2022-11-26 21:00:37 · 347 阅读 · 0 评论 -
SpringCloud学习笔记 - 消息总线 - Spring Cloud Bus
消息代理中间件构建了一个共用的消息主题让所有微服务实例订阅,当该消息主题产生消息时会被所有微服务实例监听和消费。消息代理又是什么?消息代理是一个消息验证、传输、路由的架构模式,主要用来实现接收和分发消息,并根据设定好的消息处理流来转发给正确的应用。它在微服务之间起到通信调度作用,减少了服务之间的依赖。什么是 Spring Cloud BusSpring Cloud Bus 是 Spring Cloud 体系内的消息总线,用来连接分布式系统的所有节点。原创 2022-11-22 12:23:53 · 1680 阅读 · 0 评论 -
SpringCloud学习笔记 - 分布式配置中心 - config
Spring Cloud Config是用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持的。它由服务端和客户端构成:其中,服务端也称为分布式配置中心,是一个独立的微服务应用,用来连接配置仓库、为客户端提供支持;客户端则一般是各个微服务应用本身,它们通过指定服务端来管理自身的配置。Spring Cloud Config默认支持Git作为配置仓库,存储各个微服务的配置信息,同时也能支持其他的存储方式,如:码云、SVN、本地化文件系统。原创 2022-11-20 13:21:34 · 603 阅读 · 1 评论 -
SpringCloud学习笔记 - 微服务网关 - Spring Cloud Gateway
Spring Cloud Gateway是Spring官方基于Spring 5.0,Spring Boot 2.0和Project Reactor等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供一种简单而有效的统一的API路由管理方式。Spring Cloud Gateway作为Spring Cloud生态系中的网关,目标是替代Netflix ZUUL,其不仅提供统一的路由方式,并且基于Filter链的方式提供了网关基本的功能,例如:安全,监控/埋点,和限流等。原创 2022-11-16 18:30:35 · 539 阅读 · 0 评论 -
SpringCloud学习笔记 - 服务熔断、服务降级 - Hystrix断路器
Hystrix 是什么?在分布式环境中,许多服务依赖项中的一些必然会失败。Hystrix是一个延迟和容错库,通过添加延迟容忍和容错逻辑,帮助你控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点、停止级联失败和提供回退选项来实现这一点,所有这些都可以提高系统的整体弹性。Hystrix 有什么用?通过第三方客户端库访问(通常通过网络)的依赖项,提供对延迟和故障的保护和控制。停止复杂分布式系统中的级联故障。快速失败并快速恢复。在可能的情况下回退并优雅地降级。原创 2022-11-11 10:35:40 · 588 阅读 · 0 评论 -
SpringCloud学习笔记 - 服务调用、负载均衡组件 - OpenFeign
OpenFeign是一个显示声明式的WebService客户端。使用OpenFeign能让编写Web Service客户端更加简单。使用时只需定义服务接口,然后在上面添加注解。OpenFeign也支持可拔插式的编码和解码器。spring cloud对feign进行了封装,使其支持MVC注解和HttpMessageConverts。和eureka(服务注册中心)和ribbon组合可以实现负载均衡。原创 2022-11-06 15:28:12 · 256 阅读 · 0 评论 -
SpringCloud学习笔记 - 服务调用、负载均衡组件 - ribbon
负载均衡在系统架构中是一个非常重要,并且是不得不去实施的内容。因为负载均衡是对系统的高可用、网络压力的缓解和处理能力扩容的重要手段之一。我们通常所说的负载均衡都指的是服务端负载均衡,其中分为硬件负载均衡和软件负载均衡。硬件负载均衡主要通过在服务器节点之间按照专门用于负载均衡的设备,比如F5等;而软件负载均衡则是通过在服务器上安装一些用于负载均衡功能或模块等软件来完成请求分发工作,比如Nginx等。原创 2022-11-02 09:15:20 · 264 阅读 · 0 评论 -
SpringCloud学习笔记 - 基础项目搭建
创建多服务的cloud应用的一般过程原创 2022-10-30 10:07:02 · 404 阅读 · 0 评论 -
SpringCloud学习笔记 - 注册中心组件 - eureka
Eureka 是 Netflix 出品的用于实现服务注册和发现的工具,Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现Eureka采用C-S的设计架构,包含Eureka Server 和Eureka Client两个组件。原创 2022-10-30 11:39:02 · 633 阅读 · 0 评论 -
SpringCloud学习笔记 - 注册中心组件 - consul
consul是常用的服务发现框架之一,consul是分布式的、高可用、横向扩展的。consul提供的一些关键特性:上图来自于consul官方文档我们只看数据中心1,可以看出consul的集群是由N个SERVER(服务端),加上N个CLIENT(客户端)组成的。而不管是SERVER还是CLIENT,都是consul的一个节点,所有的服务都可以注册到这些节点上,正是通过这些节点实现服务注册信息的共享。除了这两个,还有一些小细节,一一简单介绍:CLIENTCLIENT表示consul的client模式,就是原创 2022-10-31 09:59:23 · 457 阅读 · 0 评论