大数据高并发学习笔记(2)

对于大数据问题,最终都会反馈到数据瓶颈上。那么今天就是搞得数据库啦!

木桶理论

桶装水能力是由最短的那块板决定的。   

在一个系统中,或者说是一个企业里,数据时最重要的。所以我们是一定要保证数据的正确性,唯一性。

数据 二八原则:

80%的请求聚焦在  20%的数据上。

80%的请求都是查询  20%是增删改。

读写分离:

 

 

 如图,就是一主多从,发布订阅 的示意图。

发布订阅的好处在于不限制从库的个数,目的是为了提高请求量,均衡分散数据库压力。

SQL SERVER 发布订阅 配置

1.点击配置分发,之后,点击下一步

2.配置快照文件夹地址(快照文件夹需要时共享目录,一遍局域网内机器能够访问)

3.配置分发服务器完成,点击完成按钮,之后再点击一次完成按钮。

 

 

 

 

 

 

 4.配置发布订阅环境。点击本地发布--->新建发布,之后选择我们要发布的数据库--->选择事务发布

 

 

 

 5.点击下一步,到快照代理选项卡,勾线   立即常创建快照并....--->点击下一步-->点击安全设置--->设置代理方式并且输入账号密码

 

 6.填写发布名称---->点击完成即可。等待发布完成。

 

 7.创建订阅     点击本地订阅---->新建订阅----->选择刚才创建的发布服务器----->选择数据同步方式(push  or pull)---->点击下一步、选择订阅服务器,点击下一步

 

 

 8.在分发代理安全性页  点击与订阅服务器的连接----->指定权限和账号------->点击下一步直至完成。

 

 9.至此,SQL SERVER 数据库的主从复制步骤已完成。

    另,要创建多个订阅服务,按照上述订阅服务器的创建即可。

 

 

代码层面需要配置处理主从库的链接

   1.配置好所有的数据库链接。

   2.链接数据的时候,区分读写操作的API。

   3.在读API的时候,做好数据库链接的轮询/加权轮询操作进行数据库连接。

 

数据库负载均衡Moebius

Moebius是一个用作负载均衡的中间层。他会协调同步分发其控制的所有数据库的操作

例如:其控制1,2,3数据库。对1操作之后,这个中间层会将对1的操作在2,3上面执行。

优点:省心省力

缺点:花钱,性能一般。

 

大数据

针对大数据量的数据库进行操作时,查询,插入的性能都将变得很慢。我们需要采用一个方法来提高性能。

分治思想:分库,分表,表分区

表分区:将一个大文件分割为多个小文件。需要使用SQL 按照指定规则对数据进行排列。按规则查询。

分库:  一个库变为多个库----垂直拆分和水平拆分

          垂直拆分:按照业务拆分,不同业务使用不同的库

          水平拆分:按数据拆分,多个库结构一模一样,比如,按照地区,区域,时间对数据进行拆分。

分表:

         垂直分表:将表中的某些字段独立出来进行拆分。一般来说,针对频繁查询的字段,大容量等字段进行拆分,也叫垂直拆分。

         水平分表:将表数据横向拆分(跟分库差不多)。

分库分表之后数据查找问题

1.避免跨库跨表查询。-------设计时需要注意业务需求对查询条件的影响(比如按照时间或者地区等)。

2.避免不了的话,首先,不允许link(因为link链接数据库特别慢)。

           |   提供服务式获取,不要直连数据库。

           ||  使用NoSql进行提前的数据统计/使用全文检索框架/业务妥协。

3.业务妥协。

 

posted @ 2020-07-22 21:55  hzangrg  阅读(100)  评论(0编辑  收藏  举报