在 Rabbit 中提取、转换、加载?
Extract, transform, load within Rabbit?
出于性能原因,我经常做的一件事是将 SQL 数据转换为缓存和基于文档的存储。我不希望我的前端应用程序访问我的数据库,所以我有高速缓存解决方案,以及高效的 Solr 和其他解决方案。
我使用 RabbitMQ 作为中央通信枢纽来实现此 ETL 流程,如下所示:后端应用程序向 Rabbit 发送一条消息,其中包含新数据或对现有数据所做的更改。然后我有一个 node.js 脚本,它使用队列,生成小批量数据并填充所有必要的系统:Redis、Mongo、Solr 等
但是,我想知道是否有更好的方法来做到这一点。也许 Rabbit 有某种脚本支持来为队列创建 erlang 逻辑?
However, i'm wondering if there's a better way of doing this. Maybe Rabbit has some kind of scripting support to create erlang logic for queues?
事实并非如此。它只是一个消息队列系统。
我个人觉得你现在的设计听起来不错。
我唯一想知道的是,您的每个目标系统是否都有自己的队列。这样,其中任何一个都可以下降而不影响其他人。
我可能会这样做:
- 后端产生数据报文通过RMQ发送
- RMQ 配置了一个扇出交换器,每个目标系统有一个绑定队列
- 每个系统在自己的队列中接收消息
否则,你的想法对我来说是对的!
出于性能原因,我经常做的一件事是将 SQL 数据转换为缓存和基于文档的存储。我不希望我的前端应用程序访问我的数据库,所以我有高速缓存解决方案,以及高效的 Solr 和其他解决方案。
我使用 RabbitMQ 作为中央通信枢纽来实现此 ETL 流程,如下所示:后端应用程序向 Rabbit 发送一条消息,其中包含新数据或对现有数据所做的更改。然后我有一个 node.js 脚本,它使用队列,生成小批量数据并填充所有必要的系统:Redis、Mongo、Solr 等
但是,我想知道是否有更好的方法来做到这一点。也许 Rabbit 有某种脚本支持来为队列创建 erlang 逻辑?
However, i'm wondering if there's a better way of doing this. Maybe Rabbit has some kind of scripting support to create erlang logic for queues?
事实并非如此。它只是一个消息队列系统。
我个人觉得你现在的设计听起来不错。
我唯一想知道的是,您的每个目标系统是否都有自己的队列。这样,其中任何一个都可以下降而不影响其他人。
我可能会这样做:
- 后端产生数据报文通过RMQ发送
- RMQ 配置了一个扇出交换器,每个目标系统有一个绑定队列
- 每个系统在自己的队列中接收消息
否则,你的想法对我来说是对的!