Hmily大致原理记录

项目启动时,Hmily相关配置流程:


164132-f3d1af972ec00dc2.jpg
未命名文件(14).jpg

项目运行时,对注解了@Hmily的方法执行时所涉及的内部流程:


164132-347de7a217bfdde2.jpg
未命名文件(16).jpg

另外,当利用feign调用远程接口时,事务上下文信息(HmilyTransactionContext)是如何传递的呢?
Hmily配置了HmilyRestTemplateConfiguration类:

@Bean
    @Scope("prototype")
    public Builder feignBuilder() {
        return Feign.builder().requestInterceptor(new HmilyRestTemplateInterceptor()).invocationHandlerFactory(this.invocationHandlerFactory());
    }

它的作用是,每当使用feign调用远程接口时,都会在请求头中添加上事务上下文信息(HmilyTransactionContext)。

每执行一步,都会即时记录相应事务状态,比如执行confirm方法,这时候如果confim执行失败了,由于相应的事务状态没有更新,后端的定时器会不断查询失败的事务,持续调用该方法。

猜你喜欢

转载自blog.csdn.net/weixin_34007291/article/details/90808065