10 xiaolyuh123

尚未进行身份认证

我要认证

凡是过去,皆为序幕

等级
TA的排名 3k+

Alibaba Sentinel DegradeRule 降级规则源码

Alibaba Sentinel 支持多种降级方式:根据响应时间:判断单位时间内平均响应时间是否达到阈值;根据异常比例:判断单位时间内,异常数量和异常比例是否达到阈值;根据异常数量:判断单位时间内异常数量是否达到阈值;一旦触发熔断,熔断开关将会打开,这时将拒绝所有请求,拒绝时间为设置的降级时间间隔。通过源码我们可以发现,Sentinel直接使用的是ScheduledExecutorService开启的一个延迟任务来实现降级时间间隔。如:响应时间达到阈值,并且熔断时间间隔配置为5S,这时熔断开.

2020-09-10 16:25:19

Hystrix核心原理和断路器源码解析

Hystrix运行原理构造一个HystrixCommand或HystrixObservableCommand对象执行命令。检查是否已命中缓存,如果命中直接返回。检查断路器开关是否打开,如果打开,直接熔断,走fallback逻辑。检查线程池/队列/信号量是否已满,如果已满,直接拒绝请求,走fallback逻辑。上面条件都不满足,调用HystrixObservableCommand.construct()方法HystrixCommand.run()方法,执行业务逻辑。判断运行业务逻辑方法是否出

2020-08-15 20:23:29

Alibaba Sentinel 骨架源码分析

Sentinel 的核心骨架,将不同的 Slot 按照顺序串在一起(责任链模式),从而将不同的功能(限流、降级、系统保护)组合在一起。slot chain 其实可以分为两部分:统计数据构建部分(statistic)和判断部分(rule checking)。核心结构:业务埋点示例// 资源的唯一标识String resourceName = "testSentinel";Entry entry = null;String retVal;try { entry = SphU.entry(r

2020-08-14 10:33:21

Alibaba Sentinel 使用ZooKeeper集中管理和推送规则

如果不做任何修改,Sentinel Dashboard 的推送规则方式是通过 API 将规则推送至客户端并直接更新到内存中,这种方式规则保存在内存中,重启即消失不建议在线上使用,架构图如下:Sentinel官方是建议使用推模式,这种方式规则是持久化的,服务重启不会消失;通过配置中心来保证规则的一致性;规则实时下发,响应速度快,架构图如下:Sentinel 目前提供了ZooKeeper, Apollo, Nacos 等的动态数据源实现,但是为了使用第二种架构方式我们需要对原来的Dashboard进行一

2020-08-11 21:31:04

Alibaba Sentinel LeapArray 源码分析

最近在使用Alibaba Sentinel来做服务的限流、熔断和降级。一直有一个比较好奇的点,Sentinel是如果做到高效的数据统计的。通过官方文档介绍:StatisticSlot: 则用于记录、统计不同纬度的 runtime 指标监控信息;(做实时统计)Sentinel 底层采用高性能的滑动窗口数据结构LeapArray来统计实时的秒级指标数据,可以很好地支撑写多于读的高并发场景。由此可以发现Sentinel使用了滑动窗口算法来做数据统计,并且具体实现是在LeapArray类中。Sentin

2020-08-11 16:05:49

自我学习方法

我发现,为了能够掌握一门技术,我需要了解以下三个要点。1.如何开始 ——要想开始使用自己所学的,我需要掌握哪些基本知识?2.学科范围 ——我现在学的东西有多宏大?我应该怎么做?在开始阶段,我不需要了解每个细节,但是如果我能对该学科的轮廓有大致的了解,那么将来我就能发现更多细节。3.基础知识 ——不止在开始阶段,要想使用一项特定的技术,我需要了解基本的用户案例和最常见的问题,也需要知道自己学的哪20%就能满足80%的日常应用。十步学习法了解全局确定范围定义目标寻找资源创建学习计划筛选资源

2020-07-20 20:55:28

架构师之路精选目录

2017年精选80篇2018年精选100篇2019年精选120篇架构实践,1分钟解惑,都在这里

2020-07-13 21:45:15

Failed to execute goal org.apache.maven.plugins:maven-gpg-plugin:1.6:sign

mac 下发布报错:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-gpg-plugin:1.6:sign (sign-artifacts) on project layering-cache: Exit code: 2 -> [Help 1]org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.m

2020-07-13 17:44:12

Spring clould 调优

转至:https://blog.csdn.net/w1014074794/article/details/88571880本文针对公司微服务并发的实际场景以及网上调研的资料,记录影响微服务并发的各种优化配置。先说明线上调用的实际例子:通过zuul网关 调用服务A的接口,服务A的接口里面通过Feign调用服务B的接口。问题:通过JMeter并发测试发现,并发数竟然没有达到30次/s,即QPS不到30。这显然不合理。备注:TPS(吞吐量) 系统在单位时间内处理请求的数量。QPS(每秒查询率) 每

2020-06-26 10:52:49

MAC安装和卸载redis

安装卸载查询可安装的版本查询版本号brew search redis:olafwang@OLAFWANG-MB0 etc % brew search redis ==> Formulaehiredis redis ✔ redis-leveldb redis@3.2 redis@4.0==> Caskshomebrew/cask/another-redis-desktop-managerhomebrew/cask/red

2020-06-20 18:47:41

JMeter分布式测试

