3、当今的企业架构分析

3、当今的企业架构分析

3、分库分表+水平拆分(MySQL集群)

因为一个数据库装不下了,需要分库分表,读写分离,主从复制,主节点M与从节点s组成了一个数据库的集群,组成了一个小的单元,前端通过缓存连接到集群上,此时的后端架构越来越大,后端安稳了前端运行就非常方便,比如查询一个用户信息,一名用户查询网站的一个信息,需要到数据库查询,首先回到缓存中去看是否有这条数据,缓存中没有就到后面的数据库集群中查询,在下面的实例中,有三个数据库集群,各放三分之一的数据,通过一定的机制就能让用户查询到对应数据。如此以来就能提高效率。分库分表

技术和业务在发展的同时,对人的要求也越来越高!

数据库的本质主要就在于读和写,计算机发展到现在始终都在解决这两个问题

早期的MySQL使用的是MyISAM引擎,现在使用的是innodb引擎,MyISAM引擎使用的是表锁,也就是查询一条数据把整个数据表都锁住了,如此以来就十分的影响效率,高并发下就会出现严重的锁问题,于是就开始转战innodb引擎,这个引擎使用的是行锁,也就是每次查询就锁这一行。行锁和表锁问题解决了写的问题

通过换引擎的方式是进行了物理治疗,我们也可以做一些精神治疗,比如做一些主从复制,然后再做一些分库分表来解决一些写的压力。比如我们合计数据表可以把一个user表按照不同的字段进行拆分,包括数据库,之前的一个数据库要管理很多表,发展到现在已经把不同的业务拆分,比如订单业务,用户业务、支付业务等,每一个不同的业务使用单独的数据库进行管理,到后来又使用了微服务。

也就是最开始分库分表解决读的问题,读的问题解决之后再读写分离解决写的问题。

中间MySQL还推出了表分区,但并没有很多人使用。后来MySQL有了集群,很好的满足了当时的大部分需求,发展到现在,数据已经不再像之前那样单一了

4、现在的时代

现在的时代被称之为技术爆炸的时代,纵观世界上下五千年,真正的技术在之前发展的是非常缓慢的,而从电发明以来,整个技术都在加速演进,从2010年到现在才是真正的技术爆炸的年代,比如说定位(定位,也是一种数据)、音乐、热榜,这些数据都是一些**实时更新**的数据,这些数据很显然MySQL的数据库集群也无法满足。也就是MySQL为代表的关系型数据库无法满足这样的需求。因为数据量很大,而且变化很快。

于是乎出现了一些新型的数据库,这些数据库专门用来存放一些定位信息、图片信息等,比如图型数据库,JSON数据库如BSON,比如微信中的热点数据通过Redis后,用一个JSON字符串就能保存,一篇文章的浏览量,有些文章爆款10万浏览量,这个浏览量的更新是如何做到的呢?难道直接写到MySQL中么?其实他就是先把这个浏览量放在缓存中,过一段时间一个小时或者两个小时再持久化一下,保证效率和安全。否则全国人刷个微信就把腾讯宕机了。

MySQL有人用它来存储一些比较大的文件,比如一篇博客有几十万字,包括一些图片,这样的话,数据库表很大,此时如果作查询效率就比较低,对于这样的情况我们应该把非结构化的数据剥离出去,比如可以放在一个文件数据库等专业管理的数据库,也就是用一种数据库来专门处理这些数据,MySQL的压力就非常小了。

于是人们就开始研究如何处理这些问题。因为这些问题使用关系型数据库已经无法解决了。大数据的IO压力下,不断地读取,这种情况下,数据库的表的结构是不会改变的,比如现在又一亿条数据,随便的添加一列都是及其卡顿的。

目前一个基本的互联网项目

在现在的项目中,广大的用户是不可能直接访问我们的MySQL数据库的,用户最先访问的一定是企业的防火墙,或者路由网关,或者负载均衡,经过负载均衡访问主机和备机,现实中,负载均衡也不可能是单机,通过负载均衡访问服务器集群,集群中的每个网站服务器又有对应的MySQL实例,这里的后台数据库也只是一些关系型数据库,除了以上这些服务器之外还会有一些独立的服务器,比如做一些缓存服务器、移动信息服务器用于发送短信、Hadoop集群,实时通信服务器比如客服在线接待、流媒体服务器用于存放播放视频、图片服务器、文件服务器(现在的文件服务器大部分都用的阿里云的oss)、群发服务器

