在同一服务的多个实例上操作数据库中的数据

Manipulate data from the database on multiple instances of the same service

我是 lagom 的新手,我想问一下如何在同一服务的多个实例上操作数据库中的数据?

阅读端支持吗?

编辑 1: 我正在研究用户管理模块。

我已经设置了一个 ReadSide 来侦听与用户相关的事件并更新其数据库中的数据,我正在使用 ReadSide 获取所有用户的列表。

我目前在开发中,所以我有一个运行 1 个用户服务实例的 1 个集群节点和另一个运行 Cassandra DB 的集群节点。

将用户服务和 Cassandra 部署(生产)到多节点集群时,我需要 configure/create 多个(目前为 3 个)用户服务实例。

假设部署如下:

用户 'SMITH' 调用注册 Web 服务,实例 1 处理请求。

稍后由于某种原因(i.g。维护、故障)实例 1 不再可用。

实例 2 或 3 会从这个意外的 "situation" 中恢复吗? 它们中的任何一个都可以处理与用户 'SMITH' 相关的 ReadSide 操作吗?

这三个节点将形成一个 akka 集群,当其中一个节点被移除时,原先居住在那里的实体将移动到其他节点之一。

可以在此处找到有关其工作原理的详细信息: https://doc.akka.io/docs/akka/current/cluster-sharding.html and https://doc.akka.io/docs/akka/current/cluster-sharding.html#how-it-works

任何读取端处理器都会发生同样的情况。我在这里假设您使用的是分片标签。 https://www.lagomframework.com/documentation/current/scala/ReadSide.html#Event-tags

如果不使用分片标签,您将只有一个读取端处理器运行。在其中一个节点中。

ps:郑重声明,因为您上次编辑时不清楚,每个节点应该没有专用的 Cassandra DB。所有节点都应该连接到同一个 Cassandra 集群。你应该有不同的 Cassandra 节点形成一个集群(不一定是 3 个)。