我指的是Jonas Boner撰写的Reactive Microservices Architecture的“Managing Communication Patterns”部分。
通常,在服务之间进行通信时(ESB是一个示例),其中一个需要:
1)用于发布订阅通信的队列,并为反压和容错而对事件进行排队
2)路由层- Camel 或Akka流
3)稍后用于与不同协议进行通信的中介- Camel 就是一个例子。
Lagom如何处理上述问题?
最佳答案
我不确定您“通常”是否需要消息总线内的路由和中介。 JonasBonér指出,发布/订阅是对微服务使用HTTP调用的非常有用的补充。这是由Lagom以message bus的形式提供的。
这符合“smart endpoints, dumb pipes”方法。
如果您想采用其他方法,将调解和业务流程放在总线上,而不是在服务以及可能的反腐败层上,则可以利用Camel和/或RabbitMQ等,但是没有针对Lagom的集成。您只需使用它们提供的Scala(或Java)连接器。