java中高可用

高可用:表示一个系统在大部分时间里都是可用的,即使发生什么故障时,服务任然是可用的。

限流:对请求的速率进行限制,避免瞬时的大量请求击垮系统。
常见限流算法:

固定窗口计算器算法:固定窗口就是就是时间窗口,规定我们单位时间请求数量。采用计数器count初始化为0,在一分钟内请求次数超过设定的某个值,后续请求会被拒绝。缺点是无法保证限流速率,因此无法保证激增的流量,如前0.9s没有请求访问,最后0.1s大量请求访问就会处理不完,系统会被击垮。

滑动窗口计算器算法:将时间按比例分片,如接口限流一分钟只能处理60次请求,则每秒钟只能处理小于60次(请求)/60(窗口数)请求,如果当前窗口的请求计数总和超过了限制的数量的话就不再处理其他请求。

漏桶算法:将处理请求比如漏桶按照一定速率漏水,如果漏桶已经满了,则丢弃该请求。可以以队列形式实现。

令牌桶算法:请求在处理之前需要拿到一个令牌,请求完成之后将这个令牌丢弃删除。根据限流大小按一定速率向桶里添加令牌。如果桶装满了,就不能继续往里面继续添加令牌了。

分布式限流常用的方案:
1、借用中间件限流:可以借助Sentinel或者使用redis来限流
2、网关层限流:通常网关层也需要借助到中间件,就比如Spring Cloud Gateway 的分布式限流实现RedisRateLimiter就是基于 Redis+Lua 来实现的,再比如 Spring Cloud Gateway 还可以整合 Sentinel 来做限流。

灾备 = 容灾 + 备份
备份:将系统产生的重要数据备份
容灾:在异地建立两个完全相同的系统。当某个地方的系统突然挂掉,整个应用系统可以切换到另一个,这样系统就可以正常提供服务了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值