为了账号安全,请及时绑定邮箱和手机立即绑定

Hmily框架异步调用的实现原理,以及性能方面的考虑和优化

标签:
数据库

建议先关注、点赞、收藏后在阅读。
图片描述
在Hmily框架中,异步调用是通过两阶段提交(Two-Phase Commit,2PC)来实现的。

Hmily框架支持异步调用,具体原理如下:

  1. 第一阶段(try阶段):

    • 在业务发起方执行业务方法前,会向Hmily事务管理器注册一个全局事务,并生成一个全局事务ID(GTXID)。
    • Hmily事务管理器会将GTXID保存到ThreadLocal中,以便在整个调用链中进行传递。
    • 业务发起方执行完业务方法后,会生成一个本地事务ID(LTXID),并将LTXID与GTXID关联到一起。
    • 业务发起方将LTXID和对应的业务操作信息发送到参与方(比如远程服务)。
  2. 第二阶段(commit阶段):

    • 参与方接收到LTXID和业务操作信息后,会先执行自身的业务操作,并将LTXID和执行结果返回给业务发起方。
    • 业务发起方再将LTXID和执行结果发送到Hmily事务管理器。
    • Hmily事务管理器会将LTXID对应的执行结果进行汇总,检查是否所有参与方都执行成功。如果有任何一个参与方执行失败,Hmily事务管理器会进行回滚操作。
    • 如果所有参与方都执行成功,Hmily事务管理器会发出commit指令,要求各参与方进行正式提交。
  3. 第三阶段(confirm阶段):

    • 在收到commit指令后,各参与方进行正式提交,将事务的执行结果正式持久化。
    • 如果有任何一个参与方提交失败,Hmily事务管理器会发出rollback指令,要求各参与方进行回滚。
    • 如果所有参与方都提交成功,Hmily事务管理器会执行最终状态的确认操作。

通过这种方式,Hmily框架可以实现跨服务的异步调用,保证一系列业务操作的原子性和一致性。

对于高并发的场景,Hmily-TCC分布式事务考虑和优化了以下性能方面:

  1. 分布式事务快速提交:
    Hmily-TCC提供了快速提交的功能,通过使用本地方法执行分布式事务的确认阶段,减少了网络开销和分布式事务管理的延迟。这有效地提高了事务的吞吐量和性能。

  2. 高效的事务补偿机制:
    Hmily-TCC通过补偿机制来处理分布式事务中的异常情况,保证数据的一致性。补偿机制的设计考虑了性能方面的优化,在补偿时会进行批量回滚,减少了网络通信的开销,提高了分布式事务的性能。

  3. 高效的事务日志记录:
    Hmily-TCC使用异步的方式记录事务日志,减少了事务日志记录对业务方法的执行时间的影响。通过异步的方式,事务日志的写入将不会阻塞主流程的执行,从而提高了系统的性能。

  4. 基于注解的事务拦截:
    Hmily-TCC使用注解的方式进行事务拦截,简化了事务管理的配置和编程工作。注解的方式可以更加高效地进行事务切面的织入,提高了分布式事务处理的性能。

  5. 支持并行事务处理:
    Hmily-TCC支持并行事务处理,允许多个事务同时执行。这些并行的事务可以通过异步机制来进行处理,提高了并发场景下的性能和吞吐量。

  6. 优化的资源锁定策略:
    Hmily-TCC通过优化资源的锁定策略,减少了分布式事务对资源的争用。通过仅在事务需要锁定资源时进行锁定,以及尽快释放锁定资源,提高了系统的性能和并发能力。

以上是Hmily-TCC分布式事务对于高并发场景的性能方面的考虑和优化。

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
全栈工程师
手记
粉丝
1.7万
获赞与收藏
2253

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消