在Rabbit中提取,转换,加载?

时间:2015-10-29 22:36:03

标签: erlang rabbitmq etl

出于性能原因,我经常做的一件事就是将SQL数据转换为缓存和基于文档的存储。我不希望我的前端应用程序访问我的数据库,所以我有高速缓存解决方案,以及高效的Solr和其他解决方案。

我使用RabbitMQ作为实现此ETL流的中央通信中心,如下所示:后端应用程序使用新数据向Rabbit发送消息,或者对现有数据进行更改。然后我有一个node.js脚本,它使用队列,生成小批量数据并填充所有必要的系统:Redis,Mongo,Solr等。

但是,我想知道是否有更好的方法可以做到这一点。也许Rabbit有一些脚本支持来为队列创建erlang逻辑?

1 个答案:

答案 0 :(得分:2)

  

然而,我想知道是否有更好的方法来做到这一点。也许Rabbit有一些脚本支持来为队列创建erlang逻辑?

它没有。它只是一个消息排队系统。

个人而言,我认为您当前的设计听起来不错。

我唯一想知道的是,每个目标系统是否都有自己的队列。这样,他们中的任何一个都可以下降而不会影响其他人。

我可能会这样做:

  • 后端生成数据消息并通过RMQ发送
  • RMQ配置了扇出交换,每个目标系统有一个绑定队列
  • 每个系统都在其自己的队列中接收消息

否则,你听到的对我来说是对的!