我正在进行一个项目,我们在 Grails 中创建了用于处理广告活动的后端,我正在尝试找出创建广告服务器部分的最佳方法。即将向最终用户(浏览器)提供实际广告的部分。
在我最近的三个项目中,我一直在使用 Grails,我非常喜欢它,因为它的快速开发和 Java 社区通过 Spring 和 Hibernate 提供的良好支持。但是,Grails 仍然存在一些性能问题,我不确定它是否是完成这项任务的正确选择。我一直在寻找其他选择,但无法决定走哪条路。服务器需要能够每秒处理大约几千个请求,并且需要强大。DB结构如下(简化):
Ad ==> site, position, percent of view (percent of time the ad is shown)
所以基本上,广告服务器需要从数据库中获取特定站点和位置的必要行,并选择要显示的广告(取决于百分比)。
下面是我正在考虑的不同选择(所有这些都应该有多个实例并使用负载均衡器)。
- Grails连同Redis和 MongoDB——我还没有找到任何关于这三者的性能报告。在我之前的项目中,我们发现 Grails 存在很多性能问题,其中很多问题我们以不同的方式处理,但对于广告服务器,我不确定它是否能解决问题。
- Node.js和键值存储 - Node.js 据说非常快,但在这个阶段实施它会有点冒险,因为它还没有稳定。
- Ruby on Rails 和键值存储 - 还没有做过任何 Ruby on Rails 开发,但从我在谷歌搜索中收集到的信息来看,Ruby on Rails 的性能比 Grails 好得多。
- 带有键值存储的PHP - 也没有做过任何 PHP 编程,但是有很多使用 PHP 的大型站点具有良好的性能,因此应该将其视为一个不错的选择。
任何建议或建议都受到热烈欢迎。