快乐的程序员
03
26
微服务:可用性总结 微服务:可用性总结
0. 写在前面前面写了一系列文章 Go微服务: 隔离设计 微服务限流之一:令牌桶算法 微服务限流之二:令牌桶算法源码解析 微服务限流之三:漏桶算法 微服务限流之四:自适应限流 微服务限流之五:熔断 本文将做一个总结 1. 限流对比
2024-03-26
26
微服务限流之五:熔断 微服务限流之五:熔断
0. 写在前面无论是令牌桶, 漏桶还是 自适应限流的方法,总的来说都是服务端的单机限流方式。虽然服务端限流虽然可以帮助我们抗住一定的压力,但是拒绝请求毕竟还是有成本的。如果我们的本来流量可以支撑 1w rps,加了限流可以支撑在 10w r
2024-03-26
26
微服务限流之四:自适应限流 微服务限流之四:自适应限流
0. 写在前面令牌桶与 漏桶 两种算法最大的一个问题就是他们都属于需要提前设置阈值的算法,基于 QPS 进行限流的时候最麻烦的就是这个阈值应该怎么设定。一般来说我们可以通过压测来决定这个阈值。但是也会存在问题 如果每个系统上线前都要经过很
2024-03-26
26
微服务限流之三:漏桶算法 微服务限流之三:漏桶算法
0. 写在前面前面两篇文章微服务限流之一:令牌桶算法和微服务限流之二:令牌桶算法源码解析分别介绍了令牌桶算法的用法和原理,本文将介绍另外一种流行的限流算法:漏桶算法。 1. 原理漏桶算法(Leaky Bucket) 是网络世界中 流量整形(
2024-03-26
26
26
26
Go微服务: 隔离设计 Go微服务: 隔离设计
0. 写在前面隔离设计源于船舶行业,一般而言无论大船还是小船,都会有一些隔板,将船分为不同的空间,这样如果有船舱漏水一般只会影响这一小块空间,不至于把整个船都给搞沉了。 同样我们的软件服务也是一个道理,我们要尽量避免出现一个问题就把这个业务
2024-03-26
25
栈在哪些场景用到过 栈在哪些场景用到过
写在前面在面试过程中被问到:在写代码或者项目开发过程中,栈在什么场景出现过? 作者只回答了:二叉树的后续遍历中用到了。go defer居然没有回答上,还有函数调用、递归也没有回答上,太弱了!!!今天总结一下。 栈的使用场景函数调用栈在编程语
2024-03-25
24
算法题:异或运算 算法题:异或运算
写在前面今天做了leetcode上一个简单题,看了挺久没做出来。感兴趣的可以先试试题目再往下看。只出现一次的数字 思路这题拿到手,第一反应是用hash表,没有思考细节,只是觉得hash表肯定是可以搞定的,但是空间复杂度是 O(n),不满足题
2024-03-24
24
22
22
四种实现middleware的方式 四种实现middleware的方式
写在前面middleware是一般框架里面常用的形式,比如web框架、rpc框架,通过middleware在流量入口和出口做一些公共事情,包括鉴权、日志、埋点、统计、限流、参数处理、异常处理等等。 在工作中经常会用到,在阅读web框架(gi
2024-03-22
6 / 23