我正在开发CQRS应用程序,必须选择Command Bus的基础实现。我们已经决定将Kafka用作Event Bus。但是命令总线呢?从我的角度来看,Kafka对于Command Bus的要求太复杂了,例如,我们不需要持久存储命令,并且如果没有服务实时地处理它,我们应该拒绝它们。那么,什么更好地用作分布式命令总线呢?
Kafka不在乎您在其中存储什么;它只是字节。当您处理事件时,将发生命令/动作。
Creating an ESB with Kafka is considered an anti-pattern
我们不需要永久存储命令
然后降低对主题的保留时间,以免将其存储太久。
如果没有任何服务实时处理,我们应该拒绝他们
为什么?然后,您只是丢弃事件,听起来好像只需要点对点通信和运行状况检查机制(请参阅gRPC)就可以了。