一直想引入 hystrix 实现熔断机制,无奈 hystrix 稍微过重,且无法对接 prometheus,而我们目前的监控系统技术栈用到了 prometheus。
于是尝试基于 gobreaker 与 prometheus 实现了类似 hystrix 的熔断机制。
譬如我们调用 github 的 api,可以这样:
// func Do(name string, run runFunc, fall fallbackFunc) error
err := gobreak.Do("github", func() error {
// call github api
}, nil)
同时,通过 prometheus 暴露出的 metrics 接口,可以实现相关指标的监控,从而画出类似 hystrix-dashboard 的监控图,并加上告警。
链接如下: https://github.com/hnlq715/gobreak
希望有用 :)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.