zoukankan      html  css  js  c++  java
  • 数据库高性能解决方案

    高性能数据库集群的第一种方式是: 读写分离,其本质是将访问压力分散到集群中的多个节点,但是没有分散 存储压力;第二种方式是:分库分表,既可以分散访问压力,又可以分散存储压力。

    一 读写分离

      读写分离的基本原来是将数据库读写操作分散到不同的节点上,读写分离的基本实现如下:

    1.  数据库服务器搭建主从集群,一主一从,一主多从都可以
    2. 数据库主机负责读写操作,从机只能负责读操作
    3. 数据库主机通过复制将数据同步到从机,每台数据库服务器都存储了所有的业务数据
    4. 业务服务器将写操作发给数据库主机,将读操作发给数据库从机

        注意:这里用的是主从集群,而不是主备集群,备机一般认为仅仅提供备份功能,不提供访问功能;而从机可以理解为仆从,仆从是需要帮助主人干活的,从机是需要提供读数据的功能,所以使用主备还是主从,是要看场景的,这两个词不是完全等同的

      读写分离的实现逻辑并不是很复杂,但是在实际应用过程中需要应对复制延迟带来的复杂性

           主从复制延迟会带来一个问题:如果业务服务器将数据写入到数据库主服务器后立刻进行读取,此时读操作访问的是从机,主机还没有将数据复制到从机,到从机读取数据是读取不到最新数据的,业务上可能会存在问题。

           解决主从复制延迟有几种常见的方法

    1. 写操作后读操作指定发给数据库主服务器
    2. 读从机失败后再读一次主机,这就是通常所说的二次读取,二次读取和业务无绑定,只需要对底层数据库访问的API进行封装即可,实现代价较小,不足之处在于如果存在很多的二次读取,将大大增加主机的读操作压力。
    3. 关键业务读写操作全部指向主机,非关键业务采用读写分离

  • 相关阅读:
    百度地图(8)-图层
    百度地图(7)-点聚合
    百度地图(6)-信息窗口
    鸟哥学习笔记二(基础篇第七章)
    鸟哥学习笔记一(基础篇第六章)
    sql server学习笔记二
    sql server学习笔记一
    centos下sudo命令不能使用
    CentOS系统时间与现在时间相差8小时解决方法
    SUID GUID详解
  • 原文地址:https://www.cnblogs.com/anqli-java/p/9941920.html
Copyright © 2011-2022 走看看