基于代理的业务存储扩容方案

1.原始架构,要有id,group

2. 数据分片方案假设是id%2==0 的group0和id%2==1的group1,把group1的数据迁移到新的存储中,过程中应该不在有数据的更新操作。

3.前端把id%2的计算加到实现中,即id%2==0的打上group0的标示,id%2==1的打上group1的标示

4.把group0中的group1的数据,即id%2==1的清理掉,因为在group1中已经有了

原文地址:https://www.cnblogs.com/dodng/p/9042966.html

时间: 2024-10-26 07:55:02

基于代理的业务存储扩容方案的相关文章

架构组件:基于Shard-Jdbc分库分表,数据库扩容方案

一.数据库扩容 1.业务场景 互联网项目中有很多"数据量大,业务复杂度高,需要分库分表"的业务场景. 这样分层的架构 (1)上层是业务层biz,实现业务逻辑封装: (2)中间是服务层service,封装数据访问: (3)下层是数据层db,存储业务数据: 2.扩容场景和问题 当数据量持续新增,面临着这样一些需求,两台数据库无法容纳,需要数据库扩容,这里选择2台-扩容到3台的模式,如下图: 这样扩容的问题 (1)分库分表的策略导致数据迁移量大: (2)影响数据的持续服务性: (3)指定时间

基于Shard-Jdbc分库分表模式下,数据库扩容方案

本文源码:GitHub·点这里 || GitEE·点这里 一.数据库扩容 1.业务场景 互联网项目中有很多"数据量大,业务复杂度高,需要分库分表"的业务场景. 这样分层的架构(1)上层是业务层biz,实现业务逻辑封装:(2)中间是服务层service,封装数据访问:(3)下层是数据层db,存储业务数据: 2.扩容场景和问题 当数据量持续新增,面临着这样一些需求,两台数据库无法容纳,需要数据库扩容,这里选择2台-扩容到3台的模式,如下图: 这样扩容的问题(1)分库分表的策略导致数据迁移量

数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案

作为一种数据存储层面上的水平伸缩解决方案,数据库Sharding技术由来已久,很多海量数据系统在其发展演进的历程中都曾经历过分库分表的Sharding改造阶段.简单地说,Sharding就是将原来单一数据库按照一定的规则进行切分,把数据分散到多台物理机(我们称之为Shard)上存储,从而突破单机限制,使系统能以Scale-Out的方式应对不断上涨的海量数据,但是这种切分对上层应用来说是透明的,多个物理上分布的数据库在逻辑上依然是一个库.实现Sharding需要解决一系列关键的技术问题,这些问题主

ActiveMQ笔记(3):基于Networks of Brokers的HA方案

上一篇介绍了基于ZK的ActiveMQ HA方案,虽然理解起来比较容易,但是有二个不足: 1)  占用的节点数过多,1个zk集群至少3个节点,1个activemq集群也至少得3个节点,但其实正常运行时,只有一个master节点在对外响应,换句话说,花6个节点的成本只为了保证1个activemq master节点的高可用,太浪费资源了. 2)  性能下降太明显,比起单节点的activemq,性能下降了近1个数量级. 这一篇将介绍基于networks of brokers的HA方案,不需要借助zk等

基于OceanStor Dorado V3存储之精简高效 Smart 系列特性

基于OceanStor Dorado V3存储之精简高效 Smart 系列特性 在线重删(SmartDedupe) OceanStor Dorado V3 在线重复数据删除是指在将数据写入闪存介质之前进行重复数据删除.在线重删的过程如下所述:存储系统会对新写入的数据按照重删粒度进行分块,并对分块计算指纹,与系统中已存在的指纹进行对比(进行查重).如果找到相同指纹,再读取指纹对应的数据块与新写入数据块进行逐字节对比,如果对比通过,则仅增加指纹索引,不再重复写入数据块.如果未找到相同的指纹或逐字节对

Android 基于Netty的消息推送方案之概念和工作原理(二)

上一篇文章中我讲述了关于消息推送的方案以及一个基于Netty实现的一个简单的Hello World.为了更好的理解Hello World中的代码,今天我来解说一下关于Netty中一些概念和工作原理的内容,假设你认为本篇文章有些枯燥.请先去阅读<Android 基于Netty的消息推送方案之Hello World(一)> ChannelEvent Netty是基于事件驱动的,就是我们上文提到的.发生什么事.就通知"有关部门". 所以.不难理解.我们自己的业务代码中,一定有跟这

Android 基于Netty的消息推送方案之对象的传递(四)

在上一篇文章中<Android 基于Netty的消息推送方案之字符串的接收和发送(三)>我们介绍了Netty的字符串传递,我们知道了Netty的消息传递都是基于流,通过ChannelBuffer传递的,那么自然,Object也需要转换成ChannelBuffer来传递.好在Netty本身已经给我们写好了这样的转换工具.ObjectEncoder和ObjectDecoder,下面我们介绍一个案例. 1. 我们构造一个用来传输的对象(JavaBean) [java] view plaincopy

模板--------注册与登录_基于xml格式的存储

代码: 注册与登录_基于xml格式的存储.zip 功能: > 注册(带验证码) > 登录 ------------- JSP: * login.jsp  --> 登录表单 * regist.jsp --> 注册表单 * index.jsp -->  主页(只有登录成功才能看到) Servlet: * LoginServlet * RegistServlet Service: * UserService --> 与用户相关的业务类 Dao: * UserDao -->

浅谈数据库扩容方案

起因 每一个项目都是由小项目发展而来,从最初的一台数据库,到后面的几千上万台数据库,这发展的过程,我们都要涉及到一个技术问题:当数据量太大的时候,如何进行扩容? 案例 小明现在负责一个站点,用户数据库有2个,网站用户数据通过ID取模,分别存在两台用户数据库中,现在数据增大,两台数据库已经不够用了,现在需要增加数据库进行扩容,小明应该如何进行扩容? 方案 停机扩容 平滑扩容 停机扩容 我们先来了解下停机扩容方案,这是一种很多人初期都会使用的方案(几台数据库的时候),具体步骤: 小明先挂公告,告诉大