登录
首页 >  Golang >  Go问答

领域事件的稳定异步执行

来源:stackoverflow

时间:2024-03-01 23:45:21 374浏览 收藏

本篇文章向大家介绍《领域事件的稳定异步执行》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。

问题内容

在并发系统中,域事件通常是异步处理的。在Go中,可以通过通道实现异步事件处理的简单方法,但问题是,如果处理事件时发生问题,或者最糟糕的是整个程序发生问题,则事件将丢失.

如何在 Go 程序中正确处理异步域事件,即:

  • 当事件处理程序失败时,不应从事件队列中清除该事件,以便稍后正确处理。
  • 如果整个程序出现故障,则必须恢复并相应处理事件。

解决方案


第一个相对容易;您可以在工作线程中设置一个错误处理程序,在发生错误时将工作重新排队。

第二个要困难得多;您的选择是a)推出您自己的防弹机制,用于将事件写入磁盘并在以线程安全的方式完成时清除它们,或者b)使用许多已经被证明可靠的流行系统之一,例如RabbitMQ 或 Kafka,具有适当的复制和冗余,以确保您所需的可靠性水平。我强烈推荐后者。

到这里,我们也就讲完了《领域事件的稳定异步执行》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>