贵阳网站推广有几家二手书网站策划书

news/2025/10/5 10:59:23/文章来源:
贵阳网站推广有几家,二手书网站策划书,会员中心网站模板,dedecms网站地图模板怎么1.亿级积分数据分库分表#xff1a;总体方案设计 上一篇博客中写了一下积分数据分库分表的总体方案设计#xff0c;里面说了采用应用程序代码双写的方式实现的增量数据同步#xff0c;本篇就对这一块进行一些细化的介绍#xff0c;包括#xff1a; 为什么不用Canal监听数… 1.亿级积分数据分库分表总体方案设计 上一篇博客中写了一下积分数据分库分表的总体方案设计里面说了采用应用程序代码双写的方式实现的增量数据同步本篇就对这一块进行一些细化的介绍包括 为什么不用Canal监听数据库binlog有哪些优缺点吗 为什么要用代码双写有哪些优缺点吗代码双写怎么实现的 Canal监听binlog 实现流程 Canal监听binlog的方案大致流程如下图所示 对原有老的单表添加Canal监听老表的增删改操作会产生binlog通过Canal将binlog转发到kafka消费kafka的消息将增量的数据通过分库分表中间件写的新的分表中对老的单表的创建时间在Canal监听时间点之前的数据全量迁移到新的分表数据核对校验新老表的数据灰度切流验证这一步没有画出来在运行一段时间后发现没有什么数据不一致了并且增量数据同步追上了老表数据就可以将程序的写切到新分表了 上面说了要增量数据同步追上老表数据但是因为应用程序一直在产生新的写操作导致一直有新的binlog产生导致只能无限逼近老的数据而无法追平所以在第4步切写分表之前要将老表先短暂停写一小段时间等binlog消费完就可以切写了。 优缺点 优点 功能逻辑实现简单 缺点 数据增量同步有短暂的秒级延迟切写分表的时候要停写对业务有影响积分应用程序代码没有通过分库分表中间件做过写入操作直接切写分表有很大的风险引入了新的Canal中间件提升了复杂性 正是因为考虑到使用Canal做增量数据同步需要短暂停写对业务有影响还有就是切写分表的风险所以我们这边才没有使用Canal而是采用了代码双写。 代码双写 实现流程     上一篇博客中关于双写有如下的操作步骤 改造双写代码预发测试多种case跑一下双写开关等校验没问题发布上线上线时双写开关默认关闭可以通过配置中心动态开启打开双写开关新表写入失败先忽略因为更新和删除操作会因为新表数据不存在而失败记录双写开始时间点A将老表的积分明细的createTime小于等于双写开始时间点A5分钟防止时间不同步导致少迁移数据预留一些缓冲时间的数据进行全量迁移到分表新老数据全量数据校验查看数据是否一致同时定时任务每隔一小段时间进行增量校验增量数据因为读取新老数据存在短暂时间差可能会瞬时不一致这种数据隔一段时间再次校验多次校验还不一致的数据进行数据订正老表数据覆盖到新表数据改造代码添加双读的逻辑上线读新表的开关默认关闭低流量节点(凌晨过后)进行白名单、灰度切流userId%10000进行验证逐步流量打开持续观察双写开关切到新表保证只写新表也可以继续写老表一段时间或者创建一个新表往老表同步的canal任务方便回滚完成数据迁移方案系统稳定运行一段时间迁移双写代码下线老表进行资源释放 优缺点 优点 增量数据同步延迟比较低切换写新的积分多表时可以直接切换无需停写积分应用程序代码通过分库分表中间件做过各种增删改查操作各种条件case都跑过后面切写分表就没有风险了 缺点 双写逻辑实现起来相对复杂一些 具体实现 双写改造点增、删、改 双写开关有两个通过配置中心实时切换 写老表开关默认开启新表写入没有问题时可以进行关闭也可以继续写一段时间老表写新表开关默认关闭需要开启时打开 新老表的开关同时打开时表示要进行双写 通过配置中心动态进行切换双写期间需要注意的问题如下 对写新表操作需要记录日志 新表不要求一定写成功不影响服务记录错误日志告警通知等有数据校验订正任务兜底 程序双写的逻辑可以通过对mapper接口添加AOP切面拦截到需要分表的mapper的写方法判断需要双写的时候切换数据源双写到新的分表中通过这种方式可以对原有代码基本上实现零侵入。 AOP切面代码大致如下所示 Aspect Component Slf4j public class DoubleWriteMapperAop {SetString shardMapperSet Sets.newHashSet(PointInfoMapper.class.getSimpleName());Around(execution(* com.wkp.sharding.mapper.*.*(..)))public Object doAroundMapper(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {MethodSignature signature (MethodSignature) proceedingJoinPoint.getSignature();Method method signature.getMethod();String clazzName method.getDeclaringClass().getSimpleName();//不用分表的mapper不用特殊处理直接返回if (!shardMapperSet.contains(clazzName)) {return proceedingJoinPoint.proceed();}//双写前和双写时这里写的老表最后切到写分表时这里写的分表Object result proceedingJoinPoint.proceed();//获取当前mapper的方法上有没有加分片写的注解ShardWrite shardWrite method.getAnnotation(ShardWrite.class);//是写方法 threadlocal里面获取到了需要双写的标识if (shardWrite ! null DoubleWriteThreadLocal.needDoubleWrite()) {//切数据源写分表这里执行双写逻辑 proceedingJoinPoint.proceed();}return result;} } DoubleWriteThreadLocal.needDoubleWrite()DoubleWriteThreadLocal是个ThreadLocal里面获取到是否需要双写的标识这个ThreadLocal的值是前面通过配置中心判断是否双写开关开着如果开着双写会将ThreadLocal的双写标识设置为true。 AOP切面这里通过ThreadLocal判断而没有通过读取配置中心原因是可能前面配置中心打开了双写但是执行到切面时恰好配置中心将开关从双写切到写分表了那么这里就不会双写分表了分表就会丢失一条数据。 后面切写的时候直接通过配置中心切换开关即可动态切换只写到分表中。

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

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

