【Azure Redis 缓存】Redis Geo-replication(异地复制)的问题 

问题描述

在Azure官网中,已列出了一系列的常规问题:https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-geo-replication#geo-replication-faq

  1. 是否可以通过标准层或基本层缓存使用异地复制?
  2. 在链接或取消链接过程中是否可以使用缓存?
  3. 是否可以链接两个以上的缓存?
  4. 是否可以链接来自不同 Azure 订阅的两个缓存?
  5. 是否可以链接不同大小的两个缓存?
  6. 是否可以在启用群集时使用异地复制?
  7. 当缓存位于 VNET 中时是否可以使用异地复制?
  8. 什么是 Redis 异地复制的复制计划?
  9. 异地复制需要多长时间?
  10. 复制恢复点是否受保证?
  11. 是否可以使用 PowerShell 或 Azure CLI管理异地复制?
  12. 跨 Azure 区域复制数据的费用是多少?
  13. 尝试删除链接缓存时为何操作会失败?
  14. 应为辅助链接缓存选择哪个区域?
  15. 辅助链接缓存如何进行故障转移?
  16. 能否为防火墙配置异地复制?

 

而面对具体的问题,如:两个redis,一个北2(Primary),一个东2(Secondary),做Geo-replication(异地复制).

1. Geo-replication--->在选link as secondary时,对生产的Redis有影响吗?  比如生产Redis响应延迟,丢数据等

2. 因为北2东2的Redis hostname不同,如果从东2应用连Redis时,是连东2的hostname连吧?  还是说两个link在一起的Redis,就会产生一个公共的hostname或FQDN,以后用这个连呢? 

 

问题解答

1. Geo-replication 在选link as secondary时,对生产的Redis有影响吗?  比如生产Redis响应延迟,丢数据等

【答】:

  • 链接时,主链接缓存自始至终保持可用。
  • 链接时,在链接过程完成之前,辅助链接缓存将不可用。
  • 取消链接时,这两个缓存自始至终保持可用。


2. 因为北2东2的Redis hostname不同,如果从东2应用连Redis时,是连东2的hostname连吧?  还是说两个link在一起的Redis,就会产生一个公共的hostname或FQDN,以后用这个连呢? 

【答】:

从东2 连接时用东2 的hostname,不会产生一个公共的hostname,因为一个是主实例一个是从实例,从实例是只读的,是不能向其写入数据的。异地复制的缓存不支持跨 Azure 区域的自动故障转移。 当主Redis发生故障时,需要人为介入进行故障转移。 在Github中有类似的案例。详情参考:

spring-boot-redisson-failover-parent : https://github.com/sme-csu/spring-boot-redisson-failover-parent

redis-failover-pochttps://github.com/huqianghui/redis-failover-poc

 

参考资料

为高级 Azure Cache for Redis 实例配置异地复制https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-geo-replication#geo-replication-faq

 

posted @ 2021-10-01 21:13  路边两盏灯  阅读(119)  评论(0编辑  收藏  举报