Golang Go语言重写了熔断器,然后开源了,大家一起来完善吧
项目地址: https://github.com/jiajunhuang/guard
目前完成了基本的功能,包括:
- 代理
- 统计
- 熔断
- 负载均衡
TODO 里还有很多功能完成,现有的代码覆盖率也可以再提升一些,希望大家一起来完善!
目前的性能大约在 Nginx 的一半左右。目前我正在努力调优 :)
Golang Go语言重写了熔断器,然后开源了,大家一起来完善吧
更多关于Golang Go语言重写了熔断器,然后开源了,大家一起来完善吧的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
😋
欢迎大家一起完善💪
我看 TODO 里面负载均衡算法都还没勾选是还没做好还是该更新下 README 了?
目前还只实现了 weighted round robin。random 和普通的 round robin 还没做呢,昨天忙着分析瓶颈去了。如果有兴趣的话,可以提个 PR :)
已 star :-)
不过用 go 做 proxy 的话,性能还是不够啊。。。而且稳定性有待锤炼
我之前写了个熔断器的库,感觉作为一个中间件用在业务逻辑入口还是蛮好的
类似 Hystrix,基于 prometheus 提供监控面板
https://github.com/hnlq715/gobreak
是的。其实目前性能瓶颈在于 net.http
里自带的 proxy。创建了太多的对象。其他的地方性能虽然还可以优化,但是对整体提升不是特别大。
另外关于稳定性方面,从测试来看,Go 的 proxy 稳定性似乎好于 Nginx 哟
这个结果只能说明压测场景有点问题吧 :-)
存在这种可能性。因为没有足够强大的机器来开多虚拟机测试。只在自己的笔记本上做了简单地测试。
另外 README 已经更新了。刚才把随机和朴素的轮询实现了
要性能得用 C 写吧?虽然我不熟悉 go 语言
嗯,Go 带来了开发效率,自然就是牺牲了一部分运行效率。不过我认为仅仅达到 Nginx 的一半是不够的。
还是有很多地方可以优化的。
Go 一个周末可以搞定熔断的大部分功能,用 C 从头来不知道要多久呢
手一抖,贡献了第一颗 star,快夸我
另外我个人的一个小观点,任何成熟的项目都是建立在足够填坑时间的基础之上,基本和技术和语言无关,希望你能坚持至少优化一年以上
是的,确实需要很多时间。目前的想法是优化到 Nginx 的 80%左右。此后的话,看项目情况,要是有人用的话,肯定会继续搞下去的
针对您提到的“Golang Go语言重写了熔断器,然后开源了”的帖子,作为IT营GO语言方面的专家,我认为这是一个非常有价值的贡献。以下是我的一些专业回复和建议:
- 开源精神:开源项目能够集合众多开发者的智慧和力量,共同推动技术的进步。您选择将重写的熔断器开源,无疑会吸引更多志同道合的开发者参与进来,共同完善和优化这一工具。
- 熔断器的重要性:熔断器是微服务架构中不可或缺的一部分,它能够在下游服务出现异常时,及时切断请求,防止雪崩效应的发生。因此,一个稳定、高效的熔断器对于保障系统的稳定性和可靠性至关重要。
- 参与和完善:作为开源项目,我们鼓励更多的开发者参与进来,共同完善熔断器的功能和性能。您可以考虑在项目的README文件中列出一些待解决的问题或者改进点,引导开发者有针对性地参与贡献。
- 持续集成和测试:为了确保熔断器的稳定性和可靠性,建议引入持续集成和测试机制。通过自动化测试,可以及时发现并修复潜在的问题,提高代码的质量和可靠性。
总之,您的开源行为非常值得赞赏,期待这一项目能够吸引更多的开发者参与进来,共同打造一个优秀的熔断器工具。