用Golang处理每分钟100万份请求
我在几家不同的公司从事反垃圾邮件,防病毒和反恶意软件行业工作超过15年,现在我知道这些系统最终会因为我们每天处理的大量数据而变得复杂。 目前,我是smsjunk.com的CEO和KnowBe4的首席架构师,他们都是网络安全行业的公司。 有趣的是,在过去的10年左右,作为一名软件工程师,我参与过的所有Web后端开发大部分都是在Ruby on Rails中完成的。不要误会我的意思,我喜欢Ruby on Rails,我相信这是一个了不起的环境,但是过了一段时间,你开始用ruby的方式思考和设计系统,而且如果你忘记了软件架构的效率和简单性-可以利用多线程,并行化,快速执行和小内存开销。多年来,我是一名C / C ++,Delphi和C#开发人员,而且我刚开始意识到使用正确的工具进行工作可能会有多复杂。 我对互联网总是争论的语言和框架战争并不太感兴趣。 我相信效率,生产力和代码可维护性主要取决于您构建解决方案的简单程度。 问题 在处理我们的匿名遥测和分析系统时,我们的目标是能够处理来自数百万端点的大量POST请求。Web处理程序将收到一个JSON文档,该文档可能包含需要写入Amazon S3的多个有效内容的集合,以便我们的map-reduce系统稍后对这些数据进行操作。 传统上,我们会考虑创建一个工作层架构,利用诸如以下方面的内容: Sidekiq Resque DelayedJob