Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。
/ | Sentinel | resilience4j | resilience4j |
---|---|---|---|
隔离策略 | 信号量隔离(并发控制) | 线程池隔离/信号量隔离 | 信号量隔离 |
熔断降级策略 | 基于慢调用比例、异常比例、异常数 | 基于异常比例 | 基于异常比例、响应时间 |
实时统计实现 | 滑动窗口(LeapArray) | 滑动窗口(基于 RxJava) | Ring Bit Buffer |
动态规则配置 | 支持近十种动态数据源 | 支持多种数据源 | 有限支持 |
扩展性 | 多个扩展点 | 插件的形式 | 接口的形式 |
基于注解的支持 | 支持 | 支持 | 支持 |
单机限流 | 基于 QPS,支持基于调用关系的限流 | 有限的支持 | Rate Limiter |
集群流控 | 支持 | 不支持 | 不支持 |
流量整形 | 支持预热模式与匀速排队控制效果 | 不支持 | 简单的 Rate Limiter 模式 |
系统自适应保护 | 支持 | 不支持 | 不支持 |
热点识别/防护 | 支持 | 不支持 | 不支持 |
多语言支持 | Java/Go/C++ | Java | Java |
Service Mesh 支持 | 支持 Envoy/Istio | 不支持 | 不支持 |
控制台 | 提供开箱即用的控制台,可配置规则、实时监控、机器发现等 | 简单的监控查看 | 不提供控制台,可对接其它监控系统 |
1.版本选择
SpringCloudAlibaba SpringCloud SpringBoot 版本对照-CSDN博客
2.资源下载
资源地址: Release v1.8.1 · alibaba/Sentinel · GitHub
wget https://github.com/alibaba/Sentinel/releases/download/1.8.1/sentinel-dashboard-1.8.1.jar
3.启动
注意:sentinel-dashboard 默认端口8080。
- java -jar sentinel-dashboard-1.8.1.jar
-
- sentinel-dashboard 默认端口8080,如果存在端口占用问题修改如下:
-
- java -Dserver.port=6666 -Dcsp.sentinel.dashboard.server=localhost:6666 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.1.jar
默认账号/密码是 sentinel/sentinel 。
4.其他启动配置项信息
配置项 | 类型 | 默认值 | 最小值 | 描述 |
authenabled | boolean | true | - | 是否开启登录监 权,仅用于日常 测试,生产上不 建议关闭 |
sentinel.dashboard.authusername | String | sentinel | - | 登录控制台的用 户名,默认为 sentinel |
sentinel.dashboard.auth.password | String | sentinel | - | 登录控制台的密 码,默认为 sentinel |
sentinel.dashboard.app.hideAppNoMachineMillis | Integer | 0 | 60000 | 是否隐藏无健康 节点的应用,距 离最近一次主机 心跳时间的毫秒 数,默认关闭登录控制台的密 码,默认为 sentinel |
sentinel.dashboard.removeAppNoMachineMillis | Integer | 0 | 120000 | 是否自动删除无 健康节点的应 用,距剥离最近一 次其下节点的心 跳时间毫秒数 默认关闭 |
sentinel.dashboard.unhealthyMachineMillis | Integer | 60000 | 30000 | 主机失联判定 不可关闭 |
sentinel.dashboard.autoRemoveMachineMillis | Integer | 0 | 300000 | 距离最近心跳时 间超过指定时间 是否自动删除失 联节点,默认关 团 |
sentinel.dashboard.unhealthyMachineMillis | 60000 | 30000 | 主机失联判定 不可关闭 | |
server.servletsession.cookie.name | String | sentinel dashboard cookie | - | 控制台应用的 cookie 名称,可 单独设置避免同 城名下 cochie 名冲突 |
持续更新修改中。
作者推荐
本文涉及的基础知识点
动态规划 字符串
LeetCode132. 分割回文串 II
给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文。
返回符合要求的 最少分割次数 。
示例 1:
输入:s = “aab”
输出:1
解释:只需一次分割就可将 s 分割成 [“aa”,“b”] 这样两个回文子串。
示例 2:
输入:s = “a”
输出:0
示例 3:
输入:s = “ab”
输出:1
提示:
1 <= s.length <= 2000
s 仅由小写英文字母组成
动态规划
分两步:
一,枚举回文的中心,记录所有的回文。空间复杂度和时间复杂度都是O(nn)。
二,通过动态规划计算所有所有前缀可以差分成多少个不重叠的子字符串。空间复杂度O(n),时间复杂度是O(nn)。
变量解析
class="table-box">vRightToLeft(m_c) | vRightToLeft[i] 包括元素j,表示s[i,j],是回文串。 vRightToLeft不重复遗漏的记录所有回文串。 |
dp[i] | 记录s[0,i]最少可以划分成多少个不重叠的回文子串 |
评论记录:
回复评论: