深圳黑马JavaEE第104期基础班+就业班+高手课件(笔记))

大型网站的系统架构并不是从一开始就具备高性能、高可用、高伸缩等特性的。小型创业公司通常不需要设计非常复杂的系统架构,能将基本的业务跑起来就行。

随着用户和业务量的增加,系统架构需要根据具体情况重新设计,这其中就包括容易出现瓶颈的数据库服务器。

针对数据库架构的优化要根据业务特点、以及实施的成本逐步进行,通常不会一上来就设计出一个非常复杂的架构。cmL46679910

数据库的优化可以从这些方面进行

  • SQL 优化
  • 索引优化
  • 缓存系统
  • 主从复制、读写分离
  • 垂直拆分
  • 水平拆分

  • 热备

在数据库服务器运行过程中对数据进行备份操作。相对的是冷备,冷备份需要停机操作。

  • 多活

多个数据库服务器,保证高可用,避免单点故障。

  • 故障切换

当一台数据库服务器出现异常,自动切换到其他数据库服务器继续提供服务。

  • 读写分离

数据库的读写操作分发到不同的服务器,提高数据处理能力。

  • 负载均衡

负载均衡一般是建立的读写分离的基础之上,将读写操作根据情况,合理的分摊到数据库服务器,提高并发能力,同时避免过载。

主从复制

主从复制,是通过部署多台数据库服务器,这些数据库之间有主从关系。其中,主数据库用于提供服务,从数据库中的数据和主数据库是保持一致的,这样做的好处是能够热备份,同时,可以在此基础上扩展读写分离的架构。

主从复制的架构一般分为:一主一从、一主多从、主主复制、级联复制、主主与级联复制的结合。

这是一个典型的一主多从读写分离架构,应用系统写数据时,会写入到 master 节点,然后再由 master 节点将数据复制到 slave 节点中。这个架构仍有不足,例如 master 节点存在单点、数据的复制存在延迟。

Original: https://www.cnblogs.com/itit9696/p/15934533.html
Author: cml46679910
Title: 深圳黑马JavaEE第104期基础班+就业班+高手课件(笔记))

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/579330/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Linux常用的命令

    1 常用的系统工作命令 man 命令用来查看man命令自身的帮助信息 MAN(1) Manual pager utils MAN(1) NAME man – an interfac…

    Java 2023年6月8日
    088
  • ideal Tomcat乱码问题

    posted @2021-12-24 15:05 金涛骇浪 阅读(10 ) 评论() 编辑 Original: https://www.cnblogs.com/hxbhxb/p/1…

    Java 2023年6月6日
    096
  • Spring大事务到底如何优化?

    所谓的大事务就是耗时比较长的事务。 Spring有两种方式实现事务,分别是 编程式和 声明式两种。 不手动开启事务,mysql 默认自动提交事务,一条语句执行完自动提交。 一、大事…

    Java 2023年5月30日
    079
  • nacos单机,集群安装部署

    nacos单机启动 准备 下载nacos安装包 准备centos环境 (本次测试使用docker) PS C:\Users\Administrator> docker run…

    Java 2023年6月8日
    088
  • redis的持久化机制

    持久化-RDB(Redis Databases) 什么是RDB 在指定时间间隔后,将内存中的数据集快照写入数据库 ;在恢复时候,直接读取快照文件,进行数据的恢复 ; 默认情况下, …

    Java 2023年6月5日
    080
  • redis删除缓存时遇到的问题

    一、redis查询key的方式 redis常用两种方式用于key的精确/模糊匹配 1. KEYS pattern keys pattern用于匹配pattern所有key,会返回当…

    Java 2023年6月13日
    0105
  • 筛选两个集合不同数据

    undefined 谁在最外面,最后返回的集合就是谁的数据,例子中返回的集合数据是newSupplierBiznoDetail的不同数据List collect = newSupp…

    Java 2023年6月9日
    096
  • SpringBoot进阶教程(六十八)Sentinel实现限流降级

    前面两篇文章nginx限流配置和SpringBoot进阶教程(六十七)RateLimiter限流,我们介绍了如何使用nginx和RateLimiter限流,这篇文章介绍另外一种限流…

    Java 2023年6月8日
    087
  • Python爬虫详解

    1、任务介绍 需求分析爬取豆瓣电影Top250的基本信息,包括电影的名称,豆瓣评分,评价数,电影概况,电影链接等。 https://movie.douban.com/top250 …

    Java 2023年6月14日
    090
  • oracle数据库备份+锁表+操作数据库

    package cn.com.threeInOneRoad.task; import java.io.File;import java.io.IOException;import …

    Java 2023年6月16日
    090
  • Day8-笔记(接口、内部类、异常)

    接口就是规范,定义的是一组规则。 接口的本质是契约。 OO的精髓,是对对象的抽象,最能体现这一点的就是接口。 接口的作用: //interface 定义的关键字,接口都需要有实现类…

    Java 2023年6月6日
    086
  • Kubernetes-ConfigMap

    1. 简介 ConfigMap 是一种 API 对象,用来将非机密性的数据保存到键值对中。使用时, Pods 可以将其用作 环境&amp…

    Java 2023年6月7日
    070
  • windows安装jdk8

    win10系统安装jdk8全过程 一 下载安装文件 jdk的安装与配置是Java学习的第一步,下面记录一下具体过程。首先根据自己系统下载对应版本。下载地址http://www.or…

    Java 2023年5月30日
    072
  • SpringCloud01

    SpringCloud01 淘宝架构演进之路 https://mp.weixin.qq.com/s?__biz=MzU0OTk3ODQ3Ng==&mid=224748542…

    Java 2023年6月13日
    076
  • Error:java: Annotation processing is not supported for module cycles. Please ensure that all modules from cycle [web_dao,web_service] are excluded from annotation processing

    转自:https://www.cnblogs.com/panpanshen/p/9668058.html 早上学习maven环境搭建时遇到的这个问题 下面这个错误的大概意思是:模块…

    Java 2023年5月29日
    074
  • 初次使用create-react-app

    最近玩了一下React,感觉还挺好玩的,说实话对后端的来说比vue好多了,记得刚学vue的时候是一头雾水; 基础知识暂时后面慢慢说,其实感觉还是挺容易的吧,今天就简单使用一下rea…

    Java 2023年6月6日
    089
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球