sentinel原理源码分析系列(一)-总述

背景

微服务是目前java主流开发架构,微服务架构技术栈有,服务注册中心,网关,熔断限流,服务同学,配置中心等组件,其中,熔断限流主要3个功能特性,限流,熔断,快速失败,本文分析限流熔断组件sentinel,为后续使用,扩展,故障排除提供技术储备,特别是dashboard的分布式改造

本文sentinel版本是1.8.8

参考和术语

限流 控制调入流量,防止流量过大造成系统崩溃

熔断/ 快速失败断路有延迟的服务,防止雪崩效应;断路探测,恢复服务路由

sentinel简介

下图是sentinel的技术技术架构图

sentinel技术架构没有比官方的原理图更清楚了,总体看,sentinel是责任链架构模式,分两部分,前部分是请求处理的拓扑构建和数据统计,后部分是规则+数据得出结论,是否放行资源(api/服务方法)调用

逻辑架构

上图左边是sentinel的代码包结构,右边是分析场景

1. 代码包说明

dashboard仪表板/管理台,transport注册,构建机器/app资料,规则管理

transport远程服务/心跳,内置到资源内,dashboard的metric fetcher拉取资源metrics;注册到dashboard

core核心包,sentinel核心实体,Entry,Node,插槽,Context

spring提供aop,注解注入sentinel启动逻辑

metricssentinel以扩展方式提供metrics

adapter覆盖常用远程调用组件,启动sentinel

rule-datasource 规则的配置中心,实现规则热变更

集群流控

2. 分析场景说明

动态规则 /transport 分析两个重要的组件

启动 /初始化 分析sentinel启动,组件初始化

调用资源 /构建插槽链

插槽链 sentinel 核心组件,重点分析

集群流控 分析sentinel 分布式流控

NEXT 源码分析

相关推荐
YDS8298 小时前
SpringCloud —— Sentinel详解
java·spring cloud·sentinel
后端小张9 小时前
【JAVA 进阶】深入理解Sentinel:分布式系统的流量守卫者
java·开发语言·spring boot·后端·spring·spring cloud·sentinel
小马爱打代码1 天前
面试题:Hystrix与Sentinel区别
hystrix·sentinel
破烂pan2 天前
Python 整合 Redis 哨兵(Sentinel)与集群(Cluster)实战指南
redis·python·sentinel
库库林_沙琪马3 天前
3、Sentinel
服务器·网络·sentinel
大大大大物~4 天前
Spring Cloud熔断与降级:核心区别与实践指南【怎么理解?解决了什么问题?各自的适用场景?Sentinel实现代码示例】
spring cloud·sentinel·熔断·降级
serendipity_hky4 天前
【SpringCloud | 第3篇】Sentinel 服务保护(限流、熔断降级)
java·后端·spring·spring cloud·微服务·sentinel
小毅&Nora4 天前
【后端】【诡秘架构】 ② 序列8:小丑 - 熔断降级的艺术:用 Sentinel 实现优雅降级,笑对流量洪峰
架构·sentinel·熔断降级
Haooog5 天前
微服务保护学习
java·学习·微服务·sentinel
布茹 ei ai6 天前
5、基于 GEE 的 Sentinel-1 SAR 地震滑坡变化检测系统:2022 泸定地震案例
javascript·sentinel·遥感·gee·云平台