项目地址:https://github.com/doyoubi/undermoonSetupReplicaforMemoryBroker构建二进制文件:$cargobuildrunreplica$RUST_LOG=w??arp=info,undermoon=info,mem_broker=infoUNDERMOON_ADDRESS=127.0.0.1:8899UNDERMOON_META_FILENAME=metadata2target/debug/mem_broker运行masterMemory$RUST_LOG=w??arp=info,undermoon=info,mem_broker=infoUNDERMOON_REPLICA_ADDRESSES=127.0.0.1=8899UNDERMEONVALMOTA3target_NCVALMOTA_S/debug/mem_broker#将一些数据放到主服务器上:$./examples/mem-broker/init.sh#在主服务器上验证:curllocalhost:7799/api/v3/metadata...#在3之后在副本上验证tatseconds:curllocalhost:7799/api/v3/metadata...#Replica应该和master有相同的数据。请注意,当master发生故障时,整个系统不会自动故障回复到replica。您需要通过调用协调器的API来实现它。在此期间,服务器代理仍然能够处理请求,但是在协调器的内存代理端点切换到副本之前,整个系统无法为服务器代理进行扩展和故障转移。假设您已经有一个协调器在运行:$RUST_LOG=undermoon=info,coordinator=infotarget/debug/coordinatorconf/coordinator.toml然后您可以通过连接到Redis协议中的协调器并更改配置来将主服务器更改为副本.#6699是协调器的端口。$redis-cli-p6699CONFIGSETbrokers127.0.0.1:8899来自主内存代理的最新元数据尚未复制到副本内存代理,因此失败。我们无法恢复丢失的数据,但我们可以通过从所有记录的代理收集时期来增加元数据时期以恢复服务。所以我们也需要在重新配置协调器后调用这个API。$curl-XPUTlocalhost:7799/api/v3/epoch/recovery现在系统应该可以再次工作了。
