JAVA 分布式事务框架Atomikos爬坑日记

由于有一天,脑子蛋疼想了下用了分布式,事务该怎么办??(真的是为了自己一个蛋疼的想法而研究学习的)

于是勤学苦问(真的是勤学苦问啊,百度了不下500页吧,终于找到好的解决方案,并且测试成功,花了我24个小时,没错,加起来就那么多小时,搞出来了),我只是做了一个简单的例子,用SSM+这个框架,SSM框架也是很简单的配置,反正主要目的不是SSM

请记住:如果你头晕了,如果你感觉自己最简单的配置都跑不通了,请站起来,看看风景,想想人生,反正做不出来又不会怎么样,怕啥,随心所欲,什么时候想做了,想搞了,再来做,不想搞了,站起来想想人生,XX的,一个代码框架,搞的那么让人头疼干嘛,XX的,你爱让我搞通就搞通,不让我搞通就算了,你XX的,我还不学你这个框架了,怎么滴,框架?来打我啊,不服来单挑,XX的(装高尚的代码???)

产品:分布式事务框架Atomikos

相关知识:自己去了解

 

进入正题:

一,由于我的maven下载不了jar包所以我就试着Build Path,结果一直报找不到jar包的错误(QAQ你XX的,别人的jar包都可以build path,你不行???(难道我的eclipes控制不了你了?))

解决方案:还能怎么解决,直接键个非maven web项目把jar把从网上扒下来放到放到,然后我的顺利保存下来了(QAQ)

二,百度搜的一篇文章的例子,https://blog.csdn.net/kisscatforever/article/details/79129055,就这家伙,贴jar包都贴不全的家伙(QAQ,还是谢谢博主,找了很多,你的满精简的,适合我看),这家伙就贴2个jar包,害得我以为2个jar包能跑?

