首页 > 其他分享 >缓存出海方案

缓存出海方案

时间:2024-08-24 12:25:05浏览次数:16  
标签:方案 缓存 场景 Redis 同步 集群 key 出海

优质博文:IT-BLOG-CN
在这里插入图片描述

一、挑战/注意事项

【1】框架组不允许在不同地区部署的独立Redis实例拥有相同的名称,因此不同地区需要使用不用的Redis集群名称。
【2】分布式锁问题: 该场景需要保证keyUCS灰度策略是可以同步的,即同一个key不会被路由到多个机房。【目前缓存不同步数据】

二、上云方案

Redis:不做双向同步,多数据源。

业务中用到Redis的场景比较多,但Redis不同于业务数据库场景所以不做双向同步,每个IDC对应同单元内的Redis集群,每个Redis集群只服务于当前单元内的业务,所以不是全量的。所以在多IDC的场景下就有很多业务场景需要调整,基于Redis覆盖业务要保证单元内闭环。

三、SDK封装

ReidsClient工厂进行统一封装,通过约定大于配置的形式,根据区域约定统一的后缀名,向OPS申请部署独立集群。业务开发使用封装的Factory获取Redis Client时,只需要传入固定Cluster Name(不需要添加后缀),由封装层事先约定,自动从该环境的QConfig配置文件中获取映射的Cluster Name
【1】部署在国内的独立集群不添加后缀名;
【2】部署在新加坡地区的独立集群统一添加后缀名_sin
【3】部署在法拉克福地区的独立集群统一添加后缀名_fra

不足:即使封装了CacheFactory,业务开发扔需要扫描代码变更。同时,该约定为口头约定,没有框架介入,实际执行过程可能会因个人失误造成非预期的结果。

四、海外缓存使用方式

【1】本地访问本地模式(推荐)
【2】从上海同步到新加坡,在新加坡侧只读,海外缓存写入需要申请新集群;(问题:大部分系统上线之后,回先缓存写入数据,往往会写入失败,导致一些问题);
【3】神盾缓存使用本地模式,数据目前不同步到海外,第一次使用神盾数据需要回源上海,如需预热,需要联系DBA;(问题:国内外数据加解密是不一样的,准备给数据库添加版本信息,新加坡加密的数据,回到上海之后也能够解密);

五、Redis超大Key双向同步导致客户端链接超时

场景信息 : 上云时Redis数据需做双向数据同步,开启后出现Redis连接超时异常,Redis版本为4.0.8
分析问题: 发现其中有超大key,最大的key7.2MB,超大key双向同步导致的资源占用。建议避免使用超大key。根据DBTrace中的Redis慢日志来进行分析。一个实际运行的参考数据是,当key大小为1.6MB时,Redis每日会有多次300-400ms的慢日志。
解决方案:RedisString类型的数据转换为Hash存储,并对Hash中的Filed按照范围划分为多个Hash集合。改造后进行数据同步,没有再出现超时异常。

六、分布式锁问题

当前项目中的分布式锁是基于Redis实现的,因为不同IDCRedis集群是相互隔离的,所以目前分布式锁的粒度只支持到了Region级别。目前业务都是围绕用户场景加的分布式锁,所以也可以满足目前的实际业务场景。如果后续有全局获取分布式锁的业务,则需要进一步设计,即保证同一时间所有Region有且只有一个地方能够获得该资源,并且其他Region必须等待,这有可能牺牲掉相当大的性能来实现此功能。

标签:方案,缓存,场景,Redis,同步,集群,key,出海
From: https://blog.csdn.net/zhengzhaoyang122/article/details/141306962

