聊聊 Undermoo -为 Memory Broker 设置备份

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

项目地址:https://github.com/doyoubi/undermoon

为 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。你需要通过调用 coordinator 的 API 来实现。在此期间,服务器代理仍然能够处理请求,但整个系统无法为服务器代理扩展和故障转移,直到 coordinator 的 Memory 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

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

责任编辑:武晓燕 来源: 黑客下午茶
相关推荐

2017-09-01 20:31:12

服务器MongoDB数据库

2011-03-17 16:31:12

2009-12-10 16:02:11

Juniper防火墙配

2009-06-25 13:23:50

Spring2.5

2010-05-18 14:59:28

IIS服务器

2021-03-08 21:52:44

Windows服务器程序

2018-08-31 10:10:06

2010-01-12 15:31:48

华为交换机配置备份

2010-01-12 14:57:10

华为交换机配置备份

2015-10-27 13:45:58

CloneAppWindows工具

2019-11-27 15:35:38

VMware vSph精简置备磁盘

2009-12-23 15:19:40

2020-10-22 09:08:55

互联网连接通信网络

2010-01-12 15:10:23

华为交换机配置备份

2010-01-12 15:22:42

华为交换机配置备份

2010-05-10 14:27:19

线路负载均衡

2022-02-25 19:29:07

Vue2esbuild项目

2022-10-14 19:14:37

PowerToys微软Windows

2010-01-12 15:04:26

华为交换机配置备份

2013-08-07 14:04:22

MySQL备份
点赞
收藏

51CTO技术栈公众号