缓存出海方案

news2024/11/18 23:33:29

优质博文: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必须等待,这有可能牺牲掉相当大的性能来实现此功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2065976.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从《黑神话:悟空》爆火看中国游戏行业的崛起

近年来,中国游戏行业经历了前所未有的快速发展与变革,而《黑神话:悟空》的爆火更是成为了这一进程中的标志性事件。这款游戏不仅在国内市场引起了巨大轰动,也在全球范围内赢得了广泛关注与赞誉,其成功背后折射出中国游戏行业在技术…

住宅代理和移动代理的全面比较:提高隐私和效率的最佳选择

近年来随着网络的发展,我们在网络上的行为越来越透明化。网络隐私和数据安全已经成为企业和个人用户不可忽视的一部分,如何提高我们的网络访问安全指数是一个值得商讨的问题。当下,代理技术在提高网络效率方面发挥了重要作用。本文将深入探讨…

redis面试(十八)RedLock加锁原理

什么是redLock RedLock算法思想,不只在一个redis实例上创建锁,是在多个redis实例上创建锁,n / 2 1,必须在大多数redis节点上都成功创建锁,才能算这个整体的RedLock加锁成功,避免说仅仅在一个redis实例上加…

uni-app01

工具:HuilderX noed版本:node-v17.3.1 npm版本:8.3.0 淘宝镜像:https://registry.npmmirror.com/ 未安装nodejs可以进入这里https://blog.csdn.net/a1241436267/article/details/141326585?spm1001.2014.3001.5501 目录 1.项目搭建​编辑 2.项目结构 3.使用浏览器运行…

【数据结构】总结二叉树的概念以及存储结构

目录 1. 树的概念及结构 1.1 树的名词定义 1.2 树的表示 2. 二叉树的概念及结构 2.1 二叉树的概念 2.2 特殊的二叉树 2.2.1 满二叉树 2.2.2 完全二叉树 2.3 二叉树的存储结构 2.3.1 顺序存储 2.3.2 链式存储 3. 选择题 1. 树的概念及结构 1.1 树的名词定义 1. 节…

基于x86 平台opencv的图像采集和seetaface6的口罩人脸检测识别功能

目录 一、概述二、环境要求2.1 硬件环境2.2 软件环境三、开发流程3.1 编写测试3.2 配置资源文件3.2 验证功能一、概述 本文档是针对x86 平台opencv的图像采集和seetaface6的口罩人脸检测识别功能,opencv通过摄像头采集视频图像,将采集的视频图像送给seetaface6的口罩人脸检测…

Docusign 电子签名的合法性指南【中国】

电子签名法律概述 中华人民共和国(“中国”)于2004年颁布了《电子签名法》(“电子签名法”),并于2015年和2019年进行了重大修订。电子签名法规定,只要当事人同意采用电子签名形式,文件的法律效…

基于重要性加权的LLM自我改进:考虑分布偏移的新框架

LLM自我改进的典型范式是在自生成数据上训练LLM,但是其中的部分数据可能有害,所以应该被过滤掉。但是目前的工作主要采用基于答案正确性的过滤策略,在这篇论文中,证明过滤掉正确但具有高分布偏移程度(DSE)的样本也可以有利于自我改进的结果。 论文的主要贡献如下: 提出了一个…

高并发集群饿了么后端的登录模块

高并发集群饿了么后端的登录模块 1.数据库 非交互式python: 非交互式: 2.数据库的负载均衡:阿里巴巴的mycat 修改配置文件 /usr/local/mycat/conf/server.xml :对外的账号 密码 数据库 /usr/local/mycat/conf/schema.xml 如果出现启动异常&…

搭建自己的金融数据源和量化分析平台(七):定时更新上市公司所属行业门类及大类

0x00 前言 由于此前从深交所下载的股票信息中只有行业门类信息,没有行业大类信息,导致后续解析三大报表和量化选股的时候无法进行: 可以看到深交所的股票是没有大类信息的。 再看看上交所的保险股: 因此需要将深交所股票的所属…

关于 IoTDB 的疑问,我们这次有奖征集!

新的社区活动来啦! 你是否对 IoTDB 的技术/操作还有疑问,并需要得到原厂研发团队的解答? 你是否希望在踊跃提出疑问的同时,收获一份精美小礼物? 为回馈新老朋友对 Apache IoTDB 开源社区的活跃贡献,最新社区…

数据结构day01(数据结构、算法基础知识)

目录 【1】数据结构基础知识 1》什么是数据结构 2》数据 3》逻辑结构 1>线性关系 2>层次关系 3>网状关系 4》存储结构 1>顺序存储 2>链式存储 3>索引存储结构 4>散列存储 5》操作 【2】算法基础知识 1> 什么是算法 2> 算法设计 3> 算…

8金收官!仿真工程师为你揭秘中国跳水梦之队的“水花消失术”

巴黎奥运会上,中国跳水梦之队再一次上演“水花消失术”,不仅赢得了裁判的高分,也令全球观众惊叹不已。 发挥出色的运动员入水如同“牛奶入水”,顺滑得仿佛不带一丝涟漪;而发挥失误的运动员仿佛“炸鱼队”来袭&#xf…

.Net Linux平台下System.Drawing.Imaging替代方案

文章目录 前言一、ImageSharp库二、SkiaSharp库三、System.Drawing.Common库总结 前言 在.NET Standard中,System.Drawing.Imaging 命名空间并不直接支持,因为 System.Drawing 命名空间主要是为了Windows Forms(WinForms)和GDI设计…

FPGA第 5 篇,FPGA技术优略势,FPGA学习方向,FPGA学习路线,FPGA专业知识的学习方向(FPGA现场可编程门阵列学习路线和方向)

前言 前几篇讲了一下FPGA的发展和应用,以及未来前景。具体详细,请看 FPGA发展和应用,以及未来前景https://blog.csdn.net/weixin_65793170/category_12665249.html 这里我们来,记录一下,FPGA专业知识的学习路线 一.…

World of Warcraft [CLASSIC] the Eye of Eternity [EOE] P1-P2

World of Warcraft [CLASSIC] the Eye of Eternity [EOE] 永恒之眼(蓝龙) 第一阶段 第二阶段 第三阶段 载具1-6技能介绍 World of Warcraft [CLASSIC] the Eye of Eternity [EOE]_永恒之眼 eoe-CSDN博客 永恒之眼怎么出副本呢,战斗结束&am…

泛微E9如何更新缓存

泛微E9如何更新缓存 在E9中,是默认开启了数据缓存的,如果直接操作数据库是会存在缓存不更新的问题,E9系统提供以下几种方式进行缓存清空的方式。 注:原则上禁止通过非程序渠道直接修改OA数据库数据,可以直接在页面进行…

LCR 162. 数字 1 的个数 题解

189轮转数组 189. 轮转数组 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 时间复杂度o(n),空间复杂度 o(1) class Solution {public void rotate(int[] nums, i…

Python 如何使用 functools 模块

functools 模块是 Python 标准库中的一个重要模块,它提供了一些有用的高阶函数和工具,帮助开发者更轻松地操作和处理函数。functools 中的工具主要用于函数的缓存、包装、偏函数等功能。 1. functools 模块概述 functools 模块的设计目的是为了简化和增…

无人机+消防车:高楼灭火系统技术详解

“无人机消防车”高楼灭火系统技术是一种创新的消防解决方案,旨在解决高层建筑灭火难题。以下是对该技术的详细解析: 一、技术背景与需求 高层建筑数量多,火灾隐患多发。根据国家消防救援局发布的数据,高层建筑火灾频发&#xf…