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

腾讯企业邮箱入口网页版/aso优化排名违法吗

腾讯企业邮箱入口网页版,aso优化排名违法吗,电商网站用php做的吗,网络工程有限公司目录 🐳今日良言:且视他人之疑目如盏盏鬼火,大胆地去走自己的夜路 🐇一、常见概念 🐇二、发展史 今日良言:且视他人之疑目如盏盏鬼火,大胆地去走自己的夜路 一、常见概念 在正式介绍分布式系…

目录

🐳今日良言:且视他人之疑目如盏盏鬼火,大胆地去走自己的夜路

🐇一、常见概念

🐇二、发展史


今日良言:且视他人之疑目如盏盏鬼火,大胆地去走自己的夜路

一、常见概念

在正式介绍分布式系统之前,让我们先来了解一下分布式相关的一些常见概念。

应用(Application)/ 系统(System)

为了完成⼀整套服务的⼀个程序或者⼀组相互配合的程序群。

举例:为了完成一项任务,由此搭建的由一个人活着一群相配合的人组成的团队

模块(Module)/ 组件(Component)

当应用较复杂时,为了分离职责,将其中具有清晰职责的、内聚性强的部分,抽象出概念,便于理解。

举例:军队中为了进⾏某据点的攻克,将人员分为突击小组、爆破小组、掩护小组等。

分布式(Distributed)

系统中的多个模块被不属于不同服务器之上,就可以将这个系统称为分布式系统。比如:Web 服务器和数据库分别在不同服务器上工作或者多台 Web 服务器被分别部署在不同服务器上。

举例:在疫情期间,无法到公司上班,因此,为了某些工作需要,原来在同一个办公室工作的的小组成员被分散到一个城市的不同场地或者多个城市的不同场地进行远程配合工作完成目标。

跨主机之间的模块间的通信基本要记住网络支撑完成。

集群(Cluster)

被部署于多台服务器上的,为了实现特定目标的一个/组特定的组件,整个整体被称为集群。

举例1:多个MySQL工作在不同服务器上,共同提供数据库目标服务,由此可以被称为一组数据库集群。

举例2:广义的集群:只要是多个机器,构成了分布式系统,都可以称为是一个“集群”。

举例3:狭义的集群:redis 提供的集群模式,这个集群模式之下,主要是解决存储空间不足的问题(拓展存储空间)。

主(Master)/ 从(Slave)

集群中,通常有一个程序需要承担更多的责任,被称为主。其他承担附属职责的被称为从。

举例:学校小组任务一般会选举一个组长,组长就需要承担比组员更多的责任,而组员就需要承担另外一些责任来配合组长完成任务。

中间件(Middleware)

可以理解成一种软件,它可以帮助不同的应用系统之间进行沟通和数据交换。

举个例子:可以想象一个邮局的场景:

  • 邮局作为中间件:假设你住在城市A,你的一个朋友住在城市B,你们两个都想要互相寄送信件。如果没有邮局(中间件),你们可能需要自己亲自前往对方的城市去递送信件,这不仅耗时耗力,而且效率低下。而有了邮局这样的服务机构(中间件),你们只需要将信件交给邮局,邮局会负责将信件从城市A运送到城市B,并最终交到你朋友的手中。这样,即使你们身处不同的地方,也能轻松地通信。
  • 邮局提供的服务:邮局不仅仅提供传递信件的服务,还提供了如挂号、保险、快递等多种服务(共性功能),这些都是为了满足不同客户的需求而设计的。无论客户需要哪种服务,邮局都能提供相应的解决方案,这样就避免了每个人为了寄信而自己建立一套复杂的传送系统的情况。

总的来说,中间件就像是一个连接不同应用和服务的桥梁,它提供了一种便捷的方式来实现资源共享和功能共享。在技术领域中,中间件的存在极大地简化了复杂系统的开发和维护工作,提高了软件的复用性和效率。

二、发展史

在介绍完了分布式相关的一些常见概念之后,接着就上主菜了,让博主来介绍一下分布式系统是如何蓬勃发展,如今这么火爆的。

2.1单机架构