解决方案:跟着报错一个一个jar包添上去呗,(强烈保留此网站:

http://www.java2s.com/Code/Jar/t/Downloadtransactionsjdbc380jar.htm(╭(╯^╰)╮,穷人家的孩子早保留啊))

最后需要这么几个就够了:1.atomikos-util-3.6.4.jar 2.javax-jta-1.1.0.jar 3.transactions-3.6.4.jar 4.transactions-api-3.6.4.jar 5.transactions-jdbc-3.6.4.jar 6.transactions-jdbc-3.8.0.jar 7.transactions-jta-3.6.4.jar

三,开始运行呗(怕啥,我们是有例子的人QAQ),嘭嘭嘭xxxxx(qaq),失败了,为啥失败啊???,找呗(╭(╯^╰)╮),最开始我创建了一个最简单的ssm框架,然后想到那个例子对于多数据源的切换都没有,于是自己又做了一个SSM双数据源,自以为是的时候,嘭嘭嘭嘭xxxx(qaq),第一个数据库2条记录,第二个数据库没有记录,失败辣\(^o^)/~,于是

解决方案:重新找原因呗,发现不需要SSM多数据源的操作,人家框架就要你搞2个dao层,然后自己去用数据源分配(当然肯定这块还可以优化灵活点,先测试功能成功嘛,灵活?呵呵,不存在的)(怪自己没仔细看人家例子是2个dao层,xml文件里面用不同的数据源去控制2个dao层)想想想想复制粘贴2个sqlSessionFactory,行不行?行呗

四,开始运行,哇,成功了,高兴死了QAQ,没事,作死的我想再试一下,这样要报错到控制器里面,我不想报错在控制器里面,出现错误了要我自己来定义该干嘛,切,从dao层给我抛异常上来,我service层给你catch一下不就搞定了?,然后这样做了后,嘭嘭嘭xxxx(qaq),你xx的service害我,你说catch呢??,service:我不是cacth成功了吗,只不过你这个双数据源没有走事务而已,怪我咯??

解决方案:controller:来吧,我来cacth,然后这样做了,.....,哇,成功了QAQ,出现异常后,开始走事务了(随便想了想:可能配置的事务是在service层控制的分布式事务,如果自己去cacth可能会让事务管理器失效吧,反正我放到controller层就成功了)

总结:这个框架我只是做了一个例子,测试成功了,觉得,如果项目要做分布式,这个框架应该是可以用,起码比我看的其他很多分布式事务的解决方案强太多了(QAQ:好吧,太懒,喜欢简洁,清晰的),当然这个框架也是有缺点的,你们自己去脑补缺点吧,反正我脑补到了一些,不过总的来说,可以用,可以用,可以用!!!

建议:如果对SSM框架的各个配置还不能独立运用的(就是随心所欲想怎么配怎么配)(我不能保证完全独立运用,但是算入门吧),那么集成这个框架的时候,碰到问题,就怪自己吧

要分享的快分享,我还没试过我的文章百度一搜一大片的,没事,现在的我不介意抄袭,哈哈,开玩笑的,不过要是我的文章在百度一搜一大片,也挺好玩的

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 很高兴为您介绍Java分布式事务demo。Java分布式事务demo是一个演示如何使用Java编写分布式事务的示例应用程序。它使用Java Transaction API(JTA)和Java Message Service(JMS)技术来实现分布式事务。 ### 回答2: Java分布式事务Demo是一个演示分布式事务处理的示例程序。在实际的分布式系统中,多个节点之间可能需要协调完成某些事务操作,而分布式事务Demo就是为了展示如何在Java应用程序中实现这种分布式事务的。 Demo中可能包含以下几个主要的组件或步骤: 1. 事务管理器:一个用于管理整个分布式事务的组件。它负责确保在分布式事务中所有参与者的操作都能被正确地协调和提交或回滚。 2. 参与者节点:分布式事务中的各个参与者,可能是不同的Java应用程序。它们需要按照事务管理器的协调指令来执行相应的事务操作。 3. 事务的提交和回滚:事务管理器会向所有参与者节点发送事务协调指令,要求它们执行事务操作。一旦所有节点都完成了相应操作,事务管理器会根据结果决定是否提交或回滚整个事务。 Demo可以通过模拟不同的分布式事务场景来展示分布式事务的执行过程和结果。例如,可以模拟一个转账的场景,将转账操作拆分成两个参与者节点(例如两个不同的银行账户),然后演示在分布式事务中的转账操作如何被正确地协调和提交或回滚。 通过这个Demo,可以更好地理解和学习分布式事务的实现和处理方式,帮助开发人员在实际的分布式系统中设计和实现可靠的分布式事务处理。 ### 回答3: Java分布式事务是指在分布式系统中同时执行多个操作,并将这些操作作为一个整体进行提交或回滚的过程。这种方式可以确保系统中的多个操作要么都成功执行,要么都不执行,以保持数据的一致性。 通常,分布式事务需要满足ACID的特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。在Java中,可以使用一些框架和技术来实现分布式事务,如Java Transaction API(JTA)、Spring Framework和Atomikos等。 一个简单的Java分布式事务demo可以是一个购物应用,该应用涉及到两个系统,一个是订单系统,另一个是库存系统。在用户下单后,需要同时将订单数据写入订单系统和库存系统中。 在这个demo中,可以使用Spring框架来管理分布式事务。首先,需要在配置文件中配置两个数据源,分别对应订单系统和库存系统的数据库。然后,使用@Transactional注解来标识需要进行事务管理的方法。 在用户下单的方法中,首先会执行保存订单数据的操作,然后执行减少库存的操作。如果其中一个操作失败,整个事务会被回滚,即订单数据和库存数据都不会被保存。 为了实现分布式事务的协调,可以使用JTA来进行事务管理。JTA提供了事务管理器来协调不同系统中的事务,并确保它们都能够按照预期进行提交或回滚。 当然,这只是一个简单的demo,实际的分布式事务可能涉及到更复杂的场景和技术。但是,通过这个demo可以初步了解到Java中如何实现分布式事务并确保数据的一致性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值