【发布时间】:2019-06-03 09:46:02
【问题描述】:
假设我有Hello-Service。在 Lagom 中,此服务可以跨单个集群的多个节点运行。
所以在集群 1 中,我们可以有多个“副本”Hello-Service:
Cluster1: Hello-Service-1, Hello-Service-2, Hello-Service-3
但是是否可以跨多个集群运行服务Hello-Service?
像这样:
Cluster1: Hello-Service-1, Hello-Service-2, Hello-Service-3,
Cluster2: Hello-Service-4, Hello-Service-5, Hello-Service-6
我想要实现的是读取端处理器和事件消费者的更好可扩展性:
在 Lagom 中,我们需要预先设置集群内给定事件标签的分片数。
所以我想知道是否可以添加另一个集群来在它们之间分配负载。
当然,我想通过某个键对持久实体进行分片。
(假设我正在构建一个多租户应用程序,我将按组织 ID 对实体进行分片,因此某些组织集合的所有实体将进入集群 1,而另一组组织的实体将进入集群2,因此我可以在每个集群中使用分片读取端处理器,这些处理器仅处理集群中的事件/实体的子集(以获得更好的可扩展性)。
使用单集群方法,随着系统的增长,单个集群中的分片处理器可能会变得越来越慢,因为它需要处理越来越多的事件。
所以随着系统的增长,我只需添加一个新集群(假设是集群 2,然后是集群 3,它们将处理自己的事件/实体子集)
【问题讨论】:
标签: scala event-sourcing akka-cluster lagom