
go-zero
文章平均质量分 90
程序员贝塔
这个作者很懒,什么都没留下…
展开
-
微服务架构|go-zero 的自适应熔断器
上篇文章我们介绍了微服务的限流,详细分析了计数器限流和令牌桶限流算法,这篇文章来说说熔断。熔断和限流还不太一样,限流是控制请求速率,只要还能承受,那么都会处理,但熔断不是。在一条调用链上,如果发现某个服务异常,比如响应超时。那么调用者为了避免过多请求导致资源消耗过大,最终引发系统雪崩,会直接返回错误,而不是疯狂调用这个服务。本篇文章会介绍主流熔断器的工作原理,并且会借助 go-zero 源码,分析 googleBreaker 是如何通过滑动窗口来统计流量,并且最终执行熔断的。原创 2023-09-02 12:20:26 · 987 阅读 · 2 评论 -
go-zero 是如何实现令牌桶限流的?
上一篇文章介绍了主要有两种实现方式,分别是固定窗口和滑动窗口,并且分析了 go-zero 采用固定窗口方式实现的源码。这篇文章来介绍一下令牌桶算法,可以很好解决以上两个问题。原创 2023-08-10 20:43:38 · 628 阅读 · 0 评论 -
go-zero 是如何实现计数器限流的?
上一篇文章介绍了路由管理,这篇文章来说说限流,主要介绍计数器限流算法,具体的代码实现,我们还是来分析微服务框架 go-zero 的源码。在微服务架构中,一个服务可能需要频繁地与其他服务交互,而过多的请求可能导致性能下降或系统崩溃。为了确保系统的稳定性和高可用性,限流算法应运而生。限流算法允许在给定时间段内,对服务的请求流量进行控制和调整,以防止资源耗尽和服务过载。下面分别来介绍。原创 2023-08-09 22:28:02 · 846 阅读 · 0 评论 -
go-zero 是如何做路由管理的?
const (type (// 节点root *node重点说一下children,它是一个包含两个元素的数组,元素0存正常路由键,元素1存以开头的路由键,这些是 url 中的变量,到时候需要替换成实际值。举一个例子,有这样一个路由/api/:user,那么api会存在user会存在。// 判断路由是不是以 : 开头。原创 2023-08-09 22:00:50 · 388 阅读 · 0 评论