当前位置: 首页 > news >正文

企业架构LNMP学习笔记37

1、能够理解读写分离的目的;

2、能够描述读写分离的常见实现方式;

3、能够通过项目框架配置文件实现读写分离;

4、能够通过中间件实现读写分离;

业务背景描述:

时间:2014.6.-2015.9

发布产品类型:互联网动态站点 商城

用户数量: 10000-12000(用户量猛增)

PV : 100000-500000(24小时访问次数总和)

QPS: 50-100*(每秒访问次数)

DAU: 2000(每日活跃⽤户数)

之前业务中是单台MySQL提供服务,使用多台MySQL数据库服务器,降低单台压力,实现集群架构的稳定性和高可用性数据库的一致性和完整性 replication,通过业务比对和分析发现,随着活跃用户数增多,读取数据(查数据)的请求变多,故注重解决数据读取的压力。

模拟运维设计方案:

根据以上业务需求,在之前业务架构的基础上实现数据的读写分离。

数据库中间件代理服务器:

MySQL的读写分离介绍:

1、读写分离的目的:

实际是数据库负载均衡的方式。

当数据库请求增多的时候,单例数据库不能满足业务的需求。需要进行数据库实例的扩容。多台数据库同时响应请求,也就是说对数据库的请求,进行负载均衡。

但是由于数据库服务的特殊原因,数据库扩容基本要求:数据的一致性和完整性。所以要保证多台数据库实例的一致性和完整性,以MySQL为例来说,官方提供了 主从复制机制。

读写分离:

数据库的负载均衡不同于其他服务的负载均衡,数据要求一致性。基于主从复制的基础上,常见的数据库负载均衡使用的是读写分离方式。写入主数据库,读取到从数据库。可以认为读写分离,是一种特殊的负载均衡方式。

可能出现的问题是刚写的数据读不到,实际业务中,读写分离存在的一个问题,不够实时性。

对于要求实时性高的业务:

1)缓存;读的时候读缓存;写主库,读缓存;

2)可以读主

3)添加完数据之后,有一个跳转的时间(5s),这5s可以进行主从复制。数据正在审核中。

还要业务代码实现。降低服务器压力。

2、读写分离常见的实现方式:

①业务代码的读写分离

需要在业务代码中,判断数据操作是读还是写,读连接从数据服务器操作,写连接主数据库服务器操作

以当前LNMP为例,需要通过PHP代码实现读写分离

②中间件代理方式的读写分离

在业务代码中,数据库的操作,不直接连接数据库,而是先请求到中间件服务器(代理)

由代理服务器,判断是读操作去从数据服务器,写操作去主数据服务器

现在比较流行,还是MyCat。

但是目前,官网出现上不去的情况。不知道是怎么回事。

proxysql   是www.proxysql.com网站。

可以看看这个。

kingshared:这个也可以试下。要多读这方面的内容。

那么如何进行选择呢?

1)业务实现读写分离,操作方便,成本低,当前的开发框架基本支持读写分离。如果100台服务器呢?

2)中间件代理服务器,除了能够实现读写分离,还可以作为数据库集群的管理平台。

后面有多少服务器都不管。平滑升级。还起到监控的作用。

常见的代理服务器都属于中间件。

http://www.lryc.cn/news/166853.html

相关文章:

  • vue3 自定义组件 v-model 原理解析
  • 【Linux从入门到精通】线程 | 线程介绍线程控制
  • 2023Web前端面试题及答案(一)
  • Rabbitmq参数优化
  • typescript环境搭建,及tsc命令优化
  • suning苏宁API接入说明(苏宁商品详情+关键词搜索商品列表)
  • 类和对象(3)
  • C++下基于粒子群算法解决TSP问题
  • vue3 ElementUI Switch before-change自动调用问题
  • 【chromium】windows 获取源码到本地
  • Nacos-Go-Sdk代码逻辑解析
  • 检测opencv是否安装成功
  • 如果你是独立开发者,你是先写前端还是先写后端?
  • Pytorch intermediate(四) Language Model (RNN-LM)
  • C++零碎记录(十)
  • 人类学习 vs. 机器学习
  • 【LeetCode-中等题】15. 三数之和
  • Apache Tomcat漏洞复现
  • C++模版基础
  • 解决 Elasticsearch 分页查询记录超过10000时异常
  • 百度千帆大模型文心一言api调用
  • 关于HTTP协议的概述
  • ATFX汇市:8月名义与核心CPI走势分化,美国通胀率算升高还是降低?
  • c++ 中的函数指针
  • 奶牛个体识别 奶牛身份识别
  • 【力扣每日一题】2023.9.13 检查骑士巡视方案
  • 【Vue】关于CSS样式绑定整理
  • Sql语句大全--更新
  • Java面试八股文宝典:序言
  • 【多线程案例】单例模式