Undermoon - 为 Memory Broker 设置备份

简介: Undermoon - 为 Memory Broker 设置备份

为 Memory Broker 设置 Replica



构建二进制文件:


$ cargo build


运行 replica


$ RUST_LOG=warp=info,undermoon=info,mem_broker=info UNDERMOON_ADDRESS=127.0.0.1:8899 UNDERMOON_META_FILENAME=metadata2 target/debug/mem_broker


运行 master Memory


$ RUST_LOG=warp=info,undermoon=info,mem_broker=info UNDERMOON_REPLICA_ADDRESSES=127.0.0.1:8899 UNDERMOON_SYNC_META_INTERVAL=3 target/debug/mem_broker


# Put some data to the master:
$ ./examples/mem-broker/init.sh
# Verify that on master:
curl localhost:7799/api/v3/metadata
...
# Verify tat on replica after 3 seconds:
curl localhost:7799/api/v3/metadata
...
# Replica should have the same data as master.


请注意,当 master 失败时,整个系统将 不会 自动故障回退到 replica。你需要通过调用 coordinatorAPI 来实现。在此期间,服务器代理仍然能够处理请求,但整个系统无法为服务器代理扩展和故障转移,直到 coordinatorMemory Broker 端点切换到 replica


假设您已经运行了一个 coordinator


$ RUST_LOG=undermoon=info,coordinator=info target/debug/coordinator conf/coordinator.toml


然后,您可以通过连接到 Redis 协议中的 coordinator 并更改配置来将 master 更改为 replica


# 6699 is the port of coordinators.
$ redis-cli -p 6699 CONFIG SET brokers 127.0.0.1:8899


memory broker 的最新 metadata 还没有被复制到 replica memory broker,因此失败了。我们不能恢复丢失的数据,但是我们可以通过从所有记录的代理中收集 epoch 来增加元数据 epoch 以恢复服务。

所以我们也需要在重新配置 coordinator 后调用这个 API


$ curl -XPUT localhost:7799/api/v3/epoch/recovery


现在系统应该能够再次工作。

相关文章
|
NoSQL Redis 容器
Redis集群报错cluster_state:fail,如何解决并重新恢复集群(IP问题/ slot未完全分配问题)
Redis集群报错cluster_state:fail,如何解决并重新恢复集群(IP问题/ slot未完全分配问题)
247 0
|
关系型数据库
PG的wal receiver进程如何启动
PG的wal receiver进程如何启动
136 0
|
存储 移动开发 数据库
无主复制系统(2)-读写quorum
图-10中,三副本若有两个以上完成处理,写即可认为成功了。若三副本中只有一个完成写入,会怎样?到底几个副本完成才能认为写成功?
150 0
|
索引
ES recovery、主副分片复制会有一段时间block写入?
ES在主副本分片复制时候不会block写入(version > 2.x) ES在recovery主分片时候会有一段时间block写入
503 0
ES recovery、主副分片复制会有一段时间block写入?
|
消息中间件 算法 Kafka
Kafka高可用——replica分配方式
Kafka的Replica 概念 kafka的replica指的是消息的备份,为了保证kafka的高可用(当leader节点挂了之后,kafka依然能提供服务)kafka提供了备份的功能。
1706 0
下一篇
DataWorks