我有一个具有 2 个不同层的应用程序:
第一层:ruby tcp 服务器接收大量数据
这是一个运行 EvenMachine 的非常轻量级的应用程序,它只接收数据,对它们进行一些计算,然后通过 http 将它们发送到第二层第二层:提供用户数据可视化的rails应用程序
我使用thin作为应用程序服务器这一层从第一层接收信息并将它们存储在数据库中。该层是用户前端。模型和迁移在此处定义。
我没有合并 2 层,因为我需要一个 tcp(不是 http 服务器)作为入口点。
我想知道什么是最有效和可扩展的方法:
一旦格式正确,通过http将数据从第一层发送到第二层
使用ActiveRecord或pg gem直接将数据放在第一层的数据库中。每次 EventMachine 收到一个请求,它都会将它传递给 ActiveRecord,它只需要在数据库中写入一条记录。如果收到大量请求,是否存在阻塞 IO 的风险?
在 node.js 上重写第一层并使用 node-postgres 来确保非阻塞 IO。
确保可扩展性和非阻塞 IO 的最佳方法是什么?