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


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

相关文章
|
弹性计算 网络协议 容灾
PostgreSQL 时间点恢复(PITR)在异步流复制主从模式下,如何避免主备切换后PITR恢复(备库、容灾节点、只读节点)走错时间线(timeline , history , partial , restore_command , recovery.conf)
标签 PostgreSQL , 恢复 , 时间点恢复 , PITR , restore_command , recovery.conf , partial , history , 任意时间点恢复 , timeline , 时间线 背景 政治正确非常重要,对于数据库来说亦如此,一个基于流复制的HA架构的集群,如果还有一堆只读节点,当HA集群发生了主备切换后,这些只读节点能否与新的主节点保持
1825 0
|
4月前
|
消息中间件 负载均衡 Kafka
Kafka分区分配策略大揭秘:RoundRobin、Range、Sticky,你真的了解它们吗?
【8月更文挑战第24天】Kafka是一款突出高吞吐量、可扩展性和数据持久性的分布式流处理平台。其核心特性之一是分区分配策略,对于实现系统的负载均衡和高可用性至关重要。Kafka支持三种主要的分区分配策略:RoundRobin(轮询)、Range(范围)和Sticky(粘性)。RoundRobin策略通过轮询方式均衡分配分区;Range策略根据主题分区数和消费者数量分配;而Sticky策略则在保持原有分配的基础上动态调整,以确保各消费者负载均衡。理解这些策略有助于优化Kafka性能并满足不同业务场景需求。
334 59
|
NoSQL Redis 容器
Redis集群报错cluster_state:fail,如何解决并重新恢复集群(IP问题/ slot未完全分配问题)
Redis集群报错cluster_state:fail,如何解决并重新恢复集群(IP问题/ slot未完全分配问题)
244 0
|
索引
ES recovery、主副分片复制会有一段时间block写入?
ES在主副本分片复制时候不会block写入(version > 2.x) ES在recovery主分片时候会有一段时间block写入
502 0
ES recovery、主副分片复制会有一段时间block写入?
|
消息中间件 Kafka
《kafka问答100例 -2》 创建Topic的时候 什么时候在Broker磁盘上创建的日志文件
《kafka问答100例 -2》 创建Topic的时候 什么时候在Broker磁盘上创建的日志文件
《kafka问答100例 -2》 创建Topic的时候 什么时候在Broker磁盘上创建的日志文件
|
消息中间件 Kafka
《kafka问答100例 -5》什么时候真正执行删除Topic磁盘日志 ?
《kafka问答100例 -5》什么时候真正执行删除Topic磁盘日志 ?
《kafka问答100例 -5》什么时候真正执行删除Topic磁盘日志 ?