我想在 Spring Boot 服务中使用 Spring Events。我已经完成了所有的开发,事件在我的代码的某个点发布,并在监听器中接收。到目前为止,还不错。
将此展示给一位同事,他提出了一个很好的观点。 如果我们重新启动服务会发生什么?可能会出现一些事件丢失的情况?
为了向您提供更多见解,我们使用 Kubernetes 在 AWS 中部署我们的服务。就个人而言,我不希望此服务有太多负载,因此在服务处于关闭过程中时等待消费的事件的机会非常低。但是,它可能会发生。而且,我想知道它以便在其他场景中使用 Spring Events。
最佳答案
Spring Activity 并不意味着“严肃”的交流。严肃地说,我的意思是没有关于可靠性的保证,它只是应用程序不同部分之间传递的简单消息。很难说即使这样,事件丢失的可能性有多大,但没有保证。
如果您有不会丢失的重要消息,您需要一个具有事务支持的适当消息队列。他们对消息传递做出保证,但当然它涉及一个额外的组件,对于简单的事情来说可能有点矫枉过正。
关于java - Spring 事件和服务重启,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57799253/