繁体   English   中英

每个主题在集​​群中运行的每个侦听器仅消耗一次消息

[英]Consume message only once from Topic per listeners running in cluster

我正在实现域事件基础结构,但是该项目不允许任何消息传递基础设施(金融服务客户端),因此在Hazelcast Topics和ExecutorService中找到了替代方法,

但是问题是,当在集群中运行时,消息将传递到将要在集群中运行的侦听器,因此对于集群2,我们在2个jvm中运行了相同的侦听器,并且消息消耗了两次并采取了行动,假设域事件应该执行一些非幂等的操作,例如为某些忠诚度积分提供信用,除非我明确维护所作用的域事件的踪迹并核对每次收到事件的检查,否则我都会两次归功于它,“任何实现此目的的建议而不用写那些可能在下层的样板”,或者是否有这样的实现方式。

编辑:同时我也在评估Hazelcast的ExecutorService的建议在这里

您可以通过使用Hazelcast的Queues(而不是Topics)来解决您描述的用例。 使用主题的主要原因是,如果您有兴趣让多个(可能是独立的)使用者获得相同的消息。 您的需求听起来像是您对只有一个使用者获得消息感兴趣,并且这就是队列的用途,请参阅Hazelcast Queues文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM