EventBridge同一个事件源产生的事件,在同一个事件规则中,事件被事件目标消费是有顺序性的吧?会不会出现同一个事件因为异常某种原因被发送到事件中心里两次,消费目标会同时处理这两个事件的情况?
在RocketMQ EventBridge中,同一事件源产生的多个事件在同一事件规则中被消费的顺序是不确定的。这是因为RocketMQ EventBridge是基于消息队列的,事件被异步地发送到消费者,所以事件的消费顺序取决于消费者的消费速度和消息队列的调度策略。
然而,如果你的应用需要保证事件的消费顺序,你可以使用RocketMQ EventBridge的TransactionMessage来实现。TransactionMessage可以在同一事务中发送多个事件,并且这些事件会被保证按照发送的顺序被消费。
至于你的第二个问题,如果一个事件因为某种原因被发送到事件中心两次,那么消费目标可能会同时处理这两个事件。这是因为RocketMQ EventBridge不会去重已经收到的事件。为了避免这种情况,你可以在事件规则中添加一个去重逻辑,例如,只有当事件的内容不重复时,事件才会被消费。
由于这块影响比较小,改动大,目前在任务池里优先级不算高,正常情况预计会在11月份推平发布。目前只保证大致有序,不保证绝对有序。同时,为了保证至少投递一次,系统可能会超时或异常重试,接收端需要做好幂等。,此回答整理自钉群“EventBridge用户交流群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。