在 Ruby on Rails 中跟踪活动最佳实践



我想将产品或帖子视图与其他元数据一起保存在数据库中,例如谁查看了对象,推荐,时间等。

所有活动都将用于推荐引擎、更新表和更多后台工作。

主要关注的是速度,无论是用户体验还是SEO。

我有3种方法:

  1. 从数据库中读取记录,并写入活动 (2交易)。
  2. 更新视图的记录(1 个事务),而不是读取。
  3. 读取记录并将活动对象发送到 Redis 或 RabbitMQ。

我正在使用Ruby on Rails和PostgreSQL。

第一个方法比第二个方法快吗?对于小型 Web 应用程序,第三个选项是否矫枉过正?

为了提高其他可扩展性的性能,请使用选项 #3 中的 Redis 或 RabbitMQ。

应用程序大小在确定何时使用消息队列时并不重要。 相反,系统需求决定了这一点。

存储用户的视图和活动是一个很好的示例,说明何时应使用队列以保持原始 HTTP 请求的快速。

进行单个网络调用以将事件数据发布到 RabbitMQ,并根据需要拥有任意数量的使用者,以便在后台将所有事件数据记录在数据库中。

同时,用户已经很高兴地查看您的网页,而所有这些都发生在另一台服务器上,其他地方。

最新更新