当前的互联网架构

为什么要用Nosql

比如一些社交网络的用户的个人信息,这些信息都是上千万条甚至上亿条数据,地理位置、用户自己产生的数据,用户日志等爆发式增长,此时就无法使用关系型数据库来解决了,这个时候就需要使用Nosql数据库了,Nosql数据库可以很好的处理以上的情况。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/93991.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android ---使用Jenkins 打包release版本不能安装或者安装后不显示APP

大家在用 Jenkins的时候,是不是会觉得很爽,因为他在用的过程中,是无脑的,毕竟一键触发!!!! 这边记录一个昨天,今天遇到的一个坑货问题,别人提交了所有代码&am…

骨传导耳机对骨头好不好?骨传导耳机对耳朵有影响吗

骨传导耳机是通过将声音以振动的形式传递到颅骨,再由内耳感知而不需要通过传统的声音传导路径(即耳道和鼓膜)。由于不直接接触耳朵或耳道,骨传导耳机在一定程度上减少了对耳部的压力和刺激,因此对骨头相比传统耳机来说…

yo!这里是Linux基础开发工具介绍

目录 前言 基础开发工具 yum vim 1.基本介绍 2.基本操作 3.正常模式常用命令 4.底行模式常用命令 gcc/g gdb 1.基本介绍 2.常用操作 make/Makefile 1.背景 2.介绍 3.使用 git 1.介绍 2.操作 进度条程序简单实现 后记 前言 在学完初步的基础指令及权限控…

lua的函数

1.一个示例实现列表的元素的求和 [root]# more funcAdd.lua function add(a)local sum 0for i 1,#a dosum sum a[i]endreturn sum enda {1,2,3,4,5,6}local sum add(a)print(sum)

【Vue】vue2预览显示quill富文本内容,vue-quill-editor回显页面,v-html回显富文本内容

文章目录 前言一、下载二、使用步骤1.引入样式2.html代码 总结 前言 提示:这里可以添加本文要记录的大概内容: vue后台框架,若依系统里有一个富文本编辑器,效果如下 在package.json里面查看,发现插件名叫quill 插件的…

复习之docker部署--项目实战

一、实验环境 1.安装7.6虚拟机 最小化安装,不安装图形! 2.封装虚拟机 关闭selinux关闭防火墙关闭networkmanager配置网络,保证可以ssh修改主机名添加双向解析配置7.6网络仓库--安装常用的工具 配置完成后,在真机ssh虚拟机 如果…

VUE笔记(一)初识vue

一、vue的简介 1、什么是vue 官网地址:Vue.js Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。 构建用户界面:之前在学习vue之前通过原生js对DOM操作进行构建用户界面的 使用原生js构建用户界面的不足 - 没有规范&#xff0c…

Webgl利用缓冲区绘制三角形

什么是attribute 变量 它是一种存储限定符&#xff0c;表示定义一个attribute的全局变量&#xff0c;这种变量的数据将由外部向顶点着色器内传输&#xff0c;并保存顶点相关的数据&#xff0c;只有顶点着色器才能使用它 <!DOCTYPE html> <html lang"en"&g…

Mybatis小记

目录 Mybatis第一个程序 xml文件 测试类 错误排查 Mybatis第一个程序 1.搭建实验数据库 2.导入MyBatis相关jar包 3.编写MyBatis核心配置文件 4.编写MyBatis工具类 5.创建实体类、 6.编写Mapper接口类 7.编写Mapper.xml配置文件 8.编写测试类 对象传参只引用需要的属性就可…

Redis进阶 - JVM进程缓存

原文首更地址&#xff0c;阅读效果更佳&#xff01; Redis进阶 - JVM进程缓存 | CoderMast编程桅杆https://www.codermast.com/database/redis/redis-advance-jvm-process-cache.html 传统缓存的问题 传统的缓存策略一般是请求到达 Tomcat 后&#xff0c;先查询 Redis &…

