(当使用Atomikos测试分布式事务的实现时,我注意到一个很大的开销(不使用XA需要30毫秒的事务需要160个XA)
看起来大部分时间花在“准备”和“提交”中。
对于测试,我使用了涉及单个数据源(Microsoft SQL Server)的事务的(不切实际)场景,没有实际更新。在这种情况下我会期望最小的开销。
所以我的问题是:
答案 0 :(得分:1)
据我所知,这种漫长的等待仅在您第一次使用交易时发生。
这是因为建立了与服务器的连接以启动事务。在第一次之后,每次调用OpenTransaction时都不应该花那么长时间。
您可以自己测试一下。如果不关闭应用程序,请调用两次交易。
然而,一些开销将存在,因为当您使用分布式事务时,您将数据提交两次或更多次,具体取决于您使用的服务器数量(每个服务器一次)。但它不应该像你描述的那么久。