CODIS原理 之 数据迁移流程[2.X]

CODIS3 x集群 之 存储集群搭建全过程 阅读详情

CODIS原理 之 数据迁移流程[2.X]

作者:邹祁峰
邮箱:Qifeng.zou.job@hotmail.com
博客:http://blog.youkuaiyun.com/qifengzou
日期:2016.08.03 10:42:40
转载请注明来自”祁峰”的优快云博客

CODIS有一个非常重要的特点就是:支持热扩容。即:在不停止服务的情况下,实现集群设备的增减。其实现此功能的技术基础就是“数据迁移功能”。数据迁移的主要目的是将属于某codis-server组的slot的所有数据迁移到另外一个codis-server组中。


1 创建迁移任务

创建迁移任务有2中方式:一种是直接通过codis-config界面提交迁移任务;另一种是通过给codis-config发送post请求的方式提交迁移任务。但是这两种方式的处理流程是一致的。大体流程如下:
这里写图片描述

流程说明:
1.迁移指令中指明了将编号(from~to)所有slot都迁移到指定codis-server分组。
2.迁移任务的最小单位是slot。因此,本流程将会创建(to - from + 1)个slot迁移任务放入zk任务队列中。
3.注意:如果存在未完成的迁移任务时,则禁止提交新的迁移任务。

2 发起迁移指令

程序coddis-config dashboard会启一个task协程专门用来从zk中获取迁移任务,再将其转换为迁移指令发送给源codis-server程序。其大体流程如下:
这里写图片描述

3.执行迁移操作

源codis-server收到来自codis-config dashboard的slot迁移指令后,则会该slot下的所有key迁移到目的codis-server服务。其大体流程如下:
这里写图片描述

注意事项:
1.源codis-server收到slot迁移指令后,会与目的codis-server直接建立tcp连接。该tcp连接通道用于传输被迁移数据。
2.一旦某key迁移完成,则立即删除。

4 发起强制迁移

正在执行某slot迁移的过程中,同时codis-proxy可能会收到操作属于该slot下key的请求。如果直接去目的codis-server下操作,可能出现该key还未迁移完成,依然还在源codis-server; 如果直接去源codis-server下操作,可能出现该key已经迁移完成。为了防止此类情况的出现,只要该slot处于迁移状态,则不管三七二十一,程序codis-proxy都会给源codis-server发送”迁移该key”的迁移指令。其大体处理流程如下:
这里写图片描述

5 自动负载均衡

由于配置失误,或则后期增减容量导致各分组slot分配不均。一旦出现这种情况,有2种解决方案:1.使用人工提交迁移任务 2.使用自动负载均衡功能。第一种方案的处理已在上面的章节说明,在此无需赘述。第二种方案的大体处理流程如下:
这里写图片描述

注意事项:
1.使用自动负载均衡需要满足一个前提:所有codis-server的分组master必须配置maxmemory。
2.各组codis-server分配多少个slot是由其maxmemory决定。比如:A组maxmemory为10G, B组maxmory为1G,进行自动均衡处理后,A组分配的slot会是B组的10倍。
3.自动负载均衡并不会达到绝对意义上的均衡,其只做到maxmemory与分配的slot个数的比例均衡。无法达到操作次数的均衡。
4.自动负载均衡的处理过程中,如果发现存在maxmemory与分配的slot个数比例不均衡时,则会进行发起slot迁移的操作。达到均衡目的的前提下,此过程中会做到尽量减少slot的迁移。

codis分布式集群 Codis 是一个分布式 Redis 解决方案,对于上层的应用来说,连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别(不支持的命令列表),上层应用可以像使用单机的 Redis一样使用, Codis 底层会处理请求的转发,不停机的数据迁移等工作,所有后边的一切事情,对于前面的客户端来说是透明的,可以简单的认为后边连接的是一个内存无限大的 Redis 服务。所以部署的时候会利用k8s的亲和力将codis-ha和dashboard部署在同一个节点上。 阅读详情

