关于spring事务跟tomcat个数的关系

weixin_42810606 2019-06-12 10:27:48
spring是在tomcat容器下的,如果使用了spring事务,是不是我的项目就不能同时布署在多个tomcat下?
...全文
155 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
maradona1984 2019-06-13
  • 打赏
  • 举报
回复
如果多个tomcat只是做集群,那用spring事务当然可以,因为不存在分布式事务 如果是多个tomcat存在RPC调用的话,那就是分布式服务,可能存在分布式事务 如何判断是否存在分布式事务,只需要看同一个请求,是不是经过多个jvm协作完成
weixin_42810606 2019-06-13
  • 打赏
  • 举报
回复
我的问题就是2#说的,也就是说spring事务不能用于分布式?这样理解对吧?如果分布式方式,那么得另想办法处理整体的事务处理
从Instanceof 2019-06-13
  • 打赏
  • 举报
回复
如果你要使用分布式,也可以采用已有的分布式框架来部署你的项目啊
weixin_42810606 2019-06-13
  • 打赏
  • 举报
回复
就是有多台服务器+多个tomcat,通过nginx负载转发tomcat的,这种方式应该算是分布式了
k10509806 2019-06-13
  • 打赏
  • 举报
回复
判断是否存在分布式事务,只需要看同一个请求,是不是经过多个jvm协作完成-- 赞同
Enchanter, 2019-06-12
  • 打赏
  • 举报
回复
Spring并不直接管理事务,而是提供了多种事务管理器,他们将事务管理的职责委托给Hibernate或者JTA等持久化机制所提供的相关平台框架的事务来实现。Spring事务管理的一个优点就是为不同的事务API提供一致的编程模型,如JTA、JDBC、Hibernate、JPA。所以你分布式后,单个服务得事物管理是没什么问题得,但是,整体得事物性你考虑过没有?你分布式了后,多个服务如果在同一时间操作了同一张表得查询和插入,光靠数据库的机制是不够的,大部分的数据库的默认事务机制是读已提交,会存在读取旧数据的情况,像Mysql数据库默认机制是可重复读,但是这样也有可能出现幻读的问题。最好还是要有一套自己的逻辑处理方案,我给你想的解决方法是:1.读写分离。2.所有的对数据库操作都进行队列处理,先进先出(查询除外)。3.利用缓存,例如redis,根据自己的项目去判断,哪些需要放到缓存上,注意数据库和缓存之间的消息同步就行了。如果你不动数据同步的话,可以问我,我再给你讲解
专注写bug 2019-06-12
  • 打赏
  • 举报
回复
分布式分为硬件分布和软件分布,事务与部署多个没有太大的关联,

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