1、起源:囫囵吞枣的啃食一番源码之后,再加上笔者分布式经验,突然间产生一个具备复用场景下的一个分布式出入库设计。
分布式遇到的问题:
1、分布式事务:SeaTa AT事务,在一些业务链路非常长的业务中,不恰当的使用使用@GlobalTransactional ,导致了事务经常性部分回滚的情况。经常需要人工补单的情况。
2、分布式锁:Redisson红锁,只要不脑残,多人开发下,稳如狗。但偶尔也有例外。一定的数据量情况下,Redisson红锁+spring Transaction ,在任务调度(线程池)使用的情况,会出现不及时commit事务的场景。
2、零碎的设计:
1、责任链:Dubbo Invoker。
2、事件驱动:spring event。
3、业务:策略解耦。
4、并发管程:zookeepr选举/GlabalLock/Synchronized锁升级。
5、Holder设计,全局变量。
Invoker链路设计:



