如何将meteor连接到现有的后端?

时间:2013-11-10 18:28:45

标签: mongodb meteor

我最近发现了Meteor,我真的很喜欢它为编写新应用程序带来的简单性。我的问题是:你如何将它连接到现有的后端?我们有大量现有的Clojure代码,也与MongoDB一起运行。我想做的是使用Meteor构建我的应用程序的前端。我想我可以将我的Meteor应用程序直接连接到后端的MongoDB实例,但这似乎不是一个好习惯...或者是它?

我想到的另一个选择是从webapp或Clojure代码访问数据库,并使用队列机制或套接字在两者之间创建单独的通信方式。任何有关文档的提示或指针都会有所帮助!

2 个答案:

答案 0 :(得分:4)

查看Meteor的环境变量设置。通过设置这些变量,您可以轻松定义外部MongoDB实例。特别是它将是

$export MONGO_URL="mongodb://yourmongodbserver/your-db"

对于这个特定主题https://eventedmind.com/feed/sg3ejYnmhxpBNoWan,有一个关于eventedmind.com的截屏视频,这非常资源丰富。

答案 1 :(得分:3)

关于“如何”指出它们,@ Michael的answer是现货;只需将Meteor Web服务器指向同一个MongoDB。

关于你是否应该,这取决于你的情况。让一切都运行在同一个数据库中当然可以简化事情。

拥有单独的dbs可能会减少db层的负载,因为您可以有选择地选择在clojure和Meteor dbs之间复制哪些写入/更新。

任何一种方法的一个问题是变更通知的速度。目前,Meteor服务器每隔10秒轮询数据库以识别更改。令人高兴的是,一旦oplog分支合并到主服务器,它将大大提高数据库中外部更改(而不是直接通过Meteor服务器)在Meteor客户端中反映的速度。 oplog支持将使Meteor服务器能够模拟副本集实例,拖尾oplog,这意味着几乎即时通知db更改。

将队列用作中间件层会增加复杂性并增加另一个故障点。它还会增加通知的延迟。但是,这些问题可以减轻,并且未来可能还有其他基础架构可以从这样的中间件队列中受益。例如,其他感兴趣的系统可以向队列注册以接收更改通知,而无需查询或需要了解您的数据库。您还可以单独扩展MongoDB实例并调整队列以确定“最终”保证中“最终”的含义。

我认为要问的问题是:

  • clojure数据集和Meteor数据集之间有多少重叠
  • 您需要多快才能在两个
  • 之间反映出更改
  • 在您成长的过程中,中间件队列会在其他情况下有用

关于可能的队列技术,我听说RabbitMQ非常好。 Clojure NYC聚会的Oct. 2013 talk包括由于SQS的延迟问题而从Amazon SQS切换到RabbitMQ的描述,并且传闻RabbitMQ对他们来说是坚如磐石的。