常见混淆名词

对常见名词的总结

业务逻辑

  • 统称,功能性逻辑

状态机

  • 状态之间的切换流转,以及约束

设计模式

  • 设计最佳实践,会深入到代码层面

工作流

  • 分成:顺序工作流,状态工作流
  • 外部参数,外部事件作为数据交换

saga

  • 事务模型,又叫做长时间运行的事务(Long-running-transaction)

规则引擎

  • 状态机的增强版,一堆堆的规则、但是不体现step步骤关联性

分布式事务

  • JTA      2阶段提交
  • TCC     TRY/CONFIRM/CANCEL
  • saga  见上

领域事件

  • 带业务色彩的事件(领域层面)

消息机制

  • 消息的发送接收(框架层面)

 

 

状态机、工作流、SAGA  区别:

  • 状态机:更偏向瞬时的(尽管没有限制说必须瞬时,但是一般用在瞬时)
  • 工作流:没有状态,也能成为工作流,工作流里的step(步骤)很重要,就是工作流更注重步骤的体现(即便没有状态机也可以,有也可以)
  • SAGA:长事务模型,底层为状态机工作流,其实是建立在上述两者之上的

JTA、TCC、SAGA 区别:

  • JTA:java事务API,有多种不同的实现,一般为两阶段提交,特点:底层持久层必须支持事务特性、改造工作量小
  • TCC:try、confirm、cancel模型,每一个业务接口需要多写2个接口,代码量大,特点:底层不支持事务特性也可以、改造工作量大
  • SAGA:多用于三方系统接口多的事务流程,需要给每个业务点多写1个错误时触发的函数。特点:改造工作量中等,不确保事务隔离特性

领域事件、消息机制 区别:

  • 领域事件:带明确业务行为的事件,如:订单已创建事件等、更有利于领域逻辑的传递
  • 消息机制:更偏framework层面,message、event、consumer这种

 

posted @ 2020-05-17 20:33  McKay  阅读(178)  评论(0编辑  收藏  举报