加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

使用Go处理每分钟百万请求

发布时间:2019-07-05 20:53:22 所属栏目:建站 来源:MarcioCastilho
导读:这篇文章在medium上很火,作者以现实案例来说明,讲得很好。 我们常常传闻行使Go的goroutine和channel很轻易实现高并发,那是不是所有代码都放在goroutine中运行就可以实现高并发措施了呢?很显然并不是。这篇文章将教各人怎样一步一步写出一个简朴的, 高

请留意,我们实例化了最大数目的worker,并将其生涯到worker池中(就是上面的 WorkerPoolChannel)。因为我们已经将Amazon Elasticbeanstalk用于Docker化的Go项目,而且我们始终实行遵循12要素要领来设置出产中的体系,因此我们从情形变量中读取这些值,这样我们就可以快速调解这些值以节制事变行列的数目和最大局限,而不必要从头陈设集群。

  1. var (  
  2.   MaxWorker = os.Getenv("MAX_WORKERS")  
  3.   MaxQueue  = os.Getenv("MAX_QUEUE")  

在我们宣布了这个版本之后,我们当即看到我们的全部的哀求耽误都降落到了一个很低的数字,我们处理赏罚哀求的服从大大晋升。

行使Go处理赏罚每分钟百万哀求

在我们的弹性负载平衡器完全热身之后的几分钟,我们看到我们的ElasticBeanstalk应用措施每分钟提供近100万次哀求。凡是在清晨的几个小时里,流量岑岭会高出每分钟100万个哀求。

我们陈设了新的代码,处事器的数目从100台镌汰到约莫20台。

行使Go处理赏罚每分钟百万哀求

在恰内地设置了集群和自动缩放配置往后,我们在天生情形用4台EC2 c4就能完成事变了。假如CPU在持续5分钟内高出90%,弹性自动缩放体系就自动扩容一个新的实例。

行使Go处理赏罚每分钟百万哀求

结论

简朴老是我的制胜瑰宝。我们可以计一律个拥有多行列,多靠山历程和难以陈设的伟大体系,可是相反我们抉择操作Elasticbeanstalk的自动缩放和高效简朴的方法去并发,Go说话很好的提供了这些成果。

履历汇报我们,用最吻合的器材去完成事变。偶然,当你的 RubyonRails体系必要实现一个很是强盛的处理赏罚措施时,可以思量在 Ruby生态体系之外探求更简朴且更强盛的更换办理方案。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读