nodejs+mongodb一般如何应对类似传统数据库 事务 的需求啊?
发布于 10 年前 作者 shinka 10019 次浏览 最后一次编辑是 8 年前

愁人啊,最近需求方要求支持事务,Mongo不支持(支持得不太好),程序写严谨点倒是能防止程序上出现的问题,类似事务那样处理。但是突然宕机或者网络中断啥的应该就处理不了了把。 不知道各位有没有什么方案。

17 回复

事务,上Oracle吧:)

顶一个,同问

NoSQL普遍都不支持事务,你可以自己在业务层实现事务,搜索:mongodb 两阶段提交 不过自己实现太复杂了很容易出错,实在需要事务还是用关系数据库吧

@ravenwang 哦哦 看来还是支持一下其他数据库比较好呢

写check和repaire脚本,一切搞定

@ngot 哦? 大概是什么原理啊? 记录数据库操作,然后万一发生错误自动调用repair脚本?

@shinka check脚本就是定义好数据结构正确的格式,定期去检查数据库数据是否结构完好。如果数据有误,就用修复脚本去修复。没有事务,就这么干嘛吧。

@ngot 哦 是个解决方案。不过定期处理的话 实时性就差点,而且检查脚本应该工作量还挺大的

@shinka 脚本本身倒是不复杂。不过要处理的数据量不了。不过这里面也有很多门道。可以优化的。

@ngot 对啊 感觉要定时check数据正不正确 如果表之间关系比较复杂 脚本也就复杂了 不知道oracle的node驱动咋样

@ravenwang 自己的实现可以做到很健壮么? log必写,然后对比log和数据库?

你们可以看看这个站点的信息, http://www.tokutek.com/ 在github上也可以找到他们的代码, 可以用来代替mongodb, 可以支持事务 现有的 mongodb对于批量插入是不支持事务的, tokudb提供的mongodb引擎可以支持,而且官网上说是存储效率和速度都提升了百分之九十多

@haohello 谢谢 貌似不错啊 我仔细看一下

@haohello 3Q! 前两天也看到了 确实值得试试啊

@haohello TokuMX是个好东西

回到顶部