社区
Web 开发
帖子详情
关于拆分子系统
aCpr_d
2016-10-27 02:30:39
现在我们系统整个数据库用的mongodb,基本的事物也没有!现在系统小,业务简单,考虑到有些模块(比如书订单之类的)需要事物支持,想拆分系统,想请教下怎么拆分对现有的改动不大。
...全文
244
3
打赏
收藏
关于拆分子系统
现在我们系统整个数据库用的mongodb,基本的事物也没有!现在系统小,业务简单,考虑到有些模块(比如书订单之类的)需要事物支持,想拆分系统,想请教下怎么拆分对现有的改动不大。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
attilax
2016-10-28
打赏
举报
回复
Atitit 数据库事务实现原理 1.1.自己在程序中实现事务操作。 如果只是需要事务的话,你自己给mongo操作加上事务功能就可以啦。。数据库事务只不过是他自己实现了而已。。如果数据库不支持事务,就要你在代码里面实现事务就可以了。。 最简单方便的就是使用日志方式来做事务就可以了。。 比如插入俩个数据。每执行一个sql,就生成一个undo日志即可。。 Undo日志表如下字段(事务id,表格名称,操作【insert,update,delete】,原记录id,新记录id) 如果后面的sql失败了。那么根据undo日志,撤销掉前面执行的sql数据即可。 主要流程如下。根据事务id,得到前几个sql语句新增的记录id,然后删除这几个id的数据即可。。 如果提交成功,那么可以删除掉此事务id对应的undo日志即可。。 1.2.事务有两种方式达到这样的目的: Shadow copies/pages(影像拷贝/影像页面): 每ransaction log (事务日志) Shadow copies/pages(影像拷贝/影像页面): 每个事务拷贝一份自己的数据库(或者是数据库的一部分),在这份拷贝上操作。出错了,就删除这份拷贝。成功后,使用文件系统的功能 做一下文件交换,替换掉旧的数据。 Transaction log (事务日志):Transaction log是这样一块存储区域–在事务将数据写到磁盘之前先将信息写到Transaction log文件。这样,如果服务发生崩溃、事务被取消;数据库清楚如果根据日志删除数据,或者继续完成未完成的操作。 1.3.innodb通过undo log和redo log来实现。 事务中,每当执行一条SQL语句对数据产生了影响,就会记录下来与之相反的操作到undo log(撤销日志)中,例如,更新会记录之前的状态,删除会形成insert,添加会形成delete,一旦事务被回滚,则执行undo log中记录的操作,来完成恢复到之前的状态。这里是个 逻辑恢复哦! 同时,每当执行一条事务中的SQL,会将操作记录到redo log中,此时事务一旦被提交,就将该redolog中的操作,持久化到磁盘上,数据就持久的记录下来了(ACID的D)。 PS:还有,undolog才是原子性的关键 2.隔离级别的概念 关系型数据库工作原理-事务管理(二) - 数据库其他综合 - 红黑联盟.html 作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾提拉(艾龙), EMAIL:1466519819@qq.com 转载请注明来源: http://blog.csdn.net/attilax Atiend
方丈的寺院
2016-10-27
打赏
举报
回复
mongo本身不支持事务,可以通过嵌套文档来实现原子操作。但是你提到有订单这种业务,涉及到支付,需要强事务来保证。可以考虑把订单部分存入到关系型数据库
bcsflilong
2016-10-27
打赏
举报
回复
你加入spring 用spring XML形式批量管理事务。
子系统
拆分
的一点总结
系统
拆分
的一些小总结
系统设计的垂直
拆分
和分平
拆分
系统设计的垂直
拆分
和分平
拆分
second60 201804201背景当一个系统/网站,刚开始的时候,所有的业务模块和数据都是放在一起的,只有小量的人来开发和维护;但当系统/网站不断丰富功能和业务的时候,系统将会变的越来越庞大,也会逐渐
拆分
成各个
子系统
来支撑,这此就需要把系统
拆分
,把原来强耦合的系统,
拆分
成弱耦合的多个
子系统
,数据表也因为数据量大,需要按业务垂直
拆分
和按大小来水平
拆分
。 2 系统的拆...
个人对系统
拆分
的理解
在本人现在的公司和本人工作过的上一家公司,本人有幸参与并实施了公司业务系统的架构
拆分
,现将之前的工作总结下。 1,为什么要进行系统
拆分
首先我们需要想想,到底什么样的系统需要进行
拆分
?并不是所有的系统都需要进行
拆分
,
拆分
系统是一件耗时并且有风险的操作,所以再
拆分
前需要再三考虑是否真的需要
拆分
,
拆分
的好处是否大于风险。个人认为进行系统
拆分
的原因主要有以下几个方面: a,组织结构发生了变化,从最...
系统
拆分
原则
细数到今天,
拆分
系统已经断断续续进行了一个月了,希望在这里整理一下,对接下来的
拆分
工作有益。 这里记录一下在实际工作中总结的几条原则吧,主要是达到各系统间低耦合,系统内部高内聚。 1. db不能跨系统访问。自己的db自己管理,简单好维护,降低各系统间的数据耦合度。需要做成这样很多以前的联合查询都得改造。 2. 各
子系统
要封装得足够好。所有
子系统
通过自己的api项目向其它
子系统
提供数据服务,这
浅谈系统
拆分
今晚好冷啊,回去的路上,我突然想到一件关于系统
拆分
的事情。举的例子很极端,仅供参考,不一定有实际的意义 我感觉
拆分
系统,和
拆分
代码,本质上是一样的。小到一个方法,大到几个系统,都是一个从输入到输出的序列 Level 1: public void doSomething(){ System.out.println("111"); System.out.println("2
Web 开发
81,094
社区成员
341,711
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章