东莞网络推广服务_深圳网络推广方案_长沙微信公众号开发_上海企业网站

佛山seo

济南建网站、泰州seo、永久使用、不限域名、免费com域名注册

西安网页设计?

东莞网络推广服务_深圳网络推广方案_长沙微信公众号开发_上海企业网站

水平拆分的思路,就是将原本存放在单个RDS数据库中的数据,根据业务ID不同,拆分到多个数据库中(参见图2)。拆分后,各库的表数量及表结构都保持一致。水平拆分首先需要确立唯一的业务主表,即其他所有表的数据都与主表ID(前文所说的业务ID)存在直接或间接的主从关系,可以通过主表ID对全部数据做很好的切分。我们选择的业务主表为用户表,其他业务表或表的父表都包含一个用户ID。因此,我们切分的目标就是将不同用户数据存放到不同的数据库中。

确定了拆分规则后,下一步是着手封装Sping数据访问封装层(DBWrapper)。DBWrapper介于DAO与JDBC之间,每个业务DAO进行数据库基本操作,都会经过DBWrapper。它的主要作用是将数据库架构的变化对业务层透明,业务层可以如同操作单个DB一样,调用DBWrapper提供的数据库操作接口,而判断操作哪个数据库的逻辑,则全部交由DBWrapper封装完成(参见图3)。

DBWrapper主要提供新用户初始化和数据库操作接口。在新增用户初始化到系统时,需先动态判断系统各库的负载分布情况。粗略一点的算法就是判断各库的用户数,如共有4个库,可以根据user_id%4的情况决定目标库;再精细一点可以挖掘下核心业务数据的分布情况,具体分配算法需要基于业务设定(如考虑不同用户的平均订单量)。通过各库压力综合计算后,分析出压力最小的目标数据库,并将该新增用户数据存放到指定的目标库,同时更新路由信息(Router)。

模板建站云南网站建设百度收录提交入口网站技术免费免费建站苏州优化网站南京seo优化长沙做网站价格沧州网站优化北京网络推广长沙域名注册南宁网站建设公司深圳网站优化哪家好如何建购物网站百度seo优化公司江西seo公司山东网站建设免费做网站怎么做网站东莞网络营销外包企业建网站昆明双鼎网站制作北京网站推广公司重庆网站外包简单网站企业建网站宁波小程序开发淮安网络营销西安网站制作嘉兴网站制作网站维护收费做购物网站

猜你喜欢