项目地址: https://github.com/jiajunhuang/guard
目前完成了基本的功能,包括:
TODO 里还有很多功能完成,现有的代码覆盖率也可以再提升一些,希望大家一起来完善!
目前的性能大约在 Nginx 的一半左右。目前我正在努力调优 :)
1
Mitt 2018-01-22 01:11:20 +08:00 via iPhone
已经 star
|
3
janxin 2018-01-22 09:35:33 +08:00
我看 TODO 里面负载均衡算法都还没勾选是还没做好还是该更新下 README 了?
|
4
herozem OP @janxin 目前还只实现了 weighted round robin。random 和普通的 round robin 还没做呢,昨天忙着分析瓶颈去了。如果有兴趣的话,可以提个 PR :)
|
5
sophos 2018-01-22 10:24:41 +08:00
已 star :-)
不过用 go 做 proxy 的话,性能还是不够啊。。。而且稳定性有待锤炼 我之前写了个熔断器的库,感觉作为一个中间件用在业务逻辑入口还是蛮好的 类似 Hystrix,基于 prometheus 提供监控面板 https://github.com/hnlq715/gobreak |
6
herozem OP @sophos 是的。其实目前性能瓶颈在于 `net.http` 里自带的 proxy。创建了太多的对象。其他的地方性能虽然还可以优化,但是对整体提升不是特别大。
另外关于稳定性方面,从测试来看,Go 的 proxy 稳定性似乎好于 Nginx 哟 |
8
herozem OP |
9
boywhp 2018-01-22 13:26:36 +08:00 via Android
要性能得用 C 写吧?虽然我不熟悉 go 语言
|
10
herozem OP @boywhp 嗯,Go 带来了开发效率,自然就是牺牲了一部分运行效率。不过我认为仅仅达到 Nginx 的一半是不够的。
还是有很多地方可以优化的。 Go 一个周末可以搞定熔断的大部分功能,用 C 从头来不知道要多久呢 |
11
ylxb23 2018-01-22 14:02:40 +08:00
手一抖,贡献了第一颗 star,快夸我
|