我正处于创建客户支持系统的项目的开始阶段。对于这个系统,我看了Meteor.js,看起来非常有趣。问题是我们想要使用Cassandra构建我们系统的其余部分。
所以我的问题如下; meteor.js也可以和Cassandra一起使用而不是MongoDB吗?是否有任何现成的代码片段,或者我们是否需要自己编写大量的兼容性代码?
答案 0 :(得分:10)
你可以使用Meteor所需的任何数据库,但你将丢失框架的seven key benefits中的三个:
数据库无处不在。使用相同的透明API访问您的 来自客户端或服务器的数据库。
延迟补偿。在客户端上,使用预取和模型 模拟使它看起来像你有零延迟连接 数据库。
完全堆栈反应性。将实时设为默认值。所有图层,来自 数据库到模板,应该使事件驱动的接口可用。
除了MongoDB之外,我还使用Redis和Postgres与Meteor。我使用Meteor Methods公开客户端上的函数来创建,读取,更新和删除其他数据库中的记录。
Redis和其他数据库的官方支持位于Meteor roadmap,目前针对1.1版。 Meteor目前的版本为0.7.0.1,所以很可能不会很快发生。
如果你想将另一个像Cassandra这样的数据存储与Meteor更紧密地集成,你可能会从Meteor的mongo-livedata模块开始。
答案 1 :(得分:2)
有一些尝试将Meteor与其他数据库一起使用,请参阅meteor-sql以了解我所知道的最有趣的内容。通常,为数据库创建一个包含查询和负责反应的包装器并不困难。这是一项很大的工作,但相当容易。
当您还想将数据库用于用户帐户时,难度会显着上升。 Meteor帐户系统大量使用Mongo,并且与平台的其余部分混合得非常多,以至于很难替换它。因此,您需要一种解决方法:将Mongo查询转换为Cassandra查询的低级包装器,或双DB(用户的Mongo,数据的Cassandra)或类似的东西。
答案 2 :(得分:0)
这是在征求意见而不是任何真正的问题所以我希望你的问题可以消除,因为非常偏离主题。
如果你有真的查看Meteor.js那么你会意识到除了服务器端实现之外,还有很多关于客户端代码的工作要做到模拟与MongoDB的服务器端交互,以便将客户端和服务器模式保持在程序员熟悉的模型下。而且它雄心勃勃,远非完美,但却是一个非常好的节目。
那种射击,“我想在脚下使用Cassandra作为后端”。
所有人都说,随意 fork 并创建自己的Cassandra版本的Meteor。真的,试一试,也许你会从其他感兴趣的人那里得到一些牵引力。