随笔分类 -  Spring Cloud Alibaba

摘要:1.环境准备 服务熔断:应对微服务雪崩效应的一种链路保护机制,类似保险丝。 需要完成Sentinel整合Ribbon+openFeign,所以我们先要搭建环境,那么先从整合Ribbon开始 新建nacos-provider-9001/9002 父pom: <?xml version="1.0" en 阅读全文
posted @ 2022-05-21 10:01 ZT丶 阅读(312) 评论(0) 推荐(0) 编辑
摘要:SentinelResource除了blockHandler可以设置自定义限流处理逻辑方法以外,还提供另外一个属性来设置限流处理逻辑类型blockHandlerClass属性,此属性中设置的方法必需为 static 函数,否则无法解析。 第一步: /** * 此类型用来处理限流自定义逻辑 */ pu 阅读全文
posted @ 2022-05-21 10:00 ZT丶 阅读(92) 评论(0) 推荐(0) 编辑
摘要:1.系统规则 Sentinel 系统自适应限流从整体维度对应用入口流量进行控制,结合应用的 Load、CPU 使用率、总体平均 RT、入口 QPS 和并发线程数等几个维度的监控指标,通过自适应的流控策略,让系统的入口流量和系统的负载达到一个平衡,让系统尽可能跑在最大吞吐量的同时保证系统整体的稳定性。 阅读全文
posted @ 2022-05-21 09:54 ZT丶 阅读(119) 评论(0) 推荐(0) 编辑
摘要:1.概念 何为热点?热点即经常访问的数据。很多时候我们希望统计某个热点数据中访问频次最高的 Top K 数据,并对其访问进行限制。比如: ​ 商品 ID 为参数,统计一段时间内最常购买的商品 ID 并进行限制 ​ 用户 ID 为参数,针对一段时间内频繁访问的用户 ID 进行限制 热点参数限流会统计传 阅读全文
posted @ 2022-05-21 09:53 ZT丶 阅读(441) 评论(0) 推荐(0) 编辑
摘要:1.基本介绍 除了流量控制以外,对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。一个服务常常会调用别的模块,可能是另外的一个远程服务、数据库,或者第三方 API 等。例如,支付的时候,可能需要远程调用银联提供的 API;查询某个商品的价格,可能需要进行数据库查询。然而,这个被依赖服 阅读全文
posted @ 2022-05-21 09:51 ZT丶 阅读(158) 评论(0) 推荐(0) 编辑
摘要:1.名词解释 资源名:唯一名称,默认请求路径 针对来源:Sentinel可以针对调用者进行限流,填写微服务名,默认default(不区分来源) 阈值类型/单机阈值: QPS(每秒钟的请求数量):当调用该API的QPS达到阈值的时候,进行限流 线程数:当调用该API的线程数量达到阈值的时候,进行限流 阅读全文
posted @ 2022-05-21 09:48 ZT丶 阅读(308) 评论(0) 推荐(0) 编辑
摘要:1.搭建Sentinel项目 Sentinel的官方文档网址:https://sentinelguard.io/zh-cn/docs/quick-start.html 创建项目sentinel-service-8401 导入依赖 <?xml version="1.0" encoding="UTF-8 阅读全文
posted @ 2022-05-21 09:43 ZT丶 阅读(97) 评论(0) 推荐(0) 编辑
摘要:1.什么是sentinel 分布式系统的流量防卫兵:随着微服务的普及,服务调用的稳定性变得越来越重要。Sentinel以“流量”为切入点,在流量控制、断路、负载保护等多个领域开展工作,保障服务可靠性。 特点: 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例 阅读全文
posted @ 2022-05-21 09:42 ZT丶 阅读(713) 评论(0) 推荐(0) 编辑
摘要:Nacos客户端本地缓存及故障转移 在Nacos本地缓存的时候有可能会出现一些故障,这些故障就需要进行处理,涉及到的核心类为ServiceInfoHolder和FailoverReactor。 本地缓存有两方面,第一方面是从注册中心获得实例信息缓存在内存当中,也就是通过Map的形式承载,这样查询操作 阅读全文
posted @ 2022-05-21 00:31 ZT丶 阅读(2067) 评论(0) 推荐(0) 编辑
摘要:Nacos集群数据同步 当有服务进行注册以后,会写入注册信息同时会触发ClientChangedEvent事件,通过这个事件开始进行Nacos的集群数据同步,当然这其中只有一个Nacos节点来处理对应的客户端请求,这其中还涉及到一个负责节点和非负责节点 负责节点 首先要查看的是DistroClien 阅读全文
posted @ 2022-05-21 00:31 ZT丶 阅读(861) 评论(0) 推荐(0) 编辑
摘要:Nacos客户端服务订阅的事件机制剖析 Nacos客户端订阅的核心流程:Nacos客户端通过一个定时任务每6秒从注册中心获取实例列表,当发现实例发生变化时发布变更事件,订阅者进行业务处理,然后更新内存和本地缓存中的实例。 在第一步调用subscribe方法时,会订阅一个EventListener事件 阅读全文
posted @ 2022-05-21 00:29 ZT丶 阅读(618) 评论(0) 推荐(0) 编辑
摘要:1.Nacos订阅概述 Nacos的订阅机制如果用一句话来描述就是:Nacos客户端通过一个定时任务每6秒从注册中心获取实例列表,当发现实例发生变化时发布变更事件,订阅者进行业务处理(更新实例,更改本地缓存) 订阅方法整体流程: 2.定时任务开启 其实订阅本质上就是服务发现的一种方式,也就是在服务发 阅读全文
posted @ 2022-05-21 00:27 ZT丶 阅读(571) 评论(0) 推荐(0) 编辑
摘要:总体流程 Nacos客户端的服务发现,其实就是封装参数、调用服务接口、获得返回实例列表 从NamingTest开始来分析服务发现 public class NamingTest { @Test public void testServiceList() throws Exception { .... 阅读全文
posted @ 2022-05-21 00:25 ZT丶 阅读(182) 评论(0) 推荐(0) 编辑
摘要:1.长连接 概念:长连接是指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包 nacos注册中心客户端2.0之后使用gRPC代替http,会与服务端建立长连接,但仍然保留了对旧http客户端的支持 NamingClientProxy接口负责底层通讯调用服务 阅读全文
posted @ 2022-05-21 00:24 ZT丶 阅读(470) 评论(0) 推荐(0) 编辑
摘要:客户端服务注册入口 流程图: 实际上我们在真实的生产环境中,我们要让某一个服务注册到Nacos中,我们首先要引入一个: <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba 阅读全文
posted @ 2022-05-21 00:23 ZT丶 阅读(165) 评论(0) 推荐(0) 编辑
摘要:服务端服务注册接口 客户端进行服务注册的时候,本质上其实就是调用服务端提供的服务注册接口(nacos/v1/ns/instance),这个接口所在位置为上图标记中,InstanceController和InstanceControllerV2这2个类都包含服务注册功能,内部实现其实都是调用了Inst 阅读全文
posted @ 2022-05-21 00:23 ZT丶 阅读(221) 评论(0) 推荐(0) 编辑
摘要:服务注册信息 我们从Nacos-Client开始说起,那么说到客户端就涉及到服务注册,我们先了解一下Nacos客户端都会将什么信息传递给服务器,我们直接从Nacos Client项目的NamingTest说起 public class NamingTest { @Test public void t 阅读全文
posted @ 2022-05-21 00:19 ZT丶 阅读(260) 评论(0) 推荐(0) 编辑
摘要:1.Nacos核心功能点 服务注册:Nacos Client会通过发送REST请求的方式向Nacos Server注册自己的服务,提供自身的元数据,比如ip地址、端口等信息。Nacos Server接收到注册请求后,就会把这些元数据信息存储在一个双层的内存Map中。 服务心跳:在服务注册后,Naco 阅读全文
posted @ 2022-05-21 00:18 ZT丶 阅读(121) 评论(0) 推荐(0) 编辑
摘要:1.nacos部署说明 nacos支持三种部署方式: 单机模式 - 用于测试和单机试用 集群模式 - 用于生产环境,确保高可用 多集群模式 - 用于多数据中心场景 集群部署架构:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html 架构图 阅读全文
posted @ 2022-05-21 00:15 ZT丶 阅读(548) 评论(0) 推荐(0) 编辑
摘要:1.名词解释 命名空间(Namespace):用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。 个人倾向把namespace当做 阅读全文
posted @ 2022-05-21 00:12 ZT丶 阅读(765) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
主题色彩