cp-ddd-framework icon indicating copy to clipboard operation
cp-ddd-framework copied to clipboard

MQ异步处理后,业务逻辑割裂,代码可读性降低

Open funkygao opened this issue 3 years ago • 2 comments

是否可以在DDDplus里解决它?

复杂业务场景下,经常会使用MQ进行异步的处理。 自己发,自己收的情况很常见。

但业务逻辑被切断了:正在处理一个业务,然后就produce一个message;后面的逻辑会在message consumer处看到,可consumer在哪里?需要找配置文件或其他手段才能找到。

异步方式将本来紧凑的代码都分成两部分:上半场(produce message之前的逻辑),下半场(message consumer里面的逻辑)

有点数据血缘的味道。

需要研发同学,可以在produce message(上半场)处不必切换快速定位下半场业务逻辑的实现。

References

funkygao avatar Oct 30 '20 14:10 funkygao

Continuation Passing Style,在FP里很容易搞,但在Java里需要设计一下

funkygao avatar Oct 30 '20 15:10 funkygao

场景的复杂性:

  • topic可能不确定
    • 发送时,可能有if条件,不同条件发送到不同队列
    • 但message schema一定是确定的,它代表的的业务语义
  • producer和consumer可能位于不同的应用
    • 但前提是都是同一个业务域,否则也没有必要关心:MQ本身就是解耦生产和消费的

funkygao avatar Oct 30 '20 15:10 funkygao