3、当今的企业架构分析

news2024/11/16 9:53:36

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数据库可以很好的处理以上的情况。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Axure RP软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 Axure RP是Axure公司开发的一款原型设计工具,广泛应用于产品设计和UI/UX设计领域。以下是Axure RP软件的主要特点和功能: 原型设计:Axure RP提供了丰富的界面元素和交互元素,用户…

django的简易的图书管理系统jsp书店进销存源代码MySQL

本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 django的简易的图书管理系统 系统有1权限&#xff1a…

使用WebDriver采样器将JMeter与Selenium集成

第一步: 在JMeter中添加Selenium / WebDriver插件 第二步: 创建一条测试计划–添加线程组 添加配置元素 - jpgc - WebDriver Sampler 添加配置元素 - jpgc - Chrome Driver Config 并且添加监听器查看结果树 第三步: 下载 chromedriver…

时序预测 | MATLAB实现Attention-GRU时间序列预测(注意力机制融合门控循环单元,TPA-GRU)

时序预测 | MATLAB实现Attention-GRU时间序列预测----注意力机制融合门控循环单元,即TPA-GRU,时间注意力机制结合门控循环单元 目录 时序预测 | MATLAB实现Attention-GRU时间序列预测----注意力机制融合门控循环单元,即TPA-GRU,时…

煤矿皮带运输智能监控算法 opencv

煤矿皮带运输智能监控算法通过opencvpython深度学习算法网络模型,煤矿皮带运输智能监控算法实时监测皮带运输过程中的各种异常情况,如跑偏、撕裂、堆料异常等,一旦检测到异常情况,立即发出告警并采取相应的措施,以保障…

搭建开发环境-WSL+Ubuntu(一键搭建开发环境)

概述 所谓工欲善其事必先利其器,搭环境往往是开发过程中卡出很多初学者的拦路虎。 对于很多老鸟来说,很多东西都已经习惯成自然,也就没有刻意和初学者说。但对于很多初学者,却是受益良多。 这个系列,先从操作系统开始…

MySQL数据库——约束(概述、约束演示、外键约束、删除/更新行为)

目录 概述 约束演示 表格创建 验证 图形化界面约束 外键约束 概念 语法 外键删除/更新行为 总结 概述 概念:约束是作用于表中字段上的规则,用于限制存储在表中数据。目的:保证数据库中数据的正确、有效性和完整性。分类&#xff1…

有哪些常人不知道的赚钱方法?

在目前互联网时期,如果说还有什么挣钱方法让别人不知道,那一定是赚大钱或者违法乱纪的挣钱渠道。但是对于普通人而言,确实是有一些挣钱的方法不被其了解,我这里就介绍几个,供大家一起探讨。 第一个:知识变…

TCP/IP五层模型、封装和分用

1.网络通信基础2.协议分层OSI七层协议模型TCP/IP五层/四层协议模型【重点】 3. 封装&分用 1.网络通信基础 IP地址:表示计算机的位置,分源IP和目标IP;举个例子:买快递,商家从上海发货,上海就是源IP&…

爱奇艺数据湖实战 - 基于数据湖的日志平台架构演进

01 背景 为了满足公司内日志实时查询分析的需求,爱奇艺大数据团队自研了Venus日志服务平台,负责爱奇艺各服务日志的采集、存储、处理、分析等场景。早期采用基于ElasticSearch的存储分析架构,随着数据规模的不断扩大,出现了成本高…

C语言基础之——指针(上)

前言:小伙伴们又见面啦!本期内容,博主将展开讲解有关C语言中指针的上半部分基础知识,一起学习起来叭!!! 目录 一.什么是指针 二.指针类型 1.指针的解引用 2.指针-整数 三.野指针 1.野指针…

Day46|动态规划part08:139.单词拆分、多重背包理论基础、背包问题总结

139. 单词拆分 leetcode链接:力扣题目链接 视频链接:你的背包如何装满?| LeetCode:139.单词拆分 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。注意:不要…

【Linux】目录结构、路径

目录 1. 目录结构 1.1 基本概念 1.2 具体的目录结构 2. 路径 2.1 绝对路径和相对路径 2.2 特殊路径符 1. 目录结构 1.1 基本概念 Linux的目录结构是一个树形结构。 Windows系统可以拥有多个盘符,如 C盘、D盘、E盘。Linux没有盘符这个概念,只有一…

树莓派自带的GPIO串口输出及输出乱码问题解决方案

可以使用树莓派的UART0进行串口输出,具体连接方法如图所示: 连接后可以使用如下代码发送串口数据: import serial import time# 串口初始化 ser serial.Serial(/dev/serial0, 9600, timeout1) # /dev/serial0 是树莓派上默认的串口设备# 发…

图书馆项目Java阅览室管理系统jsp源代码MySQL

本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 图书馆项目 系统有1权限:管理员 用所技术…

Scikit-Learn中的特征选择和特征提取详解

概要 机器学习在现代技术中扮演着越来越重要的角色。不论是在商业界还是科学领域,机器学习都被广泛地应用。在机器学习的过程中,我们需要从原始数据中提取出有用的特征,以便训练出好的模型。但是,如何选择最佳的特征是一个关键问…

eslint和prettier格式化冲突

下载插件 ESLint 和 Prettier ESLint 进入setting.json中 setting.json中配置 {"editor.tabSize": 2,"editor.linkedEditing": true,"security.workspace.trust.untrustedFiles": "open","git.autofetch": true,"…

ARM开发,stm32mp157a-A7核(UART总线实验)

1.目标:键盘输入一个字符a,串口工具显示b; 键盘输入一个字符串"nihao",串口工具显示"nihao"; 2.框图分析: 3.代码: ---.h头文件--- #ifndef __UART4_H__ #define __UART4_H__#include "st…

1.Prometheus

文章目录 Prometheus概述存储特点生态组件Prometheus serverClient LibraryExportersService DiscoveryAlertmanagerPushgatewayGrafana 工作模式工作流程局限性 部署prometheus部署 Node Exporter部署mysqld_exporter部署nginx-exporter部署grafana 总结 Prometheus 概述 za…

Yolo系列-yolov1

YOLO-V1 经典的one-stage方法 YouOnlyLookOnce,名字就已经说明了一切!把检测问题转化成回归问题,一个CNN就搞定了!可以对视频进行实时检测,应用领域非常广! 核心思想: Yolov1的核心思想是将对象…