在初始阶段,小型系统的应用程序、数据库、文件等所有资源都部署在一台服务器上,这通常被称为LAMP(Linux, Apache, MySQL, PHP)架构。

2.2 功能分离架构

随着系统上线,我们收获了一些忠实用户,这使得系统的访问量逐步上升,逐渐逼近了硬件资源的极限。面对当前的性能压力,我们需要进行系统重构,以提升系统的承载能力以,因此,我们可以选择将应用和数据分离,放到不同的主机上部署。

 2.3应用服务器集群架构

我们的系统被广大用户所喜爱,单台应用服务器已经无法满足需求了,针对这种情况,我们了解到右两种方案可以解决这个问题:

垂直扩展 / 纵向扩展 Scale Up。
通过购买性能更优、价格更⾼的应⽤服务器来应对更多的流量。这种方案的优势在于完全不需要对系统软件做任何的调整;但劣势也很明显:硬件性能和价格的增长关系是⾮线性的,意味着选择性能 2 倍的硬件可能需要花费超过 4 倍的价格,其次硬件性能提升是
有明显上限的。
⽔平扩展 / 横向扩展 Scale Out。
通过调整软件架构,增加应用层硬件,将用户流量分担到不同的
应用层服务器上,来提升系统的承载能⼒。这种⽅案的优势在于成本相对较低,并且提升的上限空间也很大。但劣势是带给系统更多的复杂性,需要掌握更丰富的经验。

 经过深思熟虑,我们决定使用水平扩展的方案来解决这个问题,但是和需要引入一个新的组件---负载均衡;为了解决用户流量向哪台应用服务器分发的问题,需要⼀个专门的系统组件做流量分发。

实际中负载均衡不仅仅指的是工作在应用层的,甚至可能是其他的网络层之中。同时流量调度算法也有很多种,这⾥简单介绍几种较为常见的:
Round-Robin 轮询算法
即非常公平地将请求依次分给不同的应用服务器。
Weight-Round-Robin 轮询算法
为不同的服务器(比如性能不同)赋予不同的权重(weight),能者多劳
一致性哈希散列算法
通过计算⽤⼾的特征值(比如 IP 地址)得到哈希值,根据哈希结果做分发,优点是确保来相同用户的请求总是被分给指定的服务器。也就是我们平时遇到的专项客⼾经理服务。

 2.4读写分离/主从分离架构

在上述的架构里,无论扩展多少台服务器,这些请求最终都会从数据库读写数据,到一定程度之

后,数据的压力就是系统承载能力的瓶颈点,

此时,不妨想想,我们是否可以像扩展应用服务器一样扩展数据库服务器?

答案是否定的,因为数据库服务有特殊性。

如果将数据分散到各台服务器之后,数据的⼀致性将⽆法得到保障。所谓数据的⼀致性,此处是指:针对同⼀个系统,无论何时何地,我们都应该看到⼀个始终维持统⼀的数据。想象⼀下, 银行管理的账⼾⾦额,如果收到⼀笔转账之后,⼀份数据库的数据修改了,但另外的数据库没有修改,则用户得到的存款⾦额将是错误的。

因此,就得采用另一种方法。

我们保留一个主要的数据库作为写入的主数据库,其他的数据库作为从属数据库。从库的所有数据都来自主库,经过数据同步后,从库可以维护与主库一致的数据,然后为了分担数据库的压力,我们可以将写数据请求全部交给主库处理,但读请求分散给所有从库。在绝大多数系统中,读请求是远大于写请求的,所以,将读请求分散给各个从库以后,数据库的压力就没那么大了。

 2.5引入缓存-冷热分离架构

随着访问量持续增加,我们发现业务中一些数据的读取频率远大于其他数据的读取频率。比如:dy搜索框会展示每天的热搜词,这部分数据就是当天读取频率比较多的数据。我们把这部分数据成为热点数据。与之相对应的,就是冷数据。

针对热数据,我们想要提高它们的读取相应时间,因此,可以增加本地缓存,并在外部增加分布式缓存。通过缓存,就能避免有大量的请求同时操作数据库,作为一面护盾,为数据库 “抵挡伤害”,避免数据库宕机。

