调用方使用“复杂接口”与“是否使用事务”
问题
“底层能力接口比较复杂,涉及到多个表的更新操作以及外部rpc的接口调用,并且部分接口使用了事务,支持回滚。”
上面这种接口直接对外提供rpc接口是没问题的,因为内部已经保证了数据的一致性;
但是如果直接提供给其他serviceA方法调用(非rpc调用),serviceA调用方是否使用事务,会发生不同的情况。
建议解决方式(调用方角度)
1、serviceA调用底层接口时,以rpc方式调用底层接口,防止serviceA事务对底层的影响
2、Propagation事务传播机制方式处理?待定,需要根据底层接口具体情况分析,并且如果底层接口被其他人修改很有可能导致新的问题
收藏文章数量从多到少与“把书读薄”是一个道理