在连接到 3 节点事件存储集群后,无论出于何种原因,3 个节点中的一个节点已关闭(可能是 3 个节点中的任何一个),如果客户端现在尝试将一些数据附加到集群会发生什么情况?
它是否将数据写入剩余的两个节点?
行为是确定性的还是取决于哪个节点(主节点或从节点)关闭?
在连接到 3 节点事件存储集群后,无论出于何种原因,3 个节点中的一个节点已关闭(可能是 3 个节点中的任何一个),如果客户端现在尝试将一些数据附加到集群会发生什么情况?
它是否将数据写入剩余的两个节点?
行为是确定性的还是取决于哪个节点(主节点或从节点)关闭?
Event Store 集群依靠 gossip 种子从所有可用节点中选择一个主节点。一旦主节点关闭,集群将选举一个新的主节点。所有的写入总是无条件地定向到主节点。
您必须确保使用正确的连接字符串连接到集群,而不是连接到单个节点,例如:
多节点 DNS 名称:
var connectionString = "ConnectTo=discover://admin:changeit@mycluster:3114; HeartBeatTimeout=500
单个集群节点列表:
var connectionString = "GossipSeeds=192.168.0.2:1111,192.168.0.3:1111; HeartBeatTimeout=500"
您只能在将其用于订阅时强制连接使用从节点。