问题描述
我用rails做了一个网站,现在想用php再做一个不同的系统,将它们集成起来,用的数据是同一个mysql数据库的,请问数据访问会不会冲突? 问题补充:抛出异常的爱 写道
解决方案
其实“抛出异常的爱”已经把缓存的问题说清楚了,并不难理解。我另外举个我常用的例子:假设A和B系统用的都是本机的缓存,互相之间没有同步机制。这时数据库里面有银行账号,账号里面的余额可以被A和B两个系统同时访问。A系统读取到余额是100元,放到了A系统的缓存里面给需要的请求用;B系统同时也读取了余额100元放到B系统的缓存里面给需要的请求用。这时A系统的用户消费了100元,A系统将数据库里面的余额扣减为0元,A系统缓存也改为0元(没有通知B系统),这时用户同时向B系统提交了100元的消费请求,B系统从缓存中看到余额是100元,就正常扣减进行消费,但实际上这个用户只有100元,因为缓存没有和A系统同步,所以造成了错账——这对涉及到钱的系统是致命的。为了解决这种问题,我们就要设计缓存的同步机制,让某一个系统改变了数据后要通知共用数据库的其他系统,这个机制是比较麻烦的,而且比较耗费系统资源,所以我们就考虑让所有系统使用同一个缓存,避免互相之间的同步开销,这种集中式缓存的典型代表就是——Memcache
解决方案二:
可以的,只是真的动起手来会很烦的www.7kkb.cc
解决方案三:
你的两个应用的业务逻辑有没有交集 即会不会共用表,如果不会 首先考虑数据库性能的问题,两个应用的并发量是否会导致数据库资源耗尽。如果会共用表,那就要考虑脏数据、锁表、读写操作等问题 。两个应用集成的时候共享session 。weblogic集群、IIS、apache 都具备这个。如果是不同的应用服务器,实现起来会复杂些。 建议使用web service更容易些。
解决方案四:
看看大家的意见
解决方案五:
显然是可以的,但是要注意数据的并发问题,比如给数据加个乐观锁。
解决方案六:
有很多人说hibernate不适合大应用主要是不知道怎么配缓存同步.... 你这种异构系统中所有的缓存点都查一下看看会不会发生这种事.我也是支持Hibernate不适合大应用这种观点的人之一。Hibernate缓存同步并不难设置,Ehcache有明确的做法可以借鉴。关键在于它的同步机制带来的开销无法承受,试想几十台服务器互相发广播进行同步是多么大的资源损耗,这种损耗很难接受。所以大型应用还是建议使用封装后的Jdbc(例如JdbcTemplate和IBatis),集中式缓存。
解决方案七:
有很多人说hibernate不适合大应用主要是不知道怎么配缓存同步....你这种异构系统中所有的缓存点都查一下看看会不会发生这种事.
解决方案八:
我只用过hibernate对rails的orm不熟如果想要部署两个应用那么hibernate的缓存特别配置比如A应用修改了某表字段B应用的二级缓存由于没收到变更通知所以会显示出未被修改样子.有时工作流一个状态会被一个人同意二次.
解决方案九:
tryty
解决方案十:
数据库只是一个数据源,以及作为储存数据的媒介吧,当然可以共用一个数据库了,但是我感觉还是自己用自己的数据库比较好
解决方案十一:
可以共用一个数据库。两个系统同时修改同一条数据会存在一致性问题,也就是会冲突,需要用技术手段加以控制。缓存也是有问题的,由于你用的开发语言不同,恐怕也只有Memcache这种集中式的缓存可以使用。也可以从业务逻辑的设计上避免缓存的数据不一致性。总之可以这样用,但是要小心设计。
解决方案十二:
可以是可以。数据访问不会有冲突。但如果两方面同时写,可能会有些问题,注意就是了,都是可以解决的。
解决方案十三:
当然可以用同一个数据库。。。我公司总站和地区站就用的同一个数据库。。。但是如果再同用表的话就应该考虑下逻辑问题了。。。如果两边有不同步的逻辑是你就会陷入窘境。。。就像是双头蛇一个道理。。
解决方案十四:
对啊 这个市当然了 当同时访问数据库时,并不会出现问题,这就像不同的人对同一个银行帐户进行查询一样,不会出现问题的。而不可能同时进行更改和添加的啊这些方面可以看看关于数据库方面的书籍的对你很有帮助 而且比较快的掌握
解决方案十五:
对于数据库来说, 请求只按请求来分,不会按照“系统来分”能否放到一起,是根据业务决定的即使有更新,也是没有问题的,mysql本来就支持多线程更新,访问就更没问题了关键还是在业务逻辑上是否允许如果两个系统的数据本身要求同步, 那放一起还优于分开
其他方案:
数据库只是用来存储数据的,不会有什么影响的。不过你要把事务控制好,你用的一个库如果也是一个表的话,一个系统在修改数据另一个系统没同步数据。会有问题
其他方案:
如果两个一样的web 系统 集群集群需要解决的就是session同步问题如果是hibernate或是 memcache 那样有二级缓存的系统那么数据中的缓存就需要同步.
其他方案:
当然 不能同时 访问了 就如同存钱取钱一个样子
其他方案:
只查询的话,肯定不会有问题。看你那情况,访问的人也肯定不多,也就不考虑性能问题,放心大胆的使用吧
其他方案:
数据库只是提供原始的数据,不会影响带其他什么的但是一般还是不这样用,当你在一个系统中update数据后,另一个系统也会变,这样很容易出现数据异常。
其他方案:
这个跟你多开页面浏览页面有啥区别?
其他方案:
缓存....缓存.....缓存.....