相关推荐

codis数据迁移性能优化

codis数据迁移性能优化PDF

CODIS2.x原理 之 数据迁移流程

CODIS有一个非常重要的特点就是:支持热扩容。即:在不停止服务的情况下,实现集群设备的增减。其实现此功能的技术基础就是“数据迁移功能”。数据迁移的主要目的是将属于某codis-server组的slot的所有数据迁移到另外一个codis-server组中。

做事先做人! 4814

告别Keil手动分区!用CubeMX+VS Code一键生成带Bootloader的STM32 OTA工程

本文详细介绍了如何利用STM32CubeMX和VS Code实现STM32 OTA工程的自动化构建,告别传统Keil手动分区的繁琐流程。通过图形化配置Flash分区、自动生成链接脚本以及实现Bootloader跳转逻辑,开发者可以高效完成远程升级功能开发,显著提升嵌入式开发效率。

weixin_33720956的博客 389

codis3数据迁移探索

背景 在测试codis的过程中,由于现网使用的codis的每个集群的量相对较大,为了确保在codis的升级过程中能够紧急处理突发的一些问题故熟悉一下codis有关的基本原理。 codis的逻辑 codis3相对于codis2性能各方面都有一个比较大的提升,性能提升较大的改造。例如将信息同步从zk中解耦出来,将dashborad的功能跟偏向于一个master管理功能,将迁移的最小的锁的粒度缩小到slot上,在迁移slot的过程中通过设置状态来完成迁移工作,并且在迁移的过程中通过问询的方式来开始以整个迁移的流程

qq_33339479的博客 593

Mac上Ollama服务IP访问失败的3种修复方法(含永久生效配置)

本文详细介绍了Mac上Ollama服务IP访问失败的3种修复方法,包括临时环境变量覆盖、永久Shell配置修改及进阶排查技巧。重点解析了OLLAMA_HOST环境变量的配置原理,帮助开发者解决Connection refused问题,实现局域网IP访问Ollama服务的需求。

weixin_29209805的博客 206

UE5导入MetaHuman虚拟头像后,连接live link face,面部表情捕捉出错修正

UE5 利用live link face 驱动meta human面部表情捕捉

m0_53122690的博客 6594

Codis源码解析——处理slot操作(1)

上一篇我们讲了slot在集群中的分配方式,重点讲了auto-rebalance的原理。之前我们说过,再启动dashboard的时候,有一个goroutine专门用来处理slot的操作。这一篇我们就来看看slot的操作是如何进行的。我们这里举例也是用集群中有两个group和1024个从未分配的slot。首先复习一下,在slot还处于未分配状态的时候,上下文中的1024个SlotMapping如下所示。

橙子wj的博客 4345

用 ADT 连接 SAP S/4HANA Public Cloud 开发租户的完整落地指南

摘要:在SAP S/4HANA公有云中进行ABAP开发时,必须使用Development Tenant(客户端080)而非Customizing Tenant(客户端100)连接ADT工具。开发用户需具备SAP_BR_DEVELOPER角色且写权限不受限,开发对象应创建在结构包的子包中。连接前需确认正确的ABAP服务URL(通常为Launchpad URL去掉"/ui"),并通过运行控制台程序验证全链路功能。典型开发场景如通过BAdI实现业务校验时,需遵循Clean Core原则在指定包

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 336

4000余字为你讲透Codis内部工作原理

一、引言 Codis是一个分布式 Redis 解决方案,可以管理数量巨大的Redis节点。个推作为专业的第三方推送服务商,多年来专注于为开发者提供高效稳定的消息推送服务。每天通过个推平台下发的消息数量可达百亿级别。基于个推推送业务对数据量、并发量以及速度的要求非常高,实践发现,单个Redis节点性能容易出现瓶颈,综合考虑各方面因素后,我们选择了Codis来更好地管理和使用Redis。 ...

