【发布时间】:2017-11-20 11:15:25
【问题描述】:
我最近看到有不同的框架允许使用消息传递架构,但在进程中实现,使用相同和不同的线程。我知道的有 Spring、Guava EventBus 和 Reactor。
我的问题是什么是好的用例,人们希望使用它们而不是向成熟的代理发送消息。我知道它的使用可以更好地解耦业务逻辑,但在微服务架构中,您通常会发布事件以供其他微服务使用。这样做的好处是您可以通过添加代理集群来实现容错,在这些代理集群中,由一个实例中的故障导致的错误消息可以由另一个实例重试。通过发送稍后由同一系统使用的消息来实现分解和执行的逻辑,特别是当订阅者在不同的线程中执行时,在我看来很难将数据恢复到一致的状态。
【问题讨论】:
标签: java event-handling messaging microservices