相关文章

【android bluetooth 案例分析 04】【Carplay 详解 3】【Carplay 连接之车机主动连手机】 - 教程

【android bluetooth 案例分析 04】【Carplay 详解 3】【Carplay 连接之车机主动连手机】 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !i…

实用指南:24.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--认证微服务

实用指南:24.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--认证微服务2025-10-05 10:55 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !i…

详细介绍:STM32 串口通信①:USART 全面理解 + 代码详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

[算法/数据结构] 数据结构与算法

0 序工作这么些年,数据结构、及其基础算法,在工作实践中仍时长闪现。为此,此篇进行一定的归纳总结,并持续更新完善。1 概述:数据结构与算法简介数据结构(Data Structure)是计算机中存储、组织数据的方式。数据结…

基于点标注的弱监督目标检测方法研究 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

黑河北京网站建设设计公司的名字

亚马逊云科技近日在纽约峰会上宣布 Amazon Elastic Compute Cloud(EC2)P5 实例正式可用。这是一款下一代 GPU 实例,由最新的英伟达 H100 Tensor Core GPU 提供支持,可以满足客户在运行人工智能、机器学习和高性能计算工作负载时对高性能和高扩展性的需求…

怎么做网站app一流的聊城做网站公司

本文地址http://www.cnblogs.com/Bond/p/3972854.html 最近一直做移动端,没和IE6打交道了,瞬间感觉世界变美好了。移动端虽然还是各种坑,但是比起修复IE6那还是轻松多了,移动端很多效果可以用CSS3来做,感觉一切都和谐…

图论new

边双连通分量 #include<bits/stdc++.h> using namespace std; const int N = 5e5+5; int n, m, cnt, ans, dfn[N], low[N]; //dfn记录dfs序,low表示这个点除树边外能连到最浅 vector<int> mp[N], mp2[N]…

2025夹丝玻璃厂家最新企业品牌推荐排行榜,艺术夹丝玻璃,淋浴房夹丝玻璃,极简门夹丝玻璃,金属夹丝玻璃公司推荐!

在夹丝玻璃行业快速发展的当下,市场上的源头厂家数量不断增多,然而行业也面临着诸多问题。一方面,部分厂家缺乏核心技术,生产的夹丝玻璃在安全性、耐用性等方面难以满足市场需求,产品质量参差不齐;另一方面,一些…