个推技术学院 5355

FineBI学习总结

交叉表:一组作为行标题显示在表的左部,另一组作为列标题显示在表的顶部。连接到数据,如果数据不满足数据分析的需求,先进行自助数据集处理。数据集分类:DB表、SQL、Excel、自助数据集。分组表:将报表中的数据按相同项合并为一组显示。1、数据准备2、制作仪表板3、分享仪表板。左合并:保留左边全部数据,合并右边。右合并:保留右边全部数据,合并左边。上下拼接:上下拼接到一张表数据。3、如何实现拼表:多表拼一张。分组–业务包–数据集–字段。字段分类:数值、文本和日期。目录–仪表板–数据准备。维度:文本和日期类型。

Rsun2018的博客 1561

【大模型工程局】告别单打独斗:手把手带你构建多智能体系统(MetaGPT 启示录)

想象一下,不再是只有一个全知全能的 AI,而是有一群各有所长、能够独立思考和行动的“智能体”(Agent)。它们生活在一个共同的环境中,可以相互交流、协作完成共同目标,也可能为了有限资源而相互竞争。这就是多智能体系统(MAS)的核心图景。MAS 的关键特征:自治性 (Autonomy):每个智能体都能独立感知环境、做出决策并执行动作,无需外部直接控制。交互性 (Interaction):智能体之间可以通过某种通信机制(显式或隐式)交换信息、协调行为。

高校图书馆高级系统架构师/研究馆员,推动高校AI从概念演示到可评审、可交付、可运维:路线图与立项评审、PoC交付、评测回归与上线运维(Baseline/Eval/Ops)。 1183

Codis 数据迁移redis cluster

codis集群迁移redis cluster,支持增量同步。

不忘初心,方得始终 548

YOLOv8结合GhostNet实现轻量化目标检测:模型设计与性能评测

GhostNet系列的核心是**“幽灵特征图(Ghost Feature Map)”** 概念:通过简单的线性变换(如深度卷积)生成“幽灵特征”,这些特征与原始特征融合后,能以极低的计算成本带来丰富的语义信息。为了突出GhostNet系列的必要性,设计消融实验:分别测试“仅主卷积”“仅幽灵卷积”“GhostNet(主卷积+幽灵卷积)”三种方案的性能,用数据证明“幽灵特征”的不可替代性。简单来说,引入GhostNet系列的YOLOv8,既能体现你的技术深度,又能让毕设的“落地性”大幅提升。

m0_71589036的博客 114

CODIS2 x原理 之 数据迁移流程

CODIS2 x原理 之 数据迁移流程

qq_43667184的博客 253

构建OneService:打造高效、安全、灵活的企业级数据服务平台

数据服务(OneService)作为统一的数据服务出口,实现了数据的统一市场化管理,有效地降低数据开放门槛的同时,保障了数据开放的安全。

数据与算法架构提升之路专栏 2106

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Codis的原理以及部署—— CODIS (分布式 Redis 解决方案)

1.什么是Codis? Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表), 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的转发, 不停机的数据迁移等工作, 所有后边的一切事情, 对于前面的客户端来说是透明的, 可以简单的认为后边连接的是...

ymeng9527的博客 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

CODIS2.x集群 之 存储集群搭建全过程

Codis2.x存储集群搭建全过程

做事先做人! 6323

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Codis 3.x扩容缩容

Codis 3.x 版本 Codis 扩容 1.登陆10.126.174.24(ansiable)服务器,移动到该目录下 2. 修改ip.txt,将要扩容的服务器ip写入此文件。此处保留server 、proxy 如下 3. 修改/home/sunwenbo/codis-capacity/ansible-codis/roles/vars/vars.yml 文件 4. 执行扩容命令,ansiable无返回报错,则认为部署成功 5. 登陆codis-fe管理页面进行扩容配置 ...