相关文章

  • Spring系列之Spring Cache缓存注解的使用
    目录一、概述二、缓存注解1、@Cacheable缓存结果2、@CachePut更新缓存3、@CacheEvict 清除缓存4、@Caching组合缓存(不常用)5、@CacheConfig类级别缓存配置(不常用)6、@CacheResult设置缓存超时(不常用)三、使用方式1、@EnableCaching开启缓存2、在方法上添加注解@C......
  • 目标检测实践过程中,遇到“No module named ‘torch._six’”报错的一个快速解决方案(无
    很多人在按照网络、书籍教程中的流程尝试自己实现一个基于Faster-RCNN的目标检测模型时,如果调用了PyTorch官方github上的文件时,coco_eval.py文件中会触发报错。1.报错原因PyTorch在2.0之后的版本中移除了_six,导致在coco_eval.py中调用torch._six失败2.解决方案(1)直接根......
  • AP5160 电压2.5-100V 电流12A PWM 调光 大功率LED驱动 手电筒与摩托车照明方案
    产品描述AP5160是一款效率高,稳定可靠的LED灯恒流驱动控制芯片,内置高精度比较器,固定关断时间控制电路,恒流驱动电路等,特别适合大功率LED恒流驱动。AP5160采用SOT23-6封装,通过调节外置电流检测的电阻值来设置流过LED灯的电流,从而设置LED灯的亮度,外驱MOS管最大输出电流可达......
  • 解决方案 | VS2022 社区版 获取工具和功能找不到visual stdio安装程序的终极解决办法
      首先这是一种解决方法:https://blog.csdn.net/Wysnbb/article/details/124588395 其次,如果上面方法解决不了,那么可以重新下载vs社区版。(不要误会,并不是下载10G+的东西)https://visualstudio.microsoft.com/zh-hans/vs/community/  下载得到:  安装VisualStud......
  • 商业预付费电能管理解决方案
    安科瑞徐赟杰商业预付费电能管理解决方案大型商业项目的能源消耗量高,一般为住宅的10-15倍,普通公共建筑的3-5倍。作为商业地产的物业管理层,希望他们的用电费用回收越快越好,更进一步的可能需要一个简单便捷的收集、并清楚显示商场内每个商铺的电耗信息的系统。系统建设的意义:......
  • 网络直播平台搭建,瀑布流布局完美解决方案
    网络直播平台搭建,瀑布流布局完美解决方案使用教程直接复制代码列表布局数据自己写<template><viewclass="waterfall-wrap"><viewclass="waterfall-list"><viewclass="left"><hd-list:listData="it......
  • ZNS SSD是不是持久缓存的理想选择?
    随着数据量的增加和技术的进步,对于高效、可靠的存储解决方案的需求日益增长。传统的基于块的SSD虽然具有成本效益和持久性的优点,但在处理写密集型和更新密集型工作负载时存在局限性。NAND闪存的特点是数据只能按页(例如4KiB)写入,不支持原地更新,必须以块为单位进行擦除。然而,块接......
  • 关于对 Tomcat 进行小版本升级的快速解决方案
    1、背景描述原来的Tomcat在部署时,使用的是最新的版本9.0.40。经过一段时间后,在原来的Tomcat版本中,发现存在漏洞。因此,需要将旧版本(9.0.40)升级到没有漏洞的新版本(9.0.93)。2、查看Tomcat的版本信息如上图所示,在tomcat的bin目录下打开cmd窗口,运行version.bat程序......
  • 游戏不卡顿,vcomp140.dll来助力——《真三国无双8:帝国》缺失文件解决方案
    《真三国无双8:帝国》作为一款大型游戏,其流畅运行依赖于各种系统文件和库文件的完整与正确。当游戏中出现“vcomp140.dll”文件缺失的问题时,确实会导致游戏卡顿甚至无法启动。以下是一些解决《真三国无双8:帝国》中vcomp140.dll文件缺失问题的方案:一、直接下载并替换vcomp140.d......
  • 智慧园区:AI赋能下的创新应用场景探索及多场景解决方案介绍
    随着人工智能(AI)技术的飞速发展,各行各业都在经历着前所未有的变革,智慧园区作为城市智慧化建设的重要组成部分,正逐步成为AI技术应用的热土。智慧园区通过集成物联网、大数据、云计算、人工智能等先进技术,实现了园区管理、运营、服务等多个环节的智能化升级,为入驻企业及管理者带来了......