问:account service reserve balance之后call order service超时,那watchdog要不要介入?
答:需要介入,确认 order service 没有对 order 进行处理以后,可以重试。如果多次重试失败,可以 rollback - release account balance
问:order service call external venue超时,连ID都没返回,那watchdog怎么办?
答:等到超时之后,用 internal transaction id 给 external venue 发一个 get request, 确认一下状态。
问:order service和distributed service都talk to internal DB,可不可以直接做一个DB上的transaction,这样就省去了一步distributed transaction
答:Group 在一起的前提是同一个 microservice 向 DB 发出多个 write request。在这里我们有两个 microservice,就不能直接使用 DB 自带的 transaction 了。当然,如果我们合并 order 和 account service,就可以考虑使用 DB 自带的 transaction。