读写分离: 为保证数据库数据的一致性,我们要求所有对于数据库的更新操作都是针对主数据库的,但是读操作是可以针对从数据库来进行。大多数站点的数据库读操作比写操作更加密集,而且查询条件相对复杂,数据库的大部分性能消耗在查询操作上了。

主从复制数据是异步完成的,这就导致主从数据库中的数据有一定的延迟,在读写分离的设计中必须要考虑这一点。以博客为例,用户登录后发表了一篇文章,他需要马上看到自己的文章,但是对于其它用户来讲可以允许延迟一段时间(1分钟/5分钟/30分钟),不会造成什么问题。这时对于当前用户就需要读主数据库,对于其他访问量更大的外部用户就可以读从数据库。

适当放弃一致性:在一些实时性要求不高的场合,我们适当放弃一致性要求。这样就可以充分利用多种手段来提高系统吞吐量,例如页面缓存、分布式数据缓存、数据库读写分离、查询数据搜索索引化。
可以通过程序控制,将强一致性要求的功能(比如存钱、取钱)的读写操作均指向主数据库,或者将写操作采用“双写”的方式实现;而弱一致性(最终一致性)要求的功能(比如更新微博(写)、金融查询账户(读))实现读写分离。

因此:

我的想法是要使用读写分离来实现系统吞吐量的提升就要从业务上想办法降低一致性的要求。

对必须要有一致性的功能是无法进行读写分离的,可以采用多库不区分读写以及memcache缓存技术来实现。

转载自:

数据库读写分离和数据一致性的冲突

读写分离的适用场景(转载)相关推荐

  1. Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解【转载】

    本文只为备份,以防失效.原文请看https://blog.51cto.com/freeloda/1288553 补充说明:部分图片为测试图片,未完全复制,参考文字描述即可. Nginx 反向代理.负载 ...

  2. 【纯干货】Amoeba实现MySQL主从同步与读写分离

    [纯干货]Amoeba实现MySQL主从同步与读写分离 一.简介 amoeba简介 Amoeba(变形虫)项目,该开源框架于2008年开始发布一款 Amoeba for Mysql软件.这个软件致力于 ...

  3. Mysql实现非程序控制读写分离

    五一假期,有个博友给我发邮件,说我的这篇blog:http://bobwu.blog.51cto.com/2918362/537077 只能通过程序员在程序中实现读写分离,咨询能否实现程序员无察觉的读 ...

  4. mysql-proxy完成mysql读写分离

    前不久做了下mysql读写分离的实验,也参考了很多的资料,谢谢哪些提供资料的兄弟.   环境:   192.168.100.210           192.168.100.104          ...

  5. MySQL读写分离介绍及搭建

    MySQL读写分离介绍及搭建 转载于:https://www.cnblogs.com/gotodsp/p/6511297.html

  6. Amoeba-mysql开源项目高可用读写分离

    Amoeba为阿里的工程师的开源项目,实现高并发集群读写分离而开发的 转载请原创作者:QQ:87180023 前提:master和slave已经做好了主从复制 下载: jdk-6u3-linux-i5 ...

  7. 2:为什么要读写分离

    1:为什么数据库要读写分离 在互联网的系统应用是一个  读多写少的应用,比如电商系统中,商品浏览的次数是比下单要多的.数据库承载压力大,主要是由这些读的请求造成的,那么我们是不是可以把读操作和写操作分 ...

  8. MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 转载

    http://heylinux.com/archives/1004.html MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 Mysql作为目前世界上使用最广泛 ...

  9. 深入理解分布式技术 - 读写分离场景及注意事项解读

    文章目录 Target:读多写少场景 主从复制 binlog 日志 binlog 有三种格式 (Statement.Row 及 Mixed) Statement 格式,基于 SQL 语句的复制 Row ...

最新文章

  1. 用 Flask 来写个轻博客 (36) — 使用 Flask-RESTful 来构建 RESTful API 之五
  2. Airbnb JavaScript 编码风格指南(2018年最新版)
  3. 2011Google校园招聘笔试题
  4. TCP与UDP的选择--结合QQ来说明
  5. 存储过程中ORA-01031: insufficient privileges的解决方法
  6. Error running ‘Unnamed‘: Unable to open debugger port (127.0.0.1:xxxx)
  7. java list 去空字符串_从字符串列表中删除空字符串
  8. 大学生网课搜题的网站源码 附带一个免费接口
  9. OpenCV:图像检索
  10. 南京市儿童医院用医保身份(医保通道)网上预约挂号以及取号、付费看病流程
  11. 腾讯视频、爱奇艺、豆果美食等为线下贷款中介导流、个人信息遭倒卖
  12. 循环神经网络--RNN GRU LSTM 对比分析
  13. 微信小程序第三方平台开发流程以及改善
  14. c语言tft屏浮点数显示,编个可显示中文的TFT程序
  15. BIOS入门基础------ACPI
  16. python中的np.exp_numpy.exp,numpy.sqrt,np.power等函数的详细理解
  17. Linux发行版本介绍
  18. linux中文写作软件,码字写作软件下载 极音创作(码字软件)V1.3.5 linux版 下载-脚本之家...
  19. Chrome插件:拦截页面请求
  20. c++win32项目 如何显示后再删除一个绘图_47个快捷键50个CAD技巧,助你神速绘图拒绝加班!...

热门文章

  1. 第一阶段冲刺周期10天的第6天进展报告
  2. 百度推出 MIP Baidu Path链接
  3. 模板类的全特化、偏特化
  4. 【转】从哈希存储到Bloom Filter
  5. CTF加解密/编码常用在线网址
  6. CG-CTF-Web-变量覆盖
  7. 3D特征:关于HFM和HBB
  8. springmvc配置ssl_spring MVC配置详解
  9. java Base64转码传图到C#
  10. Java学习笔记二十二:Java的方法重写