简单的列子:
一张用户表 id, name, xxx ,上千万级别单台的mysql肯定也扛不住查询的压力,一般这个时候我们会做
mysql主从,对用户板分区, 1主多从;读写分离,
可以减少读库的压力,然后对用户表进行垂直切分,按照业务做相关索引表等;
当用户上亿的时候这个时候,这个时候也扛不住了
就必须考虑要水平切分数据库了
把user表 按照某种规则分到 db1, db2, db3,,,,,, dbn个数据库上;
规则: 分区标记字段, 按大小 分, 取摸, hash(partionId) ,弄一个库高一张记录对应表
当这个时候你的db2挂了,该这么办呢?
我们分过去的数据肯定有问题了?面试的时候这个问题 没答的很好,一直皎洁路由规则去了
呆的公司没有如此庞大的用户量
所以我们可以考虑ha 了;
对每一个db做一个备份数据库,当db1挂了自动迁移到db1的备份数据库
有个很详细的blog:http://zhengdl126.iteye.com/blog/419850
可以找到大概的术语很等
为了能够加深理解和对整体的把握
可以参考: 阿狸的 cobar和cobarclient
cobar是独立部署的服务,这里主要学习下 cobarclient的思想和方法:
有关章节同时可以参考: 《大型网站和java中间件 》 数据库设计部分:
今天看了下cobarclient的源代码;写的很清晰:
相关推荐
总之,《RedSoft多层分布式架构实例源码》是一个全面了解和学习分布式系统设计、编程语言应用和软件架构的宝贵资源。通过对源码的深入研究,开发者能够提升自己的技术水平,更好地应对复杂的分布式系统挑战。
在C#中实现分布式数据库查询,我们需要理解.NET Framework中的数据访问层(DAL),它提供了一种与数据库交互的统一接口。 1. ADO.Net概述:ADO.Net是Microsoft提供的一个用于访问数据库的组件,包括DataSet、...
网站架构设计是构建大型、高可用、可伸缩和高性能网站的关键步骤。在这个领域,我们需要理解不同的技术、原则和策略,以确保系统能够应对不断增长的用户量和业务需求。 首先,我们关注语言的选择,虽然PHP、Java、...
【数据库中间件架构设计与实现】\n\n数据库中间件是一种位于应用程序和数据库之间的软件层,它的主要目的是...设计和实现数据库中间件需要全面理解业务需求、数据库原理以及分布式系统架构,以找到最适合的解决方案。
本文件重点探讨了如何设计和优化网站架构,以实现高可用性、可伸缩性和高性能,以及面对分布式系统中的事务处理和数据存储策略。 首先,语言的选择并非决定网站架构可伸缩性的关键,更重要的是架构设计本身。例如,...
Dal2.1.x是一个分布式数据访问层,结合了MySQL Proxy和Memcached的功能,提高了可用性和可扩展性。Dal2.2.x则是最新的系列,增加了如分布式事务和主从数据库支持等新特性。 Dal的软件定位强调中立性,即语言中立和...
### 国内大公司数据架构概述 随着大数据时代的到来,数据已经成为推动企业发展的核心资源之一。对于大型互联网公司而言,构建高效稳定的...这些实践经验对于我们理解和设计自身企业的数据架构都具有重要的参考价值。
大规模网站架构设计是构建能够处理高流量、高并发和海量数据的互联网应用的关键。这个领域涉及到许多技术细节和策略,旨在实现高可用性、可伸缩性和高性能。 首先,架构设计的选择并不局限于特定的编程语言,如PHP...
大规模网站架构设计是互联网行业中一个至关重要的领域,它关乎到网站的稳定性、可扩展性和性能。本讲座将探讨一些核心概念和技术,以帮助理解如何构建能够处理海量用户和数据的系统。 首先,语言的选择并不是决定...
.NET三层架构是一种常见的软件设计模式,它将应用程序分为三个主要层次:表现层(Presentation Layer)...在实际开发过程中,开发者需要根据项目需求和资源状况,合理选择和设计各层的实现方式,以达到最佳的系统效果。
大规模网站架构设计是构建...总的来说,大规模网站架构设计是一门综合了技术选型、分布式系统理论、数据库管理和扩展策略的复杂学科。理解并灵活运用这些知识,才能构建出能够应对不断增长的业务需求的高效网站架构。
三层架构是软件设计中的一个经典模式,主要分为表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。这种架构使得系统各部分职责明确,易于维护和扩展。 1. **表现层(UI)**:这一层主要负责用户界面的设计和...
这种架构设计的主要目的是提高软件的可维护性、灵活性和扩展性。以下是对N层架构及其各层的详细解释: 1. 表现层(Presentation Layer): 表现层是用户与系统交互的界面,负责显示信息和接收用户的输入。在ASP.NET...
MD51分布式多层应用系统是一个典型的IT技术实践案例,主要涵盖了软件开发中的多个关键领域,包括系统架构、数据库设计、分布式计算以及源码管理等。这个系统以其独特的MD5命名,可能暗示着它在数据校验或安全性方面...
.NET 三层架构结合WCF(Windows Communication Foundation)框架是一种常用的企业级应用开发模式,它可以实现应用程序的业务逻辑、数据访问和用户界面之间的清晰分离,提高代码的可维护性和可复用性。本实例中,该...
大规模网站架构设计是互联网行业中至关重要的一个领域,它关乎到网站的稳定性、可扩展性和高性能。这份名为"经典大规模网站架构.ppt"的文件详细探讨了这个话题,并提供了多种架构策略和技术。 首先,语言的选择在...