我是拉格姆的新手,我问的是如何在同一服务的多个实例上操纵数据库中的数据?
阅读方支持了吗?
EDIT 1: 我正在研究用户管理模块 .
我已经安装了一个ReadSide,用于侦听用户相关事件并更新其数据库中的数据,并且我正在使用ReadSide获取所有用户的列表 .
我目前在Dev中,因此我有一个运行1个用户服务实例的集群节点和另一个运行Cassandra DB的集群节点 .
在将用户服务和Cassandra部署( 生产环境 )到多节点集群时,我需要配置/创建多个(目前为3个)用户服务实例 .
我们假设部署如下:
-
node 1:运行用户服务的实例1及其cassandra DB
-
node 2:运行用户服务的实例2及其cassandra DB
-
node 3:运行用户服务的实例3及其cassandra DB
用户'SMITH'调用注册Webservice,实例1处理请求 .
后来由于某种原因(例如维护,故障)实例1不再可用 .
实例2或3会从这种意外的“情况”中恢复吗?它们中的任何一个都可以处理与用户'SMITH'相关的ReadSide操作吗?
1 回答
这三个节点将形成一个akka集群,当其中一个节点被移除时,居住在那里的实体将被移动到其他节点之一 .
有关其工作原理的详细信息,请点击此处:https://doc.akka.io/docs/akka/current/cluster-sharding.html和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) .