不忘初心,方得始终 1110

CODIS3.x集群 之 存储集群搭建全过程

作者:邹祁峰 邮箱:Qifeng.zou.job@hotmail.com 博客:http://blog.csdn.net/qifengzou 日期:2017.06.07 转载请注明来自”祁峰”的优快云博客 Codis3.x有如下特点: 1.最新 release 版本为 codis-3.2,codis-server 基于 redis-3.2.8 2.支持 slot 同步

做事先做人! 1万+

Codis跨版本升级终极指南:从v3.x到v4.x的完整迁移步骤

Codis 是一个分布式 Redis 解决方案,能够帮助用户轻松构建高可用、可扩展的 Redis 集群。本指南将详细介绍如何从 Codis v3.x 平滑升级到 v4.x,包含准备工作、数据迁移、配置更新等关键步骤,确保升级过程安全高效。 ## 为什么选择升级到 Codis v4.x? Codis v4.x 带来了多项重大改进,包括性能优化、功能增强和架构升级: - **更稳定的集群管理**

gitblog_01133的博客 713

CODIS部署及原理

一、什么是Codis? Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表), 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的转发, 不停机的数据迁移等工作, 所有后边的一切事情, 对于前面的客户端来说是透明的, 可以简单的认为后边连接的是一个内存无限大的 Redis 服务。 二、codis介绍 Codis是一个分布式Redis解决方案,对于上层的应

sl963216757的博客 534

Codis 定制 Redis 的 Slot 系列命令详解:数据迁移、调试与源码实现

> 本文以仓库文档 [doc/redis_change_zh.md](https://link.gitcode.com/i/be0565fb62bfb96d648dfbd91b2971f8) 为主体,结合 [extern/redis-3.2.11](https://link.gitcode.com/i/3d9389673237ed4e452c4cc8ddaf966e) 中定制 Redis 的实际源

gitblog_00891的博客 999

Codis 3.2 with Zookeeper集群搭建

Codis 是一个分布式 Redis 解决方案;codis集群

Lockey23的博客 1161

[Codis] Codis3部署流程

#0 前言   最近因为项目需要,研究了一下传说中的Codis。下面跟大家分享Codis3的搭建流程   https://github.com/CodisLabs/codis #1 Codis是什么   官方的介绍是:"Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有显著区别 (不支持...

weixin_30478619的博客 94

Codis升级实战指南:从v3.x到v4.x的高效避坑手册

在企业级Redis集群Codis的跨版本升级过程中,我们遇到过各种复杂场景下的技术挑战。本文基于实际生产环境的Codis升级经验,分享从v3.x到v4.x的完整迁移方案,重点解决升级过程中遇到的实际问题。无论您是进行Codis升级、Redis集群迁移还是版本升级,这份指南都将为您提供实用的解决方案。 ## 升级痛点:我们踩过的那些坑 在实际的Codis升级过程中,我们发现以下几个关键痛点需要特

gitblog_01152的博客 872

Codis数据迁移工具:从单机Redis到分布式集群的平滑过渡

你是否正面临单机Redis内存不足、性能瓶颈或高可用风险?随着业务增长,数据量激增往往让Redis服务器不堪重负。Codis作为分布式Redis解决方案,提供了无缝迁移工具链,让你无需中断服务即可完成从单机到集群的升级。本文将详解迁移全流程,包括工具选型、风险规避和实操步骤,助你实现零感知数据迁移。 ## 迁移前的准备工作 在开始迁移前,需完成三项核心准备:环境检查、工具部署和风险评估。Cod...

gitblog_00578的博客 399
上一篇: fseek函数、ftell函数和rewind函数
下一篇: linux中使用select和epoll确定异步connect连接是否成功 标签: 网络编程服务器异步connectSO_ERRORsocket 2016-07-31 23:07 1008人阅读 评
linuxheik
博客等级 码龄15年 865粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值