Lagom服务可以只有一个实体吗?

Can a Lagom service have only one entity?

一个Lagom服务可以只有一个实体吗?我找不到在单个服务中使用两种实体类型的示例。

单个 Lagom 服务可以有任意多个实体,没有限制,只需为每个实体调用 PersistentEntityRegistry.register

也就是说,没有具有两种实体类型的示例是有原因的,那就是微服务背后的一般原则是微服务应该做一件事(并且做好)。当微服务有多个实体时,很可能微服务实际上在做不止一件事。聚合(实体)通常是围绕微服务绘制的一个很好的干净边界。

但话虽如此,将每个实体分离到一个单独的微服务中会导致复杂性和性能方面的额外成本。这是一个权衡,我认为这不是一个值得如此黑白分明的领域。如果您有两个非常密切相关的实体,并且您确定这些实体的服务只会由一个开发团队,并且总是有相同的扩展和故障要求,那么将它们放在同一个服务中可能不会有什么坏处。请记住,事后分离服务通常比事前分离更难——而且,通过在不同的关注点之间设置严格的服务边界,你通常会得到更好的设计,因为你必须花更多的精力去思考关于组件在不同服务中与在同一服务中时的接口。