2.6 垂直分库(分库分表)

 

随着业务的数据量增大,大量的数据存储在同⼀个库中已经显得有些力不从心了,所以可以按照业务,将数据分别存储。比如针对评论数据,可按照商品ID进⾏hash,路由到对应的表中存储;针针对支付记录,可按照小时创建表,每个小时表继续拆分为小表,使用用户ID或记录编号来路由数据。只要实时操作的表数据量足够小,请求能够⾜够均匀的分发到多台服务器上的⼩表,那数据库就能通过

水平扩展的方式来提⾼性能。这种做法显著的增加了数据库运维的难度,对DBA的要求较⾼。数据库设计到这种结构时,已经可以称为分布式数据库,但是这只是⼀个逻辑的数据库整体,数据库里不同的组成部分是由不同的组件单独来实现的,如分库分表的管理和请求分发,由Mycat实现,SQL的解析由单机的数据库实现,读写分离可能由网关和消息队列来实现,查询结果的汇总可能由数据库接口层来实现等等,这种架构其实是MPP(大规模并行处理)架构的⼀类实现。

 2.7业务拆分-微服务

随着⼈员增加,业务发展,我们将业务分给不同的开发团队去维护,每个团队独⽴实现自己的微
服务,然后互相之间对数据的直接访问进⾏隔离,可以利⽤ Gateway、消息总线等技术,实现相互之间的调⽤关联。甚⾄可以把⼀些类似⽤⼾管理、安全管理、数据采集等业务提成公共服务。

总的来说,分布式系统的发展是一个从简单到复杂,从单一到复合的过程,它不仅涉及技术的迭代和创新,还包括对系统稳定性、扩展性和并发性的不断追求。所谓的分布式系统,就是想办法引入更多的硬件资源。

相关文章:

分布式系统的发展史

目录 🐳今日良言:且视他人之疑目如盏盏鬼火,大胆地去走自己的夜路 🐇一、常见概念 🐇二、发展史 今日良言:且视他人之疑目如盏盏鬼火,大胆地去走自己的夜路 一、常见概念 在正式介绍分布式系…...

2024年腾讯云服务器最新价格表,CPU内存带宽系统盘报价

腾讯云服务器价格表2024年最新价格,轻量2核2G3M服务器61元一年、2核2G4M服务器99元1年,三年560元、2核4G5M服务器165元一年、3年900元、轻量4核8M12M服务器646元15个月、4核16G10M配置32元1个月、8核32G配置115元1个月,345元3个月。CVM云服务…...

深入解析Oracle数据库ORA-01427错误:单行子查询返回多行的问题与解决办法

深入解析Oracle数据库ORA-01427错误:单行子查询返回多行的问题与解决办法 1、引言2、错误描述3、常见场景与示例4、解决方案5、声明 1、引言 在Oracle数据库日常运维与开发过程中,经常会遇到ORA-01427错误,这是一个很典型的数据库错误提示&am…...

【正点原子FreeRTOS学习笔记】————(12)信号量

这里写目录标题 一、信号量的简介(了解)二、二值信号量(熟悉)三、二值信号量实验(掌握)四、计数型信号量(熟悉)五、计数型信号量实验(掌握)六、优先级翻转简介…...