注意事项系统上的防火墙已关闭或打开了正确的端口。所有客户端都在同一子网中。如果使用192.xxx或10.xxx IP地址,则服务器位于同一子网中。如果服务器不使用192.xx或10.xx IP地址,则应该没有任何问题。确保JMeter可以访问服务器。确保在所有系统上使用相同版本的JMeter和Java。混合版本将无法正常工作。您已经为RMI设置了SSL或将其禁用。原理图Master:Jmeter主控机器Slaves:发起压测的机器Target:被压测的机器(目

2020-06-19 17:12:55

上传文件到Linux服务器

直接在本机打开控制台,输入如下命令即可:scp root@10.132.23.6:/root/jmeter/lives/live.jtl ~/Downloads //下载文件scp live.jmx root@10.132.23.6:/root/jmeter/lives //上传文件scp -r root@10.132.23.6:/home/test . //下载目录scp -r test root@10.132.23.6:/home //上传目录mac上还可以直接使用File

2020-06-17 11:28:37

Mac 锁屏防止断网、睡眠、注销登录

打开系统偏好设置点击节能点击左下角的锁解锁,然后去掉这两项前面的钩『如果可能,使硬盘进入睡眠』和『唤醒以供WI-FI网络访问过』。系统偏好设置-安全性与隐私-通用-高级,把“在XX分钟不活跃后注销”的勾去掉就可以了...

2020-06-16 10:21:27

网路编程基础

网路模型OSI七层模型采用了分层的结构化技术,共分七层:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。TCP/IP协议将七层网络模型改为了四层,分别是:应用层、传输层、网络层、链路层。常见协议TCPTCP 是面向连接的、可靠的流协议,通过三次握手建立连接,通讯完成时通过四次分手来拆除连接。由于TCP是面向连接的所以只能用于端到端的通讯。TCP/IP中的数据包在每个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层必要的信息,如发送的目标地址以及协议相关信息。通

2020-06-13 16:17:59

【MacOS】brew: command not found

老方式这种方式已经废弃了:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"新方式在线安转/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"本地安装如果上面命令报错:curl: (7) Failed t

2020-06-02 15:05:57

Nginx+keepalived实现高可用

Nginx一般用来做服务网关,虽然Nginx的性能非常高,但是还是有宕机的风险,所以Nginx的高可用也是我们需要考虑的。常见的Nginx的高可用方案是使用keepalived浮动IP技术来实现。通过keepalived虚拟一个vip出来作为虚拟网关,所有请求都先通过虚拟网关找到真正网关,再往下走。当主宕机了后,从会接过主的责任对外提供服务,当主复活后从又会将权限还给主,如图:keepalived主要功能管理LVS负载均衡软件实现LVS集群节点的健康检查作为系统网络服务的高可用性(failov

2020-05-15 17:02:53

Nginx的常见应用

跨域处理跨域其实是浏览器对网站的一种保护机制,具体原理是,浏览器不允许通过ajax的方式去加载其他域名下的资源。跨域主要有两种解决方案:通过jsonp的方式,但是这种方式需要前后端公共协作完成。通过cors的方式来解决,这种方式w3c组织制定的一种解决方案。Nginx主要是通过cors方式来解决的,主要原理是:当发起非本域名下的ajax请求时,浏览器会先询问服务器是否允许该域名下的ajax请求,如果浏览器返回可以,那么这次请求就是被允许的,不会被拦截。nginx跨域配置server {

2020-05-15 15:14:59

Nginx基础

Nginx是俄罗斯人编写的一款高性能的HTTP和反向代理服务器,在高连接并发的情况下,它能够支持高达50000个并发连接数的响应,但是内存、CPU等系统资源消耗却很低,运行很稳定。Nginx的优势为什么选择Nginx?因为它具有以下特点:速度快,先天的事件驱动型设计、全异步的网络I/O处理机制、极少的进程间切换。扩展性强,它支持很多第三方模块。可靠性好,Nginx是基于多进程设计,每个worker进程相对独立,master进程在1个worker进程出错时可以快速“拉起”新的worker子进程提供

2020-05-11 10:40:20

MySQL性能优化

MySQL性能优化主要考虑几个方面:CPU、内存、硬盘、操作系统、文件系统等。CPU数据库的应用类型一般可以分为OLTP(OnlineTransaction Processing,在线事务处理)和OLAP(Online Analytical Processing,在线分析处理。OLTP主要用来解决事务性应用,如银行交易,在线商品交易等,所以对CPU需求较低;OLAP一般需要执行复杂的SQL语...

2020-05-07 19:56:41

MySQL高可用化

服务在运行过程中存在很多意外情况,如:如服务器宕机、磁盘损坏、RAID卡损坏等。如何保证数据库在服务发生意外的情况下数据不丢失呢?服务还能继续提供服务呢?我们一般通过备份的方式来解决数据丢失问题,通过复制来解决MySQL的高可用问题。备份备份的方法不同可以将备份分为:Hot Backup(热备,在线备份):在数据运行过程中进行备份,对数据库操作没有影响。Cold Backup(冷备,离...

2020-05-07 14:42:22

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到王者
    签到王者
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 阅读者勋章Lv3
    阅读者勋章Lv3
    授予在CSDN APP累计阅读博文达到30天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力探索
    原力探索
    参与《原力计划【第二季】——打卡挑战》的文章入选【每日精选】的博主将会获得此勋章。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 分享王者
    分享王者
    成功上传51个资源即可获取