dotnetcore / CAP

Distributed transaction solution in micro-service base on eventually consistency, also an eventbus with Outbox pattern
http://cap.dotnetcore.xyz
MIT License
6.61k stars 1.28k forks source link

一个程序进程会操作多个不同的业务数据库,参考#998创建多个发布者进行对应处理,消费者应该如何处理消息? #1546

Closed ngala-hjw closed 2 months ago

ngala-hjw commented 2 months ago

杨老师你好,我已经查看#998 的沟通讨论,仍旧有些场景不知如何处理。我的场景及问题如下。

场景:一个程序进程会操作多个不同的业务数据库dbA、dbB,传输层共用消息放在内存中(使用Savorboard.CAP.InMemoryMessageQueue),使用#998的方式给每个数据库创建对应的发布者。

问题:发布消息是ok的,对应的发布者可以正常的将消息发布到对应的数据库及数据表中,但是无法正常消费消息:比如业务模块A发布消息,想要由业务模块B订阅;但是我像正常的方式使用消费者,发现消息会被业务模块A消费了(dbA的cap.received表收到了消息);而无法由业务模块B消费并将接收到的消息存储到dbB的接收表(cap.received)中。针对这种情况我应该如何处理呢?

yang-xiaodong commented 2 months ago

不支持,建议不同库拆分服务。