参考一下Jonas Bonér所指出的响应式微服务的一些基本需求(引用自响应式微服务体系结构:分布式系统的设计原则):

    “隔离是弹性和伸缩性的先决条件,需要在服务边界之间进行异步通信……” 一个自治服务只能通过发布它的协议/API来承诺它自己的行为。以及“要使服务成为位置透明的,它需要是可寻址的。” “我们需要的是,每个微服务都要对自己的状态和持久性负责。”

    以下Lagom特性完成了这些最佳实践:

    • Lagom默认情况下是异步的——它的api使得通过流进行服务间通信成为首要概念。所有Lagom api都使用了Akka Stream 的异步IO功能来实现异步流;Java API使用 JDK8 **CompletionStage** 进行异步计算;Scala API使用Futures
    • 与传统的集中式数据库相比,Lagom更青睐分布式持久模式。我们鼓励(但不要求)使用事件溯源架构来实现数据持久性。持久化实体的默认模式使用了事件溯源和命令查询责任隔离(CQRS),即读写分离。 Managing data persistence在高层次上解释了什么是事件源以及它为什么有价值。Persistent Entity 引入了Lagom的事件源实现。
    • Lagom提供了用于开发目的的服务注册中心和服务网关的实现,以及用于管理客户端和服务器端服务发现的内部管道。服务注册和服务发现会介绍这些概念。