一文正确理解 分层架构系统 的接入层设计,以及接入层设计常见的问题和解决方案(雪崩、降级、限流、熔断)
分层架构系统之接入层
- 分布式架构设计之接入层
- 1、定义
- 2、优势
- 3、技术方案
- 3.1、考虑的问题(负载均衡和高可用)
- 3.2、设计方式
- 3.2.1、单个IP地址接入
- 3.2.2、多个IP地址随机接入
- 3.2.2、单IP地址 反向代理
- 3.2.3、反向代理 高可用方案(keepalived)
- 3.2.4、水平扩展(Linux Virtual Server)
- 4、常见技术方法
- 4.1、反向代理和正向代理
- 4.1.1、代理(Proxy)
- 4.1.2、反向代理和正向代理
- 4.2、负载均衡策略
- 4.3、限流
- 4.4、服务降级
- 4.5、 服务熔断
- 4.6、防雪崩
- 参考
分布式架构设计之接入层
1、定义
把跟客户端直连的服务器称为接入服务器,一个或多个接入服务器构成的接入层。
- 接入层作为用户(包括内部用户和外部用户)与关键服务器的隔离层,直接接收用户的请求,并转发给应用服务器
- 对于一个功能单一,用户少,并发小的系统,接入层的确没有必要独立出来。
- 接入服务器是直接更用户连接的,它直接影响用户体验。接入服务器故障或者是重启肯定会影响到用户,而其他业务模块故障或者重启则不一定会影响用户体验
2、优势
- 1、降低接入层与业务耦合度,减少地稳定度模块对高稳定度模块的不良影响。
- 2、使接业务层专注于业务处理,降低业务层设计的复杂度。
- 3、接入层专注于消息转发,可以有效降低消息的丢失率,从而提高系统的稳定性。
- 4、接入层以较小的代价大幅提高用户接入体验。
3、技术方案
网络延迟有什么要求?并发有多大?但消息平均长度多少?用户规模多少?用户地域分布是什么情况?用户的网络环境怎样?
3.1、考虑的问题(负载均衡和高可用)
1、负载均衡
- 采用一定的分配算法将网络请求分发到后端的多个服务器,从而获得更高的性能。实现负载均衡功能的软/硬件称为 负载均衡器 。本文中的负载均衡特指将客户的http请求分发到后端的web服务器或应用服务器。
2、高可用
- 为了避免负载调度器的单点故障,部署多个负载调度器节点,通过并行或主从的方式同时工作。
3、会话保持
- 会话服务器端维持的状态信息,使得服务器能够识别同一客户的多次请求之间的关联。会话保持是指负载均衡器上的一种机制,通过会话保持,负载均衡器能够识别同一客户端多次请求的关联性,并能够将相关联的请求分配到同一台后端服务器上。
4、配置灵活性
- 因为需要整合各应用系统的URL,对于子域名、虚拟目录等进行统一规划和分配,需要考虑配置的灵活性和分流策略的多样性。
3.2、设计方式
3.2.1、单个IP地址接入
流程:
1)浏览器通过DNS-server,域名解析到ip
2)浏览器通过ip访问web-server
缺点:
1)非高可用,web-server挂了整个系统就挂了
2)扩展性差,当吞吐量达到web-server上限时,无法扩容
3.2.2、多个IP地址随机接入
通过在DNS-server上对一个域名设置多个ip解析,来扩充web-server性能及实施负载均衡的技术
1、过程:
- 1)多部署几份web-server,1个tomcat抗1000,部署3个tomcat(Apache组织提供的一种Web服务器)就能抗3000
- 2)在DNS-server层面,域名每次解析到不同的ip
2、优点:
- 1)零成本:在DNS-server上多配几个ip即可,功能也不收费
- 2)部署简单:多部署几个web-server即可,原系统架构不需要做任何改造
- 3)负载均衡:变成了多机,但负载基本是均衡的
3、缺点:
- 1)非高可用:DNS-server只负责域名解析ip,这个ip对应的服务是否可用,DNS-server是不保证的,假设有一个web-server挂了,部分服务会受到影响
- 2)扩容非实时:DNS解析有一个生效周期
- 3)暴露了太多的外网ip
3.2.2、单IP地址 反向代理
1)站点层与浏览器层之间加入了一个反向代理层,利用高性能的nginx来做反向代理
2)nginx将http请求分发给后端多个web-server
优点:
1)DNS-server不需要动
2)负载均衡:通过nginx来保证
3)只暴露一个外网ip,nginx->tomcat之间使用内网访问
4)扩容实时:nginx内部可控,随时增加web-server随时实时扩容
5)能够保证站点层的可用性:任何一台tomcat挂了,nginx可以将流量迁移到其他tomcat
缺点:
1)时延增加+架构更复杂了:中间多加了一个反向代理层
2)反向代理层成了单点,非高可用
3.2.3、反向代理 高可用方案(keepalived)
keepalived:一款用来检测服务状态存活性的软件,常用来做高可用
1)做两台nginx组成一个集群,分别部署上keepalived,设置成相同的虚IP,保证nginx的高可用
2)当一台nginx挂了,keepalived能够探测到,并将流量自动迁移到另一台nginx上,整个过程对调用方透明
优点:
1)解决了高可用的问题
缺点:
1)资源利用率只有50%
2)nginx仍然是接入单点
3.2.4、水平扩展(Linux Virtual Server)
lvs:Linux Virtual Server,使用集群技术,实现在linux操作系统层面的一个高性能、高可用、负载均衡服务器
1)通过DNS轮询来线性扩展入口lvs层的性能
2)通过keepalived来保证高可用
3)通过lvs来扩展多个nginx
4)通过nginx来做负载均衡,业务七层路由
4、常见技术方法
4.1、反向代理和正向代理
4.1.1、代理(Proxy)
引出代理之前,首先介绍C/S架构,也即是Client-Server的架构。
对于请求量非常少的服务,这样的部署不会有什么问题,但如果这个服务请求量上来的时候,这样部署的架构就很有问题了。
- 首先一个很客观的问题:如果单从服务器的物理特性来看,这个服务器就不能支持这么高的请求量。这种情况下,就迫使开发者去把服务迁移到一个CPU更强、内存更高,综合性能更好的服务器。通过更换服务器当然可以解决这个问题。
- 第二个问题:如果服务Server单节点发生了故障,就必然会影响整个服务,因为对于众多的Client客户端都是连接的一个Server服务端。
基于代理的可横向拓展的C/S架构
在这个部署的架构当中,除了Server节点,还多出了一个叫“Proxy”的节点,那么这个节点是干嘛的呢?
“Proxy”的这个节点,它把他接收的所有的请求都转发到他后面的Server节点当中,然后等待Server节点处理请求,再从Server节点取回执行结果返回到Client。所以“Proxy”的这个节点,他实际上不处理任何的请求。
对于上述服务器性能不足的问题:假设Server节点S1性能到达瓶颈了,不能处理更多的请求了。我们可以添加Server节点S2,同时告诉“Proxy”节点,让他把部分原来转发到S1节点的请求转发到我这里来。这样子通过服务分流减少压力的方法就可以解决原来S1节点性能不足的问题了。
单点服务器挂掉了怎么办:还是考虑Server节点S1和S2,两者所能够提供的服务是一样的,假设某一个时候S1挂掉了,这时如果有“Proxy”节点的存在,并且“Proxy”节点能够察觉到S1挂掉了的话,那么让“Proxy”节点把原来要转发给S1节点的请求转发到S2进行处理就可以了,这样子通过服务冗余的方法就可以解决原来S1突然挂掉影响服务的问题。
“Proxy”
节点相当于一个中介,或者说是一个代理,代理Client去寻找实际的Server节点去完成服务。这样子的模式在现实生活也非常常见,在买房子的时候,通常由房产中介帮助你完成和卖者之间的手续,而不需要你亲自去处理这些事情,你只需要协调好自己与中介之间的手续就好了,这里的中介,就和我们的“Proxy”节点所做的工作非常类似。
4.1.2、反向代理和正向代理
理解了什么是“代理”,离我们理解什么是“反向代理”就只差“反向”两个字了,与“反向”相对的,就是“正向”,本质上来讲,代理都是存在于Client和Server之间,但是由于性质不同,所以也分为这两种.
假设由A、B和C三人,他们之间存在借钱的关系。
对于正向代理,理解起来就是:
1、A需要钱,A知道C由很多钱,想向C借钱
2、但是A和C有矛盾,于是A想到通过B去借C借钱
3、B向C借到钱了,C不知道是A的存在
4、这样B就帮助A借到了Z的钱
在这个过程,B就充当了代理借钱的角色,并且是代替A去借钱的,这样就是正向代理。
接着是反向代理:
1、A需要钱,C有很多钱,A不知道C很多钱
2、A找B借钱
3、B知道C有很多钱
4、B向C借钱,并把借到的钱给A,而没有使用自己的钱借给A
5、A拿到钱以后,以为钱是B的,A不知道C的存在
在这个过程当中,B也充当了代理借钱的角色,不过这次不是代替A去借的,而是用C的钱借给A的,换言之即是代替C将钱借给了A,这就是反向代理。
两者区别
- 1、服务对象不同
- 正向代理,代理的是客户端,也就是例子中的A,服务端不知道实际发起请求的客户端
- 反向代理,代理的是服务端,也就是例子中的C,客户端不知道实际提供服务的服务端
- 总括:正向代理隐藏真实客户端,反向代理隐藏真实服务端
- 2、安全模型不同
- 正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此必须采取安全措施以确保仅为授权的客户端提供服务
- 反向代理都对外都是透明的,访问者并不知道自己访问的是代理,访问者不知道服务节点的存在,认为处理请求的就是代理节点
总而言之,正向代理是从客户端的角度出发,服务于局域网用户,以访问非特定的服务,其中最典型的例子就是翻墙;反向代理正好与此相反,从服务端的角度出发,服务于所有用户,隐藏实际的服务节点,服务节点的架构对用户透明,以代理节点统一对外服务。
4.2、负载均衡策略
常见的负载均衡算法
- 1、 轮询(Round-Robin)、
- 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
- 2、 源地址 Hash(一致性哈希)、
- 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器。
- 3、最少连接数
- 根据服务器当前的连接情况进行负载均衡的,当请求到来时,会选取当前连接数最少的一台服务器来处理请求。由此也可以延伸出,根据服务器 CPU占用最少,根据单位时间内处理请求的效率高低等进行服务器选择。最小连接数法只是动态分配服务器的一种算法,通过各种维度的参数计算,可以找到适合不同场景的更均衡的动态分配服务器的方案。
4.3、限流
限流就是限制流量,就像你宽带包了1个G的流量,用完了就没了。通过限流,我们可以很好地控制系统的qps,从而达到保护系统的目的。
限流可以认为服务降级的一种,限流就是限制系统的输入和输出流量已达到保护系统的目的。一般来说系统的吞吐量是可以被测算的,为了保证系统的稳定运行,一旦达到的需要限制的阈值,就需要限制流量并采取一些措施以完成限制流量的目的。比如:延迟处理,拒绝处理,或者部分拒绝处理等等。
常见以下限流算法:包括
1、计数器算法
- 有时我们还会使用计数器来进行限流,主要用来限制一定时间内的总并发数,比如数据库连接池、线程池、秒杀的并发数;计数器限流只要一定时间内的总请求数超过设定的阀值则进行限流,是一种简单粗暴的总数量限流,而不是平均速率限流。
2、滑动窗口法(和TCP滑动窗口不太一样)
3、漏桶算法
- 漏桶一个固定容量的漏桶,按照固定常量速率流出请求,流入请求速率任意,当流入的请求数累积到漏桶容量时,则新流入的请求被拒绝。漏桶可以看做是一个具有固定容量、固定流出速率的队列,漏桶限制的是请求的流出速率。
4、令牌桶算法
- 令牌桶是一个存放固定容量令牌的桶,按照固定速率往桶里添加令牌,填满了就丢弃令牌,请求是否被处理要看桶中令牌是否足够,当令牌数减为零时则拒绝新的请求。令牌桶允许一定程度突发流量,只要有令牌就可以处理,支持一次拿多个令牌。令牌桶中装的是令牌。
4.4、服务降级
服务压力剧增的时候根据当前的业务情况及流量对一些服务和页面有策略的降级,以此环节服务器的压力,以保证核心任务的进行。同时保证部分甚至大部分任务客户能得到正确的相应。也就是当前的请求处理不了了或者出错了,给一个默认的返回。
1、降级服务的特征
- 1、原因:整体负荷超出整体负载承受能力。
- 2、目的:保证重要或基本服务正常运行,非重要服务延迟使用或暂停使用
- 3、大小:降低服务粒度,要考虑整体模块粒度的大小,将粒度控制在合适的范围内
- 4、可控性:在服务粒度大小的基础上增加服务的可控性,后台服务开关的功能是一项必要配置(单机可配置文件,其他可领用数据库和缓存),可分为手动控制和自动控制。
- 5、次序:一般从外围延伸服务开始降级,需要有一定的配置项,重要性低的优先降级,比如可以分组设置等级1-10,当服务需要降级到某一个级别时,进行相关配置
2、降级预案
在进行降级之前要对系统进行梳理,看看系统是不是可以丢卒保帅;从而梳理出哪些必须誓死保护,哪些可降级;比如可以参考日志级别设置预案:
- 1、一般:比如有些服务偶尔因为网络抖动或者服务正在上线而超时,可以自动降级;
- 2、警告:有些服务在一段时间内成功率有波动(如在95~100%之间),可以自动降级或人工降级,并发送告警;
- 3、错误:比如可用率低于90%,或者数据库连接池被打爆了,或者访问量突然猛增到系统能承受的最大阀值,此时可以根据情况自动降级或者人工降级;
- 4、严重错误:比如因为特殊原因数据错误了,此时需要紧急人工降级。
3、服务降级分类
- 1、降级按照是否自动化可分为:自动开关降级(超时、失败次数、故障、限流)和人工开关降级(秒杀、电商大促等)。
- 2、降级按照功能可分为:读服务降级、写服务降级。
- 3、降级按照处于的系统层次可分为:多级降级。
4、自动降级分类
- 1、超时降级:主要配置好超时时间和超时重试次数和机制,并使用异步机制探测回复情况
- 2、失败次数降级:主要是一些不稳定的api,当失败调用次数达到一定阀值自动降级,同样要使用异步机制探测回复情况
- 3、故障降级:比如要调用的远程服务挂掉了(网络故障、DNS故障、http服务返回错误的状态码、rpc服务抛出异常),则可以直接降级。降级后的处理方案有:默认值(比如库存服务挂了,返回默认现货)、兜底数据(比如广告挂了,返回提前准备好的一些静态页面)、缓存(之前暂存的一些缓存数据)
- 4、限流降级:当我们去秒杀或者抢购一些限购商品时,此时可能会因为访问量太大而导致系统崩溃,此时开发者会使用限流来进行限制访问量,当达到限流阀值,后续请求会被降级;降级后的处理方案可以是:排队页面(将用户导流到排队页面等一会重试)、无货(直接告知用户没货了)、错误页(如活动太火爆了,稍后重试)
4.5、 服务熔断
服务熔断和电路熔断是一个道理,如果一条线路电压过高,保险丝会熔断,防止出现火灾,但是过后重启仍然是可用的。
而服务熔断则是对于目标服务的请求和调用大量超时或失败,这时应该熔断该服务的所有调用,并且对于后续调用应直接返回,从而快速释放资源,确保在目标服务不可用的这段时间内,所有对它的调用都是立即返回,不会阻塞的。再等到目标服务好转后进行接口恢复。
4.6、防雪崩
雪崩:
如果Service C因为抗不住请求,变得不可用。那么Service B的请求也会阻塞,慢慢耗尽Service B的线程资源,Service B就会变得不可用。紧接着,Service A也会不可用。
针对造成服务雪崩的不同原因,可以使用不同的应对策略
- 1.流量控制
- 2,改进缓存模式
- 3,服务自动扩容
- 4,服务调用者降级服务
参考
1、https://www.jianshu.com/p/8cd069820f79
2、https://www.cnblogs.com/holbrook/archive/2012/10/16/2726915.html
3、https://www.cnblogs.com/baby123/p/5892168.html
4、https://www.cnblogs.com/brandonli/p/5221218.html
5、https://www.zhihu.com/question/24723688/answer/583903276
6、https://cloud.tencent.com/developer/article/1457494
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- 趣味篇|有了它,我玩成语接龙游戏再也不怕了!
当你参加Teambuilding、培训或者参加团体旅行的时候,常常会碰到一群陌生人,这会给大家造成一种无形的拘束感,也不利于活动的效果。为了让小伙伴消除隔膜、彼此快速熟悉起来,最有效的办法就是玩游戏,比如游戏:国王与天使,这个游戏其实很多人内心是抗拒的,为了配合举办方…...
2024/4/28 6:55:32 - 14和15寸i7-8550U三防加固型笔记本,TPM安全芯片/双电池,电池热插拔/高亮高分辨屏
X14UX15U产品形态14寸Windows 10全加固笔记本15寸Windows 10全加固笔记本外观尺寸356*269*37 mm397*271*37 mm 平台intel系统Win 10CPUi5-8250U四核八线程,主频1.6Ghz,最大3.40Ghz i7-8550U四核八线程,主频1.8Ghz,最大4.00GhzRAM8/16GROM256/512G亮度700nit重量2.85kg3.3kg…...
2024/4/28 0:57:02 - mysql面试题及答案
Mysql 的存储引擎,myisam和innodb的区别。答:1.MyISAM 是非事务的存储引擎,适合用于频繁查询的应用。表锁,不会出现死锁,适合小数据,小并发。2.innodb是支持事务的存储引擎,合于插入和更新操作比较多的应用,设计合理的话是行锁(最大区别就在锁的级别上),适合大数据,…...
2024/4/29 1:55:33 - STM32中I/O口操作为什么要不断设置使能时钟
STM32中I/O口操作为什么要不断设置使能时钟 先来总结一下 STM32 操作 I/O 口的步骤(以精英板为例):使能 I/O 口时钟,调用函数为RCC_APB2PeriphClockCmd(); 初始化 I/O 参数,调用GPIO_Init(); 操作 I/O 口看了STM32操作 I/O 口的步骤,是不是一头雾水,因为我们以前学习51单…...
2024/4/28 2:41:26 - ALOKEX交易所——数字经济崛起 领航完美未来
当前,全球新一轮科技革命和产业变革持续深入,国际产业格局加速重塑,创新成为引领发展的第一动力。在这一轮变革中,信息技术是全球研发投入最集中、创新最活跃、应用最广泛、辐射带动作用最大的领域,是全球技术创新的竞争高地,是引领新一轮变革的主导力量。而区块链技术作为信息…...
2024/4/23 9:19:11 - 艾伦英语增长的背后,我们发现了AI微课
以提供纯正美式英语教育的艾伦老师绘本课堂由Teacher Aaron一手创办,Aaron老师是美国英语教育双硕士,累积了20年的丰富教学经验,通过特有的绘本跟读教学方式以及生动有趣的描述,在喜马拉雅拥有了2.1万粉丝、蜻蜓FM共累积41.1万次播放,在幼儿英语教学中颇受好评。作为短书A…...
2024/4/9 11:37:45 - 工具书系列
电脑里整理的一些工具书,分享出来李航 《统计学习方法》实英 杨高波 译《特征提取与图像处理(中译第二版)[尼克松]》袁国忠 《算法图解》吴军 《数学之美》李悦 李鹏 曲亚东 王斌 译 《机器学习实战》张良均 王路 谭立云 苏剑林 等著 《Python数据分析与挖掘实战》还有一些J…...
2024/4/9 19:36:14 - 智云通CRM:经销商/代理商CRM系统建设包含哪些功能?
随着企业的发展,CRM信息化建设已经是企业重中之重,那么经销商/代理商CRM系统应该包含哪些功能?智云通CRM建议如下: 一、售前 1.客户管理: 业务员通过不同的渠道(五金市场等)、不同的区域(华东区、华北区等)上门陌拜获取到客户信息(经销商或代理商信息),可手动或者批…...
2024/4/9 19:36:13 - mysql 清空数据库所有表最简单的方法
mysql 清空数据库所有表最简单的方法 drop database if exists dadabase_name; create database dadabase_name;...
2024/4/23 14:36:26 - Java NIO vs. IO
在学习了Java NIO和IO API时,很快就会想到一个问题:什么时候应该使用IO,什么时候应该使用NIO?在本文中,我将尝试阐明Java NIO和IO之间的差异,它们的用例以及它们如何影响代码的设计。1. Java NIO和IO的主要区别下表总结了Java NIO和IO之间的主要区别。IONIO面向流面向Buf…...
2024/4/22 13:56:15 - [Leetcode学习-java]Angle Between Hands of a Clock(表针锐角角度)
问题:难度:easy说明:给出时针分针的指向数值,求出两个针之间锐角角度。问题链接:https://leetcode.com/problems/angle-between-hands-of-a-clock/输入案例:Input: hour = 12, minutes = 30 Output: 165我的代码:纯粹是数学题,返回角度值为double,一开始还以为用BigDe…...
2024/4/22 20:59:58 - python 将数据写入json并解决乱码问题
字典数据格式: paperList = [{index: 许峰, title: 猪链球菌14型的分离鉴定及生物学特性研究,authors: [王治方, 徐引弟, 张青娴, 朱文豪, 白红杰],source: 中国畜牧兽医,times: 2020-06-17 15:21,database: 期刊,counted: 0},{index: 许峰,title: 金属铝微波烧结微结构演化的…...
2024/4/27 19:52:21 - 安卓相机架构总结
安卓相机架构总结 Android 相机体系庞大且复杂,在我刚开始接触到该框架的时候,如盲人摸象一般,一点一点地在代码的世界中探索,在很长的一段时间内,都只能局限于某一个特定的区域,而且在解决问题的过程中,虽然通过对代码的深入梳理,最终都会顺利解决难题,但是到最后依然…...
2024/4/9 19:36:09 - 【PAT甲级】1086 Tree Traversals Again (25分)
解题过程的小记录,如有错误欢迎指出。 难度:四星(给出先序和中序求后序,数据的读取是难点) 小导航~题目分析注意点我的解题过程思路bug代码dalao的代码借鉴点 题目分析 给出先序数列和中序数列,要求输出后序数列(push进去的顺序是先序,利用栈pop出来的顺序是中序) 注意…...
2024/4/24 13:42:46 - 手机相机的未来与发展
手机相机的未来与发展 Android相机发展至今,通过开发者对框架的不断优化,算法人员对图像处理算法的不断提升,硬件工程师对硬件性能地不断调教,换来了在某些领域完全可以媲美专业相机的成像效果,这些成绩是有目共睹的,但是我们不能仅仅着眼于过去,试着将眼光放得长远些,…...
2024/4/28 20:38:21 - 端口号范围
一般用到的是1~65535。 其中0不使用,1-1023为系统端口,也叫BSD保留端口。 0-1023: BSD保留端口,也叫系统端口,这些端口只有系统特许的进程才能使用; 1024~65535为用户端口,又分为:BSD临时端口(1024-5000)和BSD服务器(非特权)端口(5001-65535)。其中: 1024-5000: BSD临…...
2024/4/22 9:11:12 - 从1到n的二叉搜索树及回溯类之全排列、电话号码
总结 从1到n的二叉搜索树其实考的是数学,推导出卡特兰数从而解决;全排列和电话号码则是典型的回溯类题目,解法套路就是决策、再决策、撤销恢复状态 题目I(DP动态规划)题解int numTrees(int n) {vector<int> G(n+1,0);G[0]=1;// 第一重循环用来给G赋值,表示i个节点组…...
2024/4/24 11:01:52 - 【负载均衡】【load_balance】
should_we_balance判断是否应该做balance在should_we_balance()做各种判断,做dst_cpu的条件有:要么是本sg的第一个idle cpu,要么是本sg的第一个cpu判断是否需要在当前cpu上做load balance(1) 如果是NEWLY IDLE,需要做load balance(2) 否则的需要在idle cpu…...
2024/4/21 10:51:54 - SpringCloud之Zuul网关原理及其配置
Zuul简介Zuul是spring cloud中的微服务网关。网关: 是一个网络整体系统中的前置门户入口。请求首先通过网关,进行路径的路由,定位到具体的服务节点上。Zuul是一个微服务网关,首先是一个微服务。也是会在Eureka注册中心中进行服务的注册和发现。也是一个网关,请求应该通过Z…...
2024/4/9 19:36:02 - Innodb表压缩过程中遇到的坑(innodb_file_format)
对于越来越多的数据,数据库的容量越来越大,压缩也就越来越常见了。在我的实际工作中进行过多次压缩工作,也遇到多次问题,在此和大家分享一下。首先,我们先说说怎么使用innodb的压缩.第一,mysql的版本需要大于5.5 第二,设置innodb_file_format=barracuda 第三,create ta…...
2024/4/24 17:27:29
最新文章
- Python快速入门1数据类型(需要具有编程基础)
数据类型: Python 3.0版本中常见的数据类型有六种: 不可变数据类型可变数据类型Number(数字)List(列表)String(字符串)Dictionary(字典)Tuple(元…...
2024/4/29 2:26:05 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - 推荐学习什么编程语言?
选择编程语言学习时,除了就业因素外,还可以考虑以下几个方面来决定学习哪些编程语言: 个人兴趣与目标:如果你对某个特定领域感兴趣,比如游戏开发、数据分析、人工智能等,可以选择与该领域紧密相关的编程语言…...
2024/4/18 14:24:56 - 基于ArrayList实现简单洗牌
前言 在之前的那篇文章中,我们已经认识了顺序表—>http://t.csdnimg.cn/2I3fE 基于此,便好理解ArrayList和后面的洗牌游戏了。 什么是ArrayList? ArrayList底层是一段连续的空间,并且可以动态扩容,是一个动态类型的顺序表&…...
2024/4/23 6:10:49 - Linux中的shell脚本之流程控制循环遍历
3 条件判断 4 流程控制语句 1)if 语句 案例,用户输入用户名和密码,判断用户名是否是admin,密码是否是123,如果正确,则显示登录成功 首先我创建了shell文件,touch getpawer 其中getpawer 是我自己命的名 #!/bin/bas…...
2024/4/26 14:49:01 - 416. 分割等和子集问题(动态规划)
题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义:dp[i][j]表示当背包容量为j,用前i个物品是否正好可以将背包填满ÿ…...
2024/4/28 4:04:40 - 【Java】ExcelWriter自适应宽度工具类(支持中文)
工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...
2024/4/28 12:01:04 - Spring cloud负载均衡@LoadBalanced LoadBalancerClient
LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon,直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件,我们讨论Spring负载均衡以Spring Cloud2020之后版本为主,学习Spring Cloud LoadBalance,暂不讨论Ribbon…...
2024/4/28 16:34:55 - TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案
一、背景需求分析 在工业产业园、化工园或生产制造园区中,周界防范意义重大,对园区的安全起到重要的作用。常规的安防方式是采用人员巡查,人力投入成本大而且效率低。周界一旦被破坏或入侵,会影响园区人员和资产安全,…...
2024/4/28 18:31:47 - VB.net WebBrowser网页元素抓取分析方法
在用WebBrowser编程实现网页操作自动化时,常要分析网页Html,例如网页在加载数据时,常会显示“系统处理中,请稍候..”,我们需要在数据加载完成后才能继续下一步操作,如何抓取这个信息的网页html元素变化&…...
2024/4/28 12:01:03 - 【Objective-C】Objective-C汇总
方法定义 参考:https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...
2024/4/28 12:01:03 - 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】
👨💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】🌏题目描述🌏输入格…...
2024/4/28 12:01:03 - 【ES6.0】- 扩展运算符(...)
【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数࿰…...
2024/4/28 16:07:14 - 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?
文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕,各大品牌纷纷晒出优异的成绩单,摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称,在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁,多个平台数据都表现出极度异常…...
2024/4/28 23:42:05 - Go语言常用命令详解(二)
文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令,这些命令可以帮助您在Go开发中进行编译、测试、运行和…...
2024/4/28 9:00:42 - 用欧拉路径判断图同构推出reverse合法性:1116T4
http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b,我们在 a i a_i ai 和 a i 1 a_{i1} ai1 之间连边, b b b 同理,则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然࿰…...
2024/4/27 18:40:35 - 【NGINX--1】基础知识
1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息,并安装一些有助于配置官方 NGINX 软件包仓库的软件包: apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...
2024/4/28 4:14:21 - Hive默认分割符、存储格式与数据压缩
目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限(ROW FORMAT)配置标准HQL为: ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...
2024/4/27 13:52:15 - 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法
文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中,传感器和控制器产生大量周…...
2024/4/27 13:38:13 - --max-old-space-size=8192报错
vue项目运行时,如果经常运行慢,崩溃停止服务,报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中,通过JavaScript使用内存时只能使用部分内存(64位系统&…...
2024/4/28 12:00:58 - 基于深度学习的恶意软件检测
恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞,例如可以被劫持的合法软件(例如浏览器或 Web 应用程序插件)中的错误。 恶意软件渗透可能会造成灾难性的后果,包括数据被盗、勒索或网…...
2024/4/28 12:00:58 - JS原型对象prototype
让我简单的为大家介绍一下原型对象prototype吧! 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定,每一个构造函数都有一个 prototype 属性,指向另一个对象,所以我们也称为原型对象…...
2024/4/27 22:51:49 - C++中只能有一个实例的单例类
C中只能有一个实例的单例类 前面讨论的 President 类很不错,但存在一个缺陷:无法禁止通过实例化多个对象来创建多名总统: President One, Two, Three; 由于复制构造函数是私有的,其中每个对象都是不可复制的,但您的目…...
2024/4/28 7:31:46 - python django 小程序图书借阅源码
开发工具: PyCharm,mysql5.7,微信开发者工具 技术说明: python django html 小程序 功能介绍: 用户端: 登录注册(含授权登录) 首页显示搜索图书,轮播图࿰…...
2024/4/28 8:32:05 - 电子学会C/C++编程等级考试2022年03月(一级)真题解析
C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...
2024/4/27 20:28:35 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57