我有一个现实生活中的SOA问题,我似乎无法以干净的SOA方式解决这个问题。
我有许多“更新事物”消息的分布式生成器,它们被“事物管理器”消耗掉。
“事物管理器”的一个功能是向主题通知发布“事物”已更改。这允许其他感兴趣的服务对变化作出反应。
其中一个“更新事物”生产者本身就是该主题的倾听者。它只对其他系统的“事物更新”非常感兴趣。但它发现自己正在消耗和处理它本身引起的“事物管理器”的更新(因此已经知道)。幸运的是,反馈循环在那时被打破了。
如何以干净的SOA方式解决此问题?我不会在消息中添加元数据,指示消息源是一个干净的解决方案;消费者永远不应该知道消息来自或将要去哪里。
答案 0 :(得分:0)
当“更新事物”订阅“事物管理器”时,它应该能够设置它想要订阅的“事物”的过滤器。所有“更新事物”应该设置的一个过滤器不会发送任何源自我自己的东西。然后“更新事物”不知道消息的来源,但“事物经理”会知道。