包含标签 hystrix-go 的文章

hystrix-go 之流量控制实现

在分析 hystrix-go 主流程中,我们知道只有当获取令牌成功后才能继续往下正常执行用户自定义的闭包函数,否则还是会进行降级处理。 1 cmd.ticket = <-circuit.executorPool.Tickets: // 获取令牌成功 今天我们分析下,hystrix-go 是如何进行流量控制的。 源码分析……

阅读全文

hystrix-go 之统计控制器实现

上一篇 我们分析断路器时有用到 metricExchange,但并未展开详细介绍,本篇我们主要介绍它以及实现原理。 metricExchange 主要是用来收集处理上报的所有事件,并对事件进行汇总处理,最后根据计算出来的一段时间内的错……

阅读全文

hystrix-go 之断路器实现

上一篇我们分析 hystrix-go 主流程时知道,对于每个 command 都有一个对应的断路器,而且在 GoC 中首先要通过 GetCircuit(name) 获取断路器对象,该方法会在断路器不存在时新建一个,并赋值给 cmd.circuit。 回顾下 command 结构体: 1 2 3 4 5 type command struct {……

阅读全文

hystrix-go 之核心流程实现

前言 上一篇文章我们介绍了服务保护熔断器 sentinel-go 如何使用,今天介绍另外一款优秀的集限流、熔断、降级于一身的组件 hystrix-go。hystrix-go 是著名开源库 hystrix 的 Go 语言简化版本,实现了核心功能,源码实现……

阅读全文