【Spring Cloud Alibaba】
文章平均质量分 95
该专栏的所有文章,是对Spring Cloud Alibaba中的组件的文章,例如Nacos,Sentinel,RocketMQ,Seata等,该专栏会不断的更新,每项技术都从简单介绍,到一步步安装,逐步深入,不断提高,后面也会推出针对源码的阅读文章,敬请期待。
程序猿小亮
精通JAVA,Mysql数据库、MQ、Redis、Netty等中间件。具有多年金融行业分布式开发经验。成功的路上,没有捷径,希望我的博文能够帮助您。
展开
-
Sentinel实现动态配置的集群流控
介绍为什么要使用集群流控呢?相对于单机流控而言,我们给每台机器设置单机限流阈值,在理想情况下整个集群的限流阈值为机器数量✖️单机阈值。不过实际情况下流量到每台机器可能会不均匀,会导致总量没有到的情况下某些机器就开始限流。因此仅靠单机维度去限制的话会无法精确地限制总体流量。而集群流控可以精确地控制整个集群的调用总量,结合单机限流兜底,可以更好地发挥流量控制的效果。基于单机流量不均的问题以及如何设置集群整体的QPS的问题,我们需要创建一种集群限流的模式,这时候我们很自然地就想到,可以找一个 server原创 2021-04-08 17:31:39 · 4395 阅读 · 19 评论 -
Sentinel Gateway Nacos 网关限流三剑客
什么是网关限流?顾名思义,网关限流是通过网关层对我们的服务进行限流,达到保护后端服务的作用。在微服务架构的系统中,网关层可以屏蔽外部的请求直接对服务进行调用,网关层可以对内部服务进行隔离,保护的作用。Sentinel 支持对 Spring Cloud Gateway、Zuul 等主流的 API Gateway 进行限流。由于Zuul已经处于停更的状态,所以我们使用Sentinel与Spring Cloud Gateway设计案例,为大家讲解如何使用sentinel实现网关限流。如下图所示,Sentin原创 2021-03-31 09:23:35 · 1743 阅读 · 5 评论 -
Sentinel动态规则,使用 Nacos 配置规则
前言在学习之前的博文时,一旦我们重启服务,都会造成Sentinel规则的丢失,在生产环境是不可接受的,我们能否对规则进行持久化呢?答案是肯定的。这篇博文我们重点介绍sentinel规则的管理和推送,并使用nacos实现规则的配置。规则管理和推送Sentinel对于规则的管理和推送有三种方式:原始模式、Pull模式,Push模式。官方文档中,规则管理及推送介绍的都比较详细,每种模式的原理图,以及优缺点。在这三种模式中,前面的文章我们使用的是原始模式,但是在生产上,官网不建议大家使用。官网推荐通过动态配原创 2021-01-11 09:14:34 · 1863 阅读 · 3 评论 -
Sentinel对RestTemplate和Feign的适配
前言上篇博文,我们介绍了什么是服务熔断,并重点介绍了SentinelResource的各个属性,在案例中整合了nacos,ribbon等中间件,微服务间调用,我们使用了RestTemplate,而且我们知道服务调用还可以使用Feign,那么Sentinel是否支持对它们也可以进行限流和降级呢?这篇博文我们的重点是介绍Sentinel如何对Feign和RestTemplate实现服务限流和降级。准备工作通过对上一篇博客的学习,大家对这张图已经非常的熟悉了,UserService作为服务消费者,Ord原创 2021-01-05 09:15:28 · 627 阅读 · 0 评论 -
Sentinel服务熔断简介与实践
前言在Sentinel的核心注解SentinelResource简介与实践中,我们给大家详细的介绍了什么是SentinelResource,如何使用,以及其中一个重要属性blockHandler,它能够自定义sentinel控制台配置违规的异常信息,这篇博文,我们重点介绍它的另外一个重要属性fallback,它是什么,如何使用,它与blockHandler的区别。什么是服务熔断在开始之前,我们在简单理解什么是服务熔断。在降级规则中,我们介绍了什么是熔断降级,大家可以回顾一下。我们换一个通俗易懂的说法,原创 2020-12-28 09:08:21 · 485 阅读 · 0 评论 -
Sentinel的核心注解SentinelResource简介与实践
前言前面的博文,我们已经将Sentinel的限流规则,基本介绍清楚了,从针对接口的限制规则,流控规则与降级规则;再到细粒度的接口参数的限制规则,即热点规则;再到粗粒度的应用级限制规则,系统规则和授权规则。这篇博文,我们重点关注SentinelResource这个注解,曾经在热点规则中,我们简单的使用过SentinelResource,并没有进行深入的讲解,博主必要做做到,事无巨细,事必躬亲,这篇来了,开始。什么是@SentinelResource注解@SentinelResource 注解用来标识资源原创 2020-12-23 13:38:13 · 647 阅读 · 1 评论 -
Sentinel系统规则与授权规则简介与实践
前面的博文,流控规则与降级规则,都是针对接口的限制规则,热点key规则是针对更加细粒度的接口参数的限制规则,同样Sentinel也提供了对系统级别的限制规则。Sentinel的限流规则的粒度,完全由你来定,有没有很期待?由于系统规则和授权规则,都比较简单,我们就使用一篇博文简单的介绍一下,大家做好实践就行了,好了,我们开始。系统规则什么是系统规则系统保护规则是从应用级别的入口流量进行控制,从单台机器的 load、CPU 使用率、平均 RT、入口 QPS 和并发线程数等几个维度监控应用指标,让系统尽可原创 2020-12-21 08:59:12 · 627 阅读 · 3 评论 -
Sentinel热点key规则简介与实践
前面两篇博文,流控规则与降级规则,都是针对接口的限制规则,这篇博文我们介绍更加细粒度的接口参数的限制规则,即热点规则,马上开始。文章目录什么是热点热点规则整体认识案例情况一:使用URL作为资源名设置热点规则,规则无效情况二:使用@SentinelResource作为资源名设置热点规则情况三:自定义降级方法情况四:参数例外项总结什么是热点热点就是经常被访问的数据。热点参数限流,就是对接口的请求参数,根据配置的限流阈值与模式,对包含热点参数的资源调用进行限制。热点参数限流可以看做是一种特殊的流量控制,仅原创 2020-12-17 09:11:05 · 810 阅读 · 0 评论 -
Sentinel降级规则简介与实践
上篇博文我们详细的介绍了流量控制规则,这篇博文我们重点介绍Sentinel另外一个重要的使命:熔断降级。文章目录什么是熔断降级熔断降级设计理念对熔断降级规则整体认识熔断策略慢调用比例案例异常比例案例异常数案例总结代码示例什么是熔断降级由于在分布式系统服务之间调用关系的复杂性,如果调用链路中的某个资源出现了不稳定,可能会导致请求发生堆积,进而导致级联错误。现代微服务架构都是分布式的,由非常多的服务组成。不同服务之间相互调用,组成复杂的调用链路,如下图所示:熔断降级就是当检测到调用链路中某个资源出现不原创 2020-12-15 08:53:52 · 1762 阅读 · 8 评论 -
Sentinel流控规则简介与实践
上一篇博文,学习了Sentinel 的基本使用以及安装,接下来我们开始介绍Sentine 中的第一个规则,流控规则。文章目录什么是流量控制流量控制设计理念对流控规则整体认识阈值类型QPS案例线程数案例流控模式直接关联案例链路案例流控效果快速失败Warm up案例排队等待案例什么是流量控制流量控制(flow control),其原理是监控应用流量的 QPS 或并发线程数等指标,当达到指定的阈值时对流量进行控制,以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性。任意时间到来的请求往往是随机不可控的,而原创 2020-12-11 09:10:53 · 653 阅读 · 1 评论 -
Sentinel简介与安装
从这篇博文开始,我们开始介绍Spring Cloud Alibaba中另外一个核心组件:Sentinel,本文文章主要是简单介绍,整体认识,并进行下载,安装。原创 2020-12-08 14:52:59 · 760 阅读 · 0 评论 -
Nacos高可用集群部署最佳实践-Docker版本
上篇博文我们介绍如何使用mysql做Nacos的数据持久化,在生产环境中,如果我们想让Nacos实现高性能、高可用、可持续性的对外提供服务,我们要冗余服务,实现集群化,这篇博文我们就重点介绍如何使用docker来部署Nacos集群,以及生产集群部署的最佳实践。文章目录集群部署架构图预备环境准备Nacos Docker 快速开始首先,编写好docker-compose.yaml文件其次,两个环境变量配置文件,nacos-hostname.en和mysql.envnacos-hostname.enmysql.原创 2020-12-08 09:09:10 · 792 阅读 · 2 评论 -
Nacos的数据持久化
在Nacos系列的第一篇博文Spring Cloud Alibaba系列教程——Nacos介绍与安装,开启新时代中,我们已经介绍了Nacos的安装方式、以及如何启动,这篇博文是Nacos的安装的升级版本。在使用Nacos的过程,我们知道Nacos无论是作为配置信息还是作为注册中心,它的数据是使用嵌入式数据库实现数据的存储。Nacos能否将数据存储到数据库中呢?带着疑问,开始起飞。文章目录官网介绍前期准备具体步骤初始化数据库修改Nacos-server的配置文件启动服务总结官网介绍在0.7版本之前,在原创 2020-12-04 09:15:05 · 565 阅读 · 0 评论 -
使用Nacos实现多环境配置以及最佳实践
上篇博文,我们对Nacos作为配置中心做了一个简单示例,并介绍了配置原理等内容。我们这篇博文使用Nacos实现多环境配置,并在文章最后阐述在产线应用上的最佳实践。针对这篇博文,我们使用上篇博文代码示例,大家可以在cloudalibaba-config-nacos-client3377应用中进行实践。概述我们在开发项目的时候,生产环境和测试环境的一些配置可能会不一样,所以我们可能会在上线的时候手工修改这些配置信息,但是非常容易出错。Spring为我们提供了Spring Boot Profile这个功能(M原创 2020-09-14 16:21:07 · 1697 阅读 · 0 评论 -
使用Nacos实现分布式配置中心
上篇博文我们对如何实现在微服务间进行调用以及如何实现负载均衡进行全面的解析,这篇博文开始,介绍Nacos另外一个强大的功能:配置中心,这篇博文主要是一个快速入门,后面博客在从原理上进行介绍。什么是配置中心为什么需要配置中心?在我们开发分布式微服务项目之前,我们通常的做法都是将配置文件跟我们的项目一起打包,部署。一旦配置需要变更,我们需要硬编码进行修改,重新上线,重启服务,这样非常的不灵活,也非常不友好,如果配置出错,就又要重启服务。因此我们需要一个集中管理配置文件的服务,这个服务能够帮助我们实现配置集中原创 2020-09-08 09:23:30 · 659 阅读 · 0 评论 -
解锁服务调用姿势与负载均衡
上篇博文,我们介绍了Nacos作为分布式注册中心,实现服务注册与发现,服务消费者调用服务提供者时,我们是通过LoadBalancerClient接口来获取的服务实例,LoadBalancerClient是一个比较底层的API接口,对开发人员来说,我们需要拼接服务的地址,调用方式并不友好,而且对于SpringCloud原有的架构来说,没有更好的兼容现在的框架或服务。我们能不能使用RestTemplate,OpenFeign来调用服务,同样使用Ribbon来实现软负载均衡呢?答案是肯定的。准备工作在开始下面原创 2020-08-24 09:07:33 · 588 阅读 · 0 评论 -
使用Nacos作为分布式注册中心,实现服务注册与发现
上篇博文我们介绍了Nacos的基本概念以及进行了安装,相信大家已经对Nacos有了基本认识,其实说白了Nacos就是分布式注册中心和分布式配置中心的集合体。这篇博文我们介绍Nacos的第一个特性,服务的注册与发现,也就是分布式注册中心的核心功能。什么是服务注册与发现服务注册与发现是来自于微服务架构的产物。在传统的架构系统中,服务的数量较少,一般使用静态配置的方式实现服务信息的配置。而伴随着微服务架构的发展,服务实例的数量和网络地址都是动态变化的,此时对系统运维提出了巨大的挑战。面对成百上千的服务实例,为原创 2020-07-02 08:57:50 · 1801 阅读 · 1 评论 -
Nacos介绍与安装,开启新时代
Nacos介绍与安装,开启新时代。。。原创 2020-05-18 10:16:01 · 1173 阅读 · 0 评论 -
Spring Cloud Alibaba简介及版本说明
Spring Cloud Alibaba 是什么?开始准备起飞。。。原创 2020-05-13 09:58:35 · 4284 阅读 · 2 评论 -
Spring Cloud Alibaba系列教程——Spring Cloud Alibaba开篇
随着Spring Cloud Alibaba的发展,Spring Cloud Alibaba的相关组件逐渐的成熟,对于它的学习和研究已经是java开发人员的趋势。这篇博文主要内容是介绍什么是Spring Cloud Alibaba,Spring Cloud 与Spring Cloud Alibaba的关系,以及我们为什么要学习它,以及畅想Spring Cloud Alibaba未来发展。原创 2020-05-11 10:25:18 · 5914 阅读 · 3 评论