跨专业申请成功|金融公司经理赴美国密苏里大学访学交流

J经理所学专业与从事工作不符&#xff0c;尽管如此&#xff0c;我们还是为其成功申请到美国密苏里大学经济学专业的访问学者职位&#xff0c;全家顺利过签出国。 J经理背景&#xff1a; 申请类型&#xff1a; 自费访问学者 工作背景&#xff1a; 某金融公司经理 教育背景&am…

去掉vue项目运行时中出现的黄色警告

最近在写vue项目时发现想测试一个接口行不行的时候&#xff0c;在控制台输出的时候发现会有很多黄色警告&#xff0c;每次都要找很久才能找到自己想输出的内容&#xff0c;如下图&#xff1a; 去掉这些只需要一句话&#xff1a; const app createApp(App) app.config.warnHa…

一文便知 GO 中mongodb 的安装与使用

MONGDB 安装与使用 咱们来回顾一下上次分享的内容&#xff1a; 如何使用log 包log 包原理和具体实现自定义日志 要是对 GO 的日志包还有点兴趣的话&#xff0c;可以查看文章 GO的日志怎么玩 ? 今天咱们来玩个简单的 mongodb 的安装和使用 MONGODB介绍 MongoDB 是一个基于…

Django(2)-编写你的第一个 Django 应用

本教程的目的是创建一个网络投票应用程序。 它将由两部分组成&#xff1a; 一个让人们查看和投票的公共站点。 一个让你能添加、修改和删除投票的管理站点。 创建应用 $ python manage.py startapp polls每一个应用是一个python包&#xff0c;一个项目可以包含多个应用。 …

C++ 改善程序的具体做法 学习笔记

1、尽量用const enum inline替换#define 因为#define是做预处理操作&#xff0c;编译器从未看见该常量&#xff0c;编译器刚开始编译&#xff0c;它就被预处理器移走了&#xff0c;而#define的本质就是做替换&#xff0c;它可能从来未进入记号表 解决方法是用常量替换宏 语言…

无涯教程-PHP - 返回类型声明

在PHP 7中&#xff0c;引入了一个新函数返回类型声明&#xff0c;返回类型声明指定函数应返回的值的类型&#xff0c;可以声明返回类型的以下类型。 intfloatbooleanstringinterfacesarraycallable 有效返回类型 <?phpdeclare(strict_types1);function returnIntValue(i…

【Midjourney电商与平面设计实战】创作效率提升300%

不得不说&#xff0c;最近智能AI的话题火爆圈内外啦。这不&#xff0c;战火已经从IT行业燃烧到设计行业里了。 刚研究完ChatGPT&#xff0c;现在又出来一个AI作图Midjourney。 其视觉效果令不少网友感叹&#xff1a;“AI已经不逊于人类画师了!” 现如今&#xff0c;在AIGC 热…

浅谈Python网络爬虫应对反爬虫的技术对抗

在当今信息时代&#xff0c;数据是非常宝贵的资源。而作为一名专业的 Python 网络爬虫程序猿&#xff0c;在进行网页数据采集时经常会遭遇到各种针对爬虫行为的阻碍和限制&#xff0c;这就需要我们掌握一些应对反爬机制的技术手段。本文将从不同层面介绍如何使用 Python 进行网…

法律小程序开发:让法律咨询更便捷

在现代社会&#xff0c;法律咨询服务越来越受到人们的重视和需求。为了方便用户预约法律咨询&#xff0c;很多律所都开始使用小程序来提供在线预约服务。那么&#xff0c;如何制作一款律所预约小程序呢&#xff1f; 首先&#xff0c;我们可以选择乔拓云网作为制作小程序的平台。…

JavaScript下载excel文件

文章目录 通过链接下载a标签下载方法注意 获取文件流请求体配置下载文件流 总结 通过链接下载 a标签 对于已知地址的目标文件&#xff0c;前端可以使用 a标签 来直接下载&#xff0c;使用a标签下载使用到两个属性 download&#xff1a;下载文件名href&#xff1a;目标文件下…