DDOS分布式拒绝服务攻击
DDOS分布式拒绝服务攻击
简单来说
传统的DOS就是一台或者多台服务对一个受害目标(服务器,路由,ip,国家)进行攻击,当范围过大时就是DDOS。目的就是通过大规模的网络流量使得正常流量不能访问受害目标,是一种压垮性的网络攻击。比如常见的SYN洪水攻击,基于TCP协议,不断发送SYN请求到服务器,服务器不但要一直返回确认应答请求,还要等待后续请求确认。一旦量大就造成服务器压力过大,正常请求都不能响应。
攻击者首先通过各种手段(如恶意软件传播、网络钓鱼、系统漏洞利用等)入侵并控制众多互联网上的计算机设备,这些设备可以是普通的个人电脑、服务器,甚至是一些物联网设备(如智能摄像头、路由器等)。这些被控制的设备(被称为肉鸡)组成了庞大的僵尸网络,它们会听从攻击者的指令。
当攻击者决定对某个目标发动 DDoS 攻击时,便会向僵尸网络中的所有 “肉鸡” 下达指令,让它们同时向目标服务器发送海量的请求或数据包。这些请求可以是各种类型,比如 HTTP 请求(模拟大量用户访问网页)、TCP 连接请求(试图建立大量的 TCP 连接耗尽服务器资源)、UDP 数据包(大量无意义的 UDP 数据发送)等。由于攻击流量来自众多不同的源头,目标服务器很难区分哪些是正常请求,哪些是攻击请求,而且短时间内大量的请求会迅速耗尽服务器的带宽、CPU、内存等资源,使其无法正常处理合法用户的请求,最终导致服务瘫痪。
详细来说
DDoS(Distributed Denial of Service,分布式拒绝服务攻击)是一种常见且极具破坏力的网络攻击手段,以下是关于它的详细介绍:
一、基本概念
正常情况下,网络服务是面向合法用户提供相应功能和资源访问的,例如网站服务器接收用户的浏览请求并返回网页内容,游戏服务器响应玩家的操作指令等。而 DDoS 攻击的目的就是通过恶意手段,让目标服务器或网络服务无法正常提供服务,从而 “拒绝” 为合法用户服务。
与传统的 DoS(Denial of Service,拒绝服务攻击)不同的是,DDoS 攻击是 “分布式” 的,即攻击者利用大量被控制的计算机(通常被称为 “肉鸡”)组成攻击网络(也叫僵尸网络),从多个不同的源头同时向目标发起攻击,使得攻击的流量规模更大、更难以防范,就如同众多人同时涌向一个出入口,导致正常的通行无法进行一样,让目标服务器因不堪重负而瘫痪。
二、攻击原理
-
控制大量 “肉鸡”:攻击者首先通过各种手段(如恶意软件传播、网络钓鱼、系统漏洞利用等)入侵并控制众多互联网上的计算机设备,这些设备可以是普通的个人电脑、服务器,甚至是一些物联网设备(如智能摄像头、路由器等)。这些被控制的设备组成了庞大的僵尸网络,它们会听从攻击者的指令,随时准备发起攻击。
-
发起攻击流量:当攻击者决定对某个目标发动 DDoS 攻击时,便会向僵尸网络中的所有 “肉鸡” 下达指令,让它们同时向目标服务器发送海量的请求或数据包。这些请求可以是各种类型,比如 HTTP 请求(模拟大量用户访问网页)、TCP 连接请求(试图建立大量的 TCP 连接耗尽服务器资源)、UDP 数据包(大量无意义的 UDP 数据发送)等。由于攻击流量来自众多不同的源头,目标服务器很难区分哪些是正常请求,哪些是攻击请求,而且短时间内大量的请求会迅速耗尽服务器的带宽、CPU、内存等资源,使其无法正常处理合法用户的请求,最终导致服务瘫痪。
例如,一个电商网站平时正常能处理每秒几千次的用户访问请求,在遭受 DDoS 攻击时,攻击者通过僵尸网络发动每秒几十万甚至上百万次的请求,远远超出了服务器的处理能力,导致正常用户在访问该网站时,页面加载缓慢甚至无法加载出来,无法完成购物等操作。
三、常见的攻击类型
-
流量型攻击:
-
UDP 洪水攻击:攻击者利用 UDP 协议的无连接特性,向目标服务器发送大量的 UDP 数据包,这些数据包通常是伪造的源地址,服务器接收到后需要花费资源去处理,但由于没有对应的真实连接,这些处理大多是无用功,大量的 UDP 数据包会迅速占用服务器的带宽资源,使正常的网络流量无法正常传输,最终导致服务器瘫痪。比如,向目标服务器的某个端口持续发送大量的无意义 UDP 数据包,让服务器忙于处理这些无效数据,无暇顾及合法请求。
-
ICMP 洪水攻击:ICMP(Internet Control Message Protocol,互联网控制报文协议)主要用于在网络设备间传递控制消息等。攻击者通过发送大量的 ICMP 数据包(如 Ping 请求等)来淹没目标服务器,使服务器疲于应对这些报文,消耗大量的网络带宽和系统资源,干扰正常的网络通信,导致服务中断。例如,不停地向服务器发送 Ping 请求,且请求数量极大,远超服务器的承受能力。
-
SYN 洪水攻击:基于 TCP 协议的三次握手过程进行攻击。攻击者向服务器发送大量带有伪造源地址的 SYN(同步)请求,服务器收到后会按照正常流程回复 SYN + ACK(确认)消息,并等待客户端发送最后的 ACK 确认消息来完成连接建立。然而,由于源地址是伪造的,服务器永远等不到最后的确认,会在一定时间内保持这些半连接状态(处于等待 ACK 的状态),大量这样的半连接会占用服务器的内存等资源,当积累到一定程度,服务器就无法再处理新的正常连接请求了,导致服务无法正常提供。
-
-
资源消耗型攻击:
-
HTTP 洪水攻击:攻击者模拟大量的合法用户向目标服务器发送海量的 HTTP 请求,这些请求可能是不断刷新网页、频繁请求某个资源等,使服务器的 Web 服务忙于处理这些请求,消耗大量的 CPU、内存等资源,最终无法正常响应合法用户的 HTTP 请求,导致网站无法正常访问。例如,通过控制大量 “肉鸡” 不断向电商网站的首页发送请求,让服务器持续进行页面生成、数据查询等操作,耗尽其处理能力。
-
数据库攻击:针对与 Web 应用相关联的数据库进行攻击,通过构造复杂的 SQL 查询语句(如大量的嵌套查询、高并发的查询请求等),让数据库服务器忙于执行这些查询,占用大量的数据库资源(如查询缓存、磁盘 I/O 等),进而影响整个 Web 应用的性能,使依赖数据库的服务出现响应迟缓甚至瘫痪的情况。比如,不断向数据库发送复杂的关联查询请求,使数据库的 CPU 使用率飙升,无法及时处理正常的业务数据查询和更新操作。
-
四、攻击的危害
-
服务中断:对于各类网络服务提供商(如网站、在线游戏、云服务平台等)来说,遭受 DDoS 攻击最直接的后果就是服务无法正常提供,合法用户无法访问相应的网站、使用应用程序等,给企业带来业务损失、声誉受损等负面影响。例如,一家知名的在线金融服务平台遭受 DDoS 攻击,客户无法登录进行交易操作,可能会导致客户流失,影响企业在市场中的信誉和竞争力。
-
数据泄露风险增加:在一些情况下,服务器忙于应对 DDoS 攻击时,其安全防护机制可能会出现漏洞,攻击者有可能趁机进一步入侵服务器,窃取用户的敏感信息(如账号密码、个人隐私数据等),给用户和企业都带来严重的安全隐患。
-
经济损失:服务中断会使依赖网络服务开展业务的企业失去收入来源,同时为了应对攻击、恢复服务以及加强后续的安全防护,企业需要投入大量的人力、物力和财力,包括聘请专业的安全团队、购买防护设备和服务等,这些都会给企业带来直接和间接的经济损失。
五、防范措施
-
网络层面:
-
防火墙配置:合理配置防火墙规则,通过设置访问控制列表(ACL),能够识别并过滤掉一些明显异常的流量,比如来自特定恶意 IP 地址范围的数据包、不符合正常协议规范的请求等,阻挡一部分攻击流量进入内部网络,保护服务器等关键资源。
-
入侵检测与防御系统(IDS/IPS):IDS 可以监测网络中的异常行为和攻击迹象,当发现有疑似 DDoS 攻击的流量特征(如短时间内大量来自不同 IP 的相同类型请求等)时发出警报;IPS 则在此基础上更进一步,不仅能检测到攻击,还能主动采取措施进行防御,如阻断攻击流量、限制可疑 IP 的访问等,及时应对正在发生的攻击行为。
-
流量清洗服务:很多网络服务提供商和专业的安全机构提供流量清洗服务,当检测到有 DDoS 攻击流量时,会将流量引导至专门的流量清洗中心,通过先进的算法和技术(如基于行为分析、特征匹配等)区分出正常流量和攻击流量,将攻击流量过滤掉后,再把正常流量送回目标服务器,确保服务器接收到的是合法的请求,维持正常的服务。
-
-
服务器层面:
-
优化服务器资源配置:合理分配服务器的带宽、CPU、内存等资源,预留一定的冗余资源以应对突发的流量高峰,避免因正常的业务增长或小规模攻击就导致服务瘫痪。例如,根据网站平时的访问量情况,适当增加服务器的内存和带宽,提高服务器的承载能力。
-
设置访问限制:对服务器的访问可以设置一些限制条件,如限制单个 IP 在单位时间内的请求次数、限制同时建立的 TCP 连接数量等,这样即使遭遇部分 DDoS 攻击流量,也能在一定程度上控制其对服务器资源的消耗,保证服务器能继续处理合法用户的请求。
-
采用负载均衡技术:通过负载均衡器将用户请求均匀地分配到多个服务器上,避免单个服务器承受过大的压力。在遭受 DDoS 攻击时,即使部分服务器受到影响,其他服务器仍可以继续处理部分请求,维持一定的服务能力,分散攻击带来的风险。
-
-
应用层面:
-
输入验证与过滤:对于 Web 应用等,在接收用户输入(如表单提交、URL 参数等)时,进行严格的验证和过滤,防止攻击者通过构造恶意的输入内容来发起攻击,比如过滤掉非法的 SQL 语句、超长的请求参数等,减少应用层面被利用发起攻击的风险。
-
缓存机制应用:合理设置缓存,将一些经常访问的静态资源(如网页的图片、样式文件等)缓存到离用户更近的位置(如浏览器缓存、CDN 缓存等),这样在遭受 DDoS 攻击时,部分请求可以直接从缓存中获取响应,减少服务器的处理压力,提高应对攻击的能力。
-
综上所述,DDoS 攻击作为一种严重威胁网络安全和正常服务运营的攻击手段,了解其原理、危害以及采取有效的防范措施对于保障网络服务的稳定、安全运行至关重要。
相关文章:
DDOS分布式拒绝服务攻击
DDOS分布式拒绝服务攻击 简单来说 传统的DOS就是一台或者多台服务对一个受害目标(服务器,路由,ip,国家)进行攻击,当范围过大时就是DDOS。目的就是通过大规模的网络流量使得正常流量不能访问受害目标&…...
AI后端工程师面试题的内容
AI后端工程师面试题主要包括以下几个方面的内容: 一、技术基础和项目经验: 1. 微服务架构的理解和应用:请描述你对微服务架构的理解,并举例说明一个你参与过的微服务项目,阐述你在该项目中扮演的角色和所承…...
使用go语言写一个脚本 实现WebSockt连接 用户发送a 得到返回b
在Go语言中实现一个简单的WebSocket服务器,该服务器能够接收客户端发送的“a”并返回“b”,可以按照以下步骤进行。首先,确保你的环境中已经安装了Go语言环境。接下来,你需要安装一个WebSocket库来处理WebSocket连接。这里我们使用…...
浏览器中输入一个URL后,按下回车后发生了什么
URL ,统一资源定位符, 简单点就是网址 ip 或域名 端口号 资源位置 参数 锚点 大致流程 URL 解析DNS 查询TCP 连接处理请求接受响应渲染页面 1 .输入一个网址之后,首先浏览器通过查询 DNS ,查找这个 URL 的 IP …...
ISO26262-(Timing Monitoring)在多核MCU的TPU上功能安全ASILB与ASILD有什么区别
在多核微控制器(MCU)的时间保护方面,针对功能安全ASIL B与ASILD等级的设计和实施存在显著差异,这些差异主要体现在系统对时间关键性操作的保障程度、故障检测能力、以及系统响应的严格性上。 ASIL B 级别: 时间关键性:在ASIL B等级,系统设计注重于识别并处理大部分可能…...
【大数据学习 | 面经】Spark 3.x 中的AQE(自适应查询执行)
Spark 3.x 中的自适应查询执行(Adaptive Query Execution,简称 AQE)通过多种方式提升性能,主要包括以下几个方面: 动态合并 Shuffle 分区(Coalescing Post Shuffle Partitions): 当 …...
mdcsoft服务器网络安全解决方案-SQL注入解决
mdcsoft服务器网络安全解决方案 最近几周,很多站被SQL注入攻击频繁,很多服务器被入侵,网站被攻击,为解决以上问题,我们开发了 以下系列软件及制定了系列解决方案.追究原因,全部都是认为引起的,由…...
防火墙之自定义链
自定义链的概念 自定义链(Custom Chain)通常是指在计算机网络中,根据特定需求创建的自定义规则链。这些规则链可以用于处理网络数据包,例如防火墙规则、路由规则等。自定义链的主要目的是为了提高网络管理的灵活性和可定制性。 …...
【Go底层】time包中Timer定时器原理
目录 1、背景2、go版本3、源码解释【1】Timer结构【2】NewTimer函数解释【3】After和AfterFunc函数解释 4、Timer定时间隔执行任务5、总结 1、背景 之前讲过Ticker定时器,每隔一段时间往通道写入当前时间。time包中还提供了另一种定时器:Timerÿ…...
Python毕业设计选题:基于Flask的医疗预约与诊断系统
开发语言:Python框架:flaskPython版本:python3.7.7数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 系统首页 疾病信息 就诊信息 个人中心 管理员登录界面 管理员功能界面 用户界面 医生…...
Ajax基础总结(思维导图+二维表)
一些话 刚开始学习Ajax的时候,感觉很模糊,但是好像学什么都是这样的,很正常,但是当你学习的时候要持续性敲代码,边敲代码其实就可以理解很多了。然后在最后的总结,其实做二维表之后,就可以区分…...
Leetcode62. 不同路径(HOT100)
链接 我的代码: class Solution { public:int uniquePaths(int m, int n) {if(m<1||n<1)return 1;vector<vector<int>> dp(m,vector<int>(n));for(int i 0;i<m;i){for(int j 0;j<n;j){if(!i&&!j)dp[i][j] 0;else if(!i|…...
使用go实现一个简单的rpc
什么是rpc, rpc是干什么的?几种协议的压测数据对比:tcphttp 使用tcp实现一个简单的rpc服务 什么是rpc, rpc是干什么的? rpc的作用就是实现远程的服务调用 工作流程: 客户端携带服务信息(服务名,方法名)数据 去请求服务端,服务端拿到数据,解析后执行对应的方法,将结果返回给客…...
基于STM32的智能工业温度监测与控制系统设计
目录 引言系统设计 硬件设计软件设计系统功能模块 温度采集模块温控模块实时监控与报警模块数据记录与上传模块代码实现 4.1 温度采集模块4.2 温控模块4.3 实时监控与报警模块4.4 数据记录与上传模块系统调试与优化结论与展望 1. 引言 工业领域对温度的监控和控制至关重要&am…...
机器学习概述,特征工程简述2.1——2.3
机器学习概述: 1.1人工智能概述 达特茅斯会议—人工智能的起点 机器学习是人工智能的一个实现途径 深度学习是机器学习的一个方法发展而来 1.1.2 机器学习和深度学习能做什么 传统预测 图像识别 自然语言处理 1.2什么是机器学习 数据 模型 预测 从历史数…...
蓝桥杯准备训练(lesson1,c++方向)
前言 报名参加了蓝桥杯(c)方向的宝子们,今天我将与大家一起努力参赛,后序会与大家分享我的学习情况,我将从最基础的内容开始学习,带大家打好基础,在每节课后都会有练习题,刚开始的练…...
【导航查询】.NET开源 ORM 框架 SqlSugar 系列
.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列【数据事务…...
k8s的数据库etcd报 etcdserver: mvcc: database space exceeded的处理办法
一.问题现象 公司的k8s集群的etcd配置是默认配置,其磁盘配置为2GB的配额,目前出现了数据写入失败的情况,报错Error: etcdserver: mvcc: database space exceeded。 二.处理思路 当etcd的磁盘使用达到2G后,可能会触发维护模式&am…...
【系统架构设计师】高分论文:论信息系统的安全与保密设计
更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 摘要正文摘要 本人所在工作单位承担了我市城乡智慧建设工程综合管理平台项目的开发工作。我有幸参与了本项目,并担任架构师一职,全面负责项目的需求分析和系统设计等工作。城乡智慧建设工程综合管理平台项目包括…...
二分查找!
问题描述 小明在图书馆借阅书籍,图书馆的书籍在系统中按序号顺次排列,小明在借阅后,需在系统中从“在馆书籍列表”中将该书删除。请帮助小明编写一个函数,在现有列表{1, 3, 5, 6, 7, 10, 12, 14, 26, 32, 35, 39, 42, 45, 54, 56…...
学习方法的进一步迭代————4
今天又在怀疑第二大脑的可靠程度 为什么呢? 还是因为自己没记住东西,感觉没学到东西。 其实自己知道大脑本就不应该用来存放知识而是用来思考知识,但是自己还是陷在里面了,我觉得其本质不是因为认知还不够,也不是因为还有点不适…...
java将word docx pdf转换为图片(不需要额外下载压缩包,直接导入maven坐标)
(本代码实现的是将第1页转为图片,主要用于制作文件缩略图) pdf转图片容易 docx转图片麻烦,看其他博客可以直接导入maven坐标,但我知道那是需要付费且有时限的包 本着简单实用的心,我找到法子了 pdf转图片:有库直接转…...
Oracle 12c Data Guard 环境中的 GAP 修复方法
概述 上文中提到Oracle 12c 引入了多项新技术来简化 Data Guard 环境中的 GAP 修复过程,如(RECOVER … FROM SERVICE)。这些新特性不仅减少了操作步骤,还提高了效率和准确性。本文档将详细说明如何利用这些新特性进行 GAP 修复。…...
C语言:指针与数组
一、. 数组名的理解 int arr[5] { 0,1,2,3,4 }; int* p &arr[0]; 在之前我们知道要取一个数组的首元素地址就可以使用&arr[0],但其实数组名本身就是地址,而且是数组首元素的地址。在下图中我们就通过测试看出,结果确实如此。 可是…...
【Linux】理解文件系统
目录 理解磁盘物理结构存储结构 磁盘的逻辑结构逻辑抽象CHS && LBA地址的转化 文件系统块概念分区概念inode Ext2文件系统宏观认识Boot BlockBlock Group超级块(Super Block)块组描述符表(Group Descriptor Table)块位图&…...
Python爬虫——城市数据分析与市场潜能计算(Pandas库)
使用Python进行城市市场潜能分析 简介 本教程将指导您如何使用Python和Pandas库来处理城市数据,包括GDP、面积和城市间距离。我们将计算每个城市的市场潜能,这有助于了解各城市的经济影响力。 步骤 1: 准备环境 确保您的环境中安装了Python和以下库&…...
面向对象(二)——类和对象(上)
1 类的定义 做了关于对象的很多介绍,终于进入代码编写阶段。 本节中重点介绍类和对象的基本定义,属性和方法的基本使用方式。 【示例】类的定义方式 // 每一个源文件必须有且只有一个public class,并且类名和文件名保持一致! …...
嵌入式开发之ARM(一)
目录 1、认识RAM 1.2、ARM全球分布 1.3、ARM产品线 1.4、授权的厂商 1.5、ARM体系架构 1.6、ARM系统硬件组成和运行原理 2、搭建开发环境 3、ARM的工作模式及寄存器 3.1、ARM工作模式 3.2、ARM工作模式及寄存器框图 3.2.1、CPSR寄存器 1、认识RAM 成立于1990年11月,前…...
Ai编程cursor + sealos + devBox实现登录以及用户管理增删改查(十三)
一、什么是 Sealos? Sealos 是一款以 Kubernetes 为内核的云操作系统发行版。它以云原生的方式,抛弃了传统的云计算架构,转向以 Kubernetes 为云内核的新架构,使企业能够像使用个人电脑一样简单地使用云。 二、适用场景 业务运…...
手机镜头组如此突出,考虑恢复以前设计
现在手头看重照相。结果导致的问题就是,在背部要突出很高,以容纳镜头组件。这种设计真的好吗?并不见得。真实照片: VIVO X200系列镜头组照片-CSDN博客 考虑到现在镜头的情形,我建议恢复以前的设计,就是把镜…...
debian ubuntu armbian部署asp.net core 项目 开机自启动
我本地的环境是 rk3399机器,安装armbian系统。 1.安装.net core 组件 sudo apt-get update && \sudo apt-get install -y dotnet-sdk-8.0或者安装运行库,但无法生成编译项目 sudo apt-get update && \sudo apt-get install -y aspnet…...
Linux lsmod命令用于显示已经加载到内核中的模块的状态信息
1、lsmod命令 Linux lsmod命令用于显示已经加载到内核中的模块的状态信息。执行lsmod命令后会列出所有已载入系统的模块。Linux操作系统的核心具有模块化的特性,应此在编译核心时,务须把全部的功能都放入核心。您可以将这些功能编译成一个个单独的模块&…...
新增工作台模块,任务中心支持一键重跑,MeterSphere开源持续测试工具v3.5版本发布
2024年11月28日,MeterSphere开源持续测试工具正式发布v3.5版本。 在这一版本中,MeterSphere新增工作台模块,工作台可以统一汇总系统数据,提升测试数据的可视化程度并增强对数据的分析能力,为管理者提供测试工作的全局…...
歇一歇,写写段子
无聊的日子都在写段子1.0 中学的时候喜欢看意林之类的杂志, 里面的作者用乱七八糟的理由跑去旅游,然后说“阻碍你脚步的永远只有逃离的勇气和对生活的热爱”, 我觉得太对了,可惜 12306 付款方式里没有勇气和热爱,不…...
【数据库系列】Spring Boot如何配置Flyway的回调函数
Flyway 提供了回调机制,使您能够在特定的数据库迁移事件发生时执行自定义逻辑。通过实现 Flyway 的回调接口,可以在迁移前后执行操作,如记录日志、执行额外的 SQL 语句等。 1. 创建自定义回调类 要配置 Flyway 的回调函数,需要创…...
Ubuntu源码安装gitlab13.7集群多前端《二》
Ubuntu源码安装gitlab13.7《一》 gitaly需要调整的服务 redis socket->ipbind ....* # 0.0.0.0pg vim /etc/postgresql/14/main/pg_hba.confhost all all ..../32 md5gitaly vim /home/git/gitaly/config.tomlbin_dir "/home/gi…...
QT5.14 QML串口助手
基于 QML的 串口调试助手 这个代码有缺失,补了部分代码 ASCII HEX 工程共享, Qt版本 5.14.1 COM_QML 通过百度网盘分享的文件:COM_QML.zip 链接:https://pan.baidu.com/s/1MH2d6gIPDSoaX-syVWZsww?pwd5tge 提取码:…...
SQL Server 实战 - 多种连接
目录 背景 一、多种连接 1. 复合连接条件 2. 跨数据库连接 3. 隐连接 4. 自连接 5. 多表外连接 6. UNION ALL 二、一个对比例子 背景 本专栏文章以 SAP 实施顾问在实施项目中需要掌握的 sql 语句为偏向进行选题: 用例:SAP B1 的数据库工具&am…...
Netty面试内容整理-Netty 工作原理
Netty 的工作原理主要基于异步、事件驱动的 I/O 模型,结合 Reactor 多线程模式和高效内存管理来实现高并发网络通信。以下是 Netty 的工作原理详细解析: Reactor 线程模型 Netty 基于 Reactor 模式 来处理并发连接和 I/O 操作,主要分为 单线程模型、多线程模型 和 主从多线程…...
数据结构基础之《(10)—快速排序》
一、快速排序基础 1、Partition过程 给定一个数组arr,和一个整数num。请把小于等于num的数放在数组的左边,大于num的数放在数组的右边。 要求额外空间复杂度O(1),时间复杂度O(N) 2、例子 区分小于等于num的数 (<区) [5 3 7 2 3 4 1] num…...
k8s 亲和性之Affinity
文章目录 1. Node Affinity(节点亲和性)节点亲和性类型配置示例常见场景: 2. Pod Affinity 和 Pod Anti-AffinityPod Affinity 配置示例Pod Anti-Affinity 配置示例常见场景: 3. 亲和性规则概述4. 亲和性和反亲和性的细节5. 亲和性…...
OpenNMT-py入门
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、安装二、快速开始1.准备数据2.训练模型3.翻译 总结 前言 OpenNMT-py是OpenNMT的Pytorch版本,它是一个 MIT的神经机器翻译框架。它被设计用于研…...
element-ui的下拉框报错:Cannot read properties of null (reading ‘disabled‘)
在使用element下拉框时,下拉框option必须点击输入框才关闭,点击其他地方报错:Cannot read properties of null (reading disabled) 造成报错原因:项目中使用了el-dropdown组件,但是在el-dropdown里面没有定义el-dropdo…...
【微服务】SpringBoot 对接飞书多维表格事件回调监听流程详解
目录 一、前言 二、前置准备 2.1 创建一个应用 2.2 准备一张测试使用的多维表 2.3 获取对接文档 2.4 工程中添加SDK 三、对接过程 3.1 配置Encrypt Key 和 Verification Token 3.2 配置订阅方式 3.3 添加事件 3.4 申请权限 3.5 编写订阅代码 3.6 订阅文档事件 3.7…...
docker常用命令
docker 常用命令 1、查看基本信息 docker info docker run --rm hello-world docker pull nginx docker run -p 8080:80 nginx docker image ls 查看详细信息 docker inspect nginx 查看当前正运行的容器 docker ps 后台运行容器 docker run -d -p 8080:80 nginx 给容器取个名字…...
如何调用百度文心一言API实现智能问答
诸神缄默不语-个人CSDN博文目录 百度需要先认证个人信息才能使用LLM API。 文章目录 1. 获得 API Key2. 撰写代码并实现提问和回答2.1 用openai包实现调用2.2 用openai包实现流式调用2.3 用openai包实现工具调用2.4 构建智能体2.5 文生图2.6 图生图 3. 用gradio建立大模型问答…...
数据类型扮演着至关重要的角色
在Java编程语言中,数据类型扮演着至关重要的角色,它们定义了变量能够存储的数据类型以及可以对这些数据执行的操作。Java的数据类型主要可以分为两大类:基本数据类型(也称为原始数据类型)和引用数据类型。 基本数据类…...
React 路由与组件通信:如何实现路由参数、查询参数、state和上下文的使用
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...
3.STM32通信接口之SPI通信---SPI实战(W25Q64存储模块介绍)《精讲》
上一节介绍了SPI的通信过程和方法,接下来就要进行STM32与外围模块通信了,这个模块是一块非易失型存储芯片,能够提供8MB的存储空间。接下来跟着Whappy脚步,进行探索新大陆吧!【免费】W25Q64(中英文数据手册)资源-CSDN文…...
yagmail邮件发送库:如何用Python实现自动化邮件营销?
🎥 作者简介: CSDN\阿里云\腾讯云\华为云开发社区优质创作者,专注分享大数据、Python、数据库、人工智能等领域的优质内容 🌸个人主页: 长风清留杨的博客 🍃形式准则: 无论成就大小,…...