【数据分享】1929-2023年全球站点的逐年平均露点(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、能见度等指标,说到气象数据,最详细的气象数据是具体到气象监测站点的数据! 有关气象指标的监测站点数据,之前我们分享过1929-2023年全球气象站…...

PHP+MySQL开发组合:智慧同城便民信息小程序源码系统 带完整的安装代码包以及安装部署教程

当前,城市生活的节奏日益加快,人们对各类便民信息的需求也愈发迫切。无论是寻找家政服务、二手交易,还是发布租房、求职信息,一个高效、便捷的信息平台显得尤为重要。传统的信息发布方式往往存在信息更新不及时、查找困难等问题&a…...

Linux相关命令(1)

1、找出文件夹下包含 “aaa” 同时不包含 “bbb”的文件,然后把他们重新生成一下。要求只能用一行命令。 find ./ -type f -name "*aaa*" ! -name "*bbb*" -exec touch {} \;文件系统操作命令 df:列出文件系统的整体磁盘使用情况 …...

NO9 蓝桥杯单片机实践之串口通信的使用

1 回顾 串口通信的代码编写结构还是与中断一样,不同的是: 初始中断函数条件涉及到串口通信相关的寄存器和定时器1相关的寄存器(定时器1用于产生波特率),但初始条件中的中断寄存器只考虑串口通信而不考虑定时器1。 vo…...

数据库管理-第163期 19c重建ADG的两个方法(20240323

数据库管理163期 2024-03-23 数据库管理-第163期 19c重建ADG的两个方法(20240323)1 ORA-081032 新办法1 关闭MRP2 恢复备库3 其他操作4 启动备库5 启动MRP 3 老办法4 预告总结 数据库管理-第163期 19c重建ADG的两个方法(20240323)…...

8款常见的自动化测试开源框架

在如今开源的时代,我们就不要再闭门造车了,热烈的拥抱开源吧!本文针对性能测试、Web UI 测试、API 测试、数据库测试、接口测试、单元测试等方面,为大家整理了github或码云上优秀的自动化测试开源项目,希望能给大家带来…...

【QT】:基本框架

基本框架 一.创建程序二.初识函数1.main2.Widget.h3.Wight.cpp4.Wight.ui5.文件名.pro 三.生成的中间文件 本系列的Qt均使用Qt Creator进行程序编写。 一.创建程序 二.初识函数 1.main 2.Widget.h 3.Wight.cpp 4.Wight.ui 此时再点击编辑,就看到了ui文件的本体了。…...

【Python】定时更换clashx工具

An empty street An empty house A hole inside my heart I’m all alone The rooms are getting smaller I wonder how I wonder why I wonder where they are The days we had The songs we sang together Oh yeah And oh, my love I’m holding on forever Reaching for a l…...

2024年第16届大广赛新命题发布-爱华仕箱包

2024年3月27日,2024年第16届大广赛发布了新的命题,爱华仕箱包命题,自2017年起,爱华仕箱包已连续8年担任全国大学生广告艺术大赛命题单位。 爱华仕现已实现百货、超市、电商、礼品、投标、海外市场6大零售网络的全覆盖&#xff0c…...

前端理论总结(js)——闭包和内存泄漏

闭包 什么是闭包? 函数内部和函数外部连接起来的桥梁,可以在一个内层函数中访问到其外层函数的作用域 为什么要用 封装变量 收敛权限 临时变量持久化 优点 1.保护函数内的变量安全      2.在内存中维持一个变量(用的太多就变成了缺点&#xff0c…...

PHP页面如何实现设置独立访问密码

PHP网页如果需要查看信息必须输入密码,验证后才可显示出内容的代码如何实现? 对某些php页面设置单独的访问密码,如果密码不正确则无法查看内容,相当于对页面进行了一个加密。 如何实现这个效果,详细教程可以参考:PHP页面如何实现…...

M1 mac安装 Parallels Desktop 18 激活

M1 mac安装 Parallels Desktop 18 激活 下载安装Parallels Desktop 18.1.1 (53328) 激活1. 拷贝prl_disp_service2. 在终端打开Crack所在位置3. 输入命令,激活成功 下载 安装包和激活文件下载地址 链接: https://pan.baidu.com/s/1EjT7xeEDcntIIoOvvhBDfg?pwd9pue …...

嵌入式学习46——硬件相关2串口通信

串口: 端口: COM 波特率: 9600 115200 (bps) 每秒传输的数据…...

企业产品网络安全建设日志3月20

今天主要以下几个事情 确定了OCI当前情况下,更新某安全配置会导致链接中断 这问题说大不大,说小不小。 由此引申出各云服务器产品的完善度: AWS>OCI>其他 国内一些安全公司提供的WAF功能,缺点在于其全球的…...

BRICK POP展示了有趣的链上游戏玩法与奖励

新游戏BRICK POP将Sui区块链技术与低Gas费用,以及我们在Web3游戏开发方面的专业知识无缝结合。通过充分利用Sui和我们自己的INNO平台的优势,BRICK POP为玩家提供了一个融合了前沿技术和引人入胜游戏的沉浸式游戏体验。BRICK POP游戏设计为实时交易和高用…...

jetcache 2级缓存模式实现批量清除

需求 希望能够实现清理指定对象缓存的方法,例如缓存了User表,当User表巨大时,通过id全量去清理不现实,耗费资源也巨大。因此需要能够支持清理指定本地和远程缓存的批量方法。 分析 查看jetcache生成的cache接口,并没…...

【MD】激光驱动原子动力学的全尺寸从头算模拟

Zeng Q, Chen B, Zhang S, et al. Full-scale ab initio simulations of laser-driven atomistic dynamics[J]. npj Computational Materials, 2023, 9(1): 213.核心研究内容: 本文研究了激光驱动的原子动力学的全尺度从头算模拟。研究的重点是探讨在极端条件下材料…...

访问者模式(数据与行为解耦)

目录 前言 UML plantuml 类图 实战代码 SimpleFileVisitor FileVisitor 接口 删除指定文件夹 模板 IVisitor IVisitable Client 前言 一个类由成员变量和方法组成,成员变量即是类的数据结构,方法则是类的行为。 如果一个类的数据结构稳定&am…...

LeetCode:1319. 连通网络的操作次数(并查集 Java)

目录 1319. 连通网络的操作次数 题目描述: 实现代码与解析: 并查集 原理思路: 1319. 连通网络的操作次数 题目描述: 用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1。线缆用 connections 表示…...

C++ STL教程

C STL教程 文章目录 C STL教程1.1 std::vector1.1.1vector的定义1.1.2vector容器的初始化1.1.3vector容器内元素的访问和修改1.1.4vector中的常用函数 1.2 std::string1.2.1string的定义1.2.2string的初始化1.2.3string中元素的访问和修改1.2.4string中连接字符串1.2.5string中…...

系列学习前端之第 6 章:一文掌握 jQuery(熟悉即可)

前言:为什么说 jQuery 熟悉即可,已日渐过时? 作为前端开发中常用的两个库或框架:Vue.js 和 jQuery。不少开发者想要学习 Vue.js 时,都会有一个疑惑:学习 Vue.js 是否一定要学习 jQuery? 从几个…...

python 中判断文件、目录是否存在的方法

判断目录是否存在并创建目录 一、实现上传文件功能二、判断目录是否存在的办法2.1、使用os模块2.1.1、判断目录是否存在2.1.2、os.makedirs():递归创建目录 2.2、使用pathlib模块2.2.1、path.exist()判断目录是否存在2.2.1、path.mkdir():创建目录 2.3、…...

Redis的安装与启动

一、Linux环境安装&启动Redis 1. 安装步骤 第一步:在官网下载好Redis安装包,上传到Linux中并进行解压到相应(如/opt/software/)目录中;(注意:完成了第二步后,即安装了C/C语言…...

WebGIS航线编辑器(无人机航线规划)

无人机航点、航线规划,实现全自动航点飞行作业及飞行航拍。禁飞区、作业区功能保障飞行安全。 GIS引擎加载 const viewer new Cesium.Viewer("cesiumContainer", { imageryProvider: new Cesium.IonImageryProvider({ assetId: 3872 }), }); const im…...

STEP 格式三维模型读取

STEP是常用的三维模型存储格式&#xff0c;使用Express语言描述几何图形&#xff0c;文件存储方式为BRep&#xff0c;分为STEP203和STEP214&#xff0c;后者多了颜色信息&#xff0c;opencascade中提供了相应算法读取STEP文件。 #include <STEPControl_Reader.hxx>TopoD…...

Mora: Enabling Generalist Video Generation via A Multi-Agent Framework

目录 论文地址&#xff1a;Mora: Enabling Generalist Video Generation viaA Multi-Agent Framework github地址&#xff1a;https://github.com/lichao-sun/Mora 一、摘要 &#xff08;1&#xff09;Mora 的主要特点&#xff1a; &#xff08;2&#xff09;Mora的应用场景…...