斜率优化dp复习笔记

$$ f_j+sum_isum_j-sum_j^2>f_l+sum_isum_l-sum_l^2 \Rightarrow \frac{(f_j-sum_j^2)-(sum_l-sum_l^2)}{-sum_j-(-sum_l)}>sum_i $$那么点集就是 $(-sum_x,f_x-sum_x^2)$。那么对于当前点 $i$,所有斜率 $\leq …

掌握形式验证,护航芯片安全

在 IC 设计的世界里,任何一个微小错误都可能引发重大后果。形式验证(Formal Verification),以其数学证明的方式,成为确保设计可靠性与安全性的强大盾牌。 核心基础与优势解析 1、精准规范,明确预期行为 一切始于…

STL-list - 实践

STL-list - 实践2025-10-05 10:35 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-famil…

2025橡胶软接头厂家最新企业品牌推荐排行榜,法兰橡胶软接头,可曲挠,挠性,KXT,耐油,EPDM,耐腐蚀,三元乙丙橡胶软接头,橡胶柔性软接头公司推荐!

在橡胶软接头行业,质量管控与服务体系的缺失已成为制约产业升级的关键瓶颈。具体表现为: 产品质量两极分化:部分企业为压缩成本,违规采用再生胶、回收料等劣质原料,导致产品出现密封性失效、老化周期缩短等问题,…

整体二分笔记

整体二分 本来感觉挺神秘的一个东西, 学完了似乎没有多难, 放几个板子随便写写吧(今天数学不想做题) 从最最最最人尽皆知的区间第 \(k\) 大问题开始吧 引入 如果我想问你一个序列中的区间的第 \(k\) 大,你会如何?…

如何自做自己的网站网络设计开题报告

抽象节点这个特性自小程序基础库版本 1.9.6 开始支持。在组件中使用抽象节点有时&#xff0c;自定义组件模板中的一些节点&#xff0c;其对应的自定义组件不是由自定义组件本身确定的&#xff0c;而是自定义组件的调用者确定的。这时可以把这个节点声明为“抽象节点”。例如&am…

有什么网站可以做投票邯郸菜鸟网站建设

OD统一考试 题解&#xff1a; Java / Python / C 题目描述 一根X米长的树木&#xff0c;伐木工切割成不同长度的木材后进行交易&#xff0c;交易价格为每根木头长度的乘积。规定切割后的每根木头长度都为正整数,也可以不切割&#xff0c;直接拿整根树木进行交易。请问伐木工如…

响应网官方网站网站界面风格设计

1. 今日摸鱼计划 今天来学习一下ADC的原理&#xff0c;然后把ADC给实现 ADC芯片:ADC128S102 视频&#xff1a; 18A_基于SPI接口的ADC芯片功能和接口时序介绍_哔哩哔哩_bilibili 18B_使用线性序列机思路分析SPI接口的ADC芯片接口时序_哔哩哔哩_bilibili 18C_基于线性序列机的S…

量化投资 —— 实践

量化投资 —— 实践地址: https://item.taobao.com/item.htm?id=898078161839&mi_id=0000bSMU6-qva9mG_nEYyyLOcfGeJ5-tgwvwKtjY8IHE980&pvid=4580fb7a-c699-4f97-a5c0-8c810fa24035&scm=1007.40986.449…

详细介绍:性能优化 - 案例篇:缓存_Guava#LoadingCache设计

详细介绍:性能优化 - 案例篇:缓存_Guava#LoadingCache设计pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Conso…

2025年X射线管厂家最新企业品牌推荐排行榜,工业用金属陶瓷,波长色散荧光分析,应力衍射分析,管板角焊缝,轮胎检测,辐照,固定阳极波纹陶瓷,测厚,食品检测 X 射线管公司推荐

在工业无损检测领域,X 射线管作为核心元件,其质量与性能直接影响检测结果的准确性和可靠性,对国防、石油、电力、汽车零部件等关键行业的发展至关重要。当前,市场上 X 射线管厂家数量众多,产品质量参差不齐,部分…