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

企业出海降本:如何将应用从 AWS EC2 快速无缝迁移至DigitalOcean Droplet

企业出海已经成为目前最热门的趋势。然而不论你是做跨境电商,还是短剧出海,或处于最热门的AI 赛道,你都需要使用海外的云主机或GPU云服务。海外一线的云服务平台尽管覆盖区域广泛,但是往往费用成本较高。所以降本始终是企业出海关注的重点。

DigitalOcean作为海外上市云服务平台,已服务60万企业用户。DigitalOcean以简单易用、价格实惠、性能稳定,以及一键部署与配置、托管数据库和内置监控等强大功能而受到青睐。这些特点使其成为初创公司、独立开发者和希望将更多精力放在构建而非管理基础设施的成长型团队的理想选择。

所以有许多用户都从一线云服务平台迁移至DigitalOcean,或将DigitalOcean作为多云部署的一部分。甚至有的客户从AWS 迁移至DigitalOcean之后,成功节省了60%的成本。

那么在 AWS EC2 上运行项目如何迁移到 DigitalOcean?

无论你是想降低基础设施成本、简化服务器管理,还是获得对环境的更多控制,本教程都会一步步教会你把一个正在运行中的应用,从 EC2 迁移到 DigitalOcean Droplet 。

本教程确保你能够复刻环境、以安全方式移动文件和数据,并在最小化停机时间的情况下完成迁移。

本教程特别适用于希望优化云基础设施的开发者、创业者和企业。通过从 AWS EC2 迁移到 DigitalOcean Droplet(DigitalOcean的云主机产品),用户可以获得这些好处:

  • 高性价比:与 AWS 相比,DigitalOcean 提供可预测且更低的定价,可显著降低基础设施成本。
  • 简洁易用:DigitalOcean 的用户友好的 UI 和简明的设置流程,让开发者无需具备丰富的云知识即可管理环境。
  • 对开发者友好的功能:一键部署与配置、托管数据库和内置监控等功能,简化了开发和部署流程。
  • 可扩展性:DigitalOcean 的基础设施可随需求扩展,让你能在应用流量激增时轻松调整资源。
  • 社区和支持:庞大的开发者社区和完善的文档,可以帮助你排查问题并优化设置。
  • 专注开发:减少基础设施管理的复杂性,让你有更多时间专注于构建和改进应用。

前期准备

在开始之前,请确保你具备以下条件:

  • 可访问你的 AWS EC2 实例(SSH 密钥或凭证)
  • 一个已完成注册的 DigitalOcean 账户(绑定信用卡或支付宝均可)
  • 了解基本的 Linux 服务器管理知识(命令行、SSH 等)
  • 熟悉你的应用技术栈(如 LAMP、Node.js、Docker)
  • 域名管理门户登录信息(如果需要更新 DNS 记录)

可选但推荐具备以下条件:

  • 用于测试迁移的预发布环境
  • 两台服务器上都已安装 rsync(大多数系统已预装)

另外,如果你需要了解自己的产品应该使用什么配置的DigitalOcean Droplet,可以阅读 DigitalOcean 中国区独家战略合作伙伴卓普云AI Droplet的官方博客《如何选择适合自己的 DigitalOcean Droplet 云服务器配置》。

如何从 AWS EC2 迁移到 Droplet

我们会将迁移过程分为10步,为你提供清晰、可重复的流程,将正在运行中的应用从 AWS 搬到 DigitalOcean。

在此之前,开发者和企业通常使用自定义脚本、供应商特定工具或手动备份来管理迁移,每种方式在复杂度、停机时间和风险上各有利弊。本方法聚焦简洁和可靠,使用 SSH、rsync 和 mysqldump 等广泛支持的工具来优化流程。

由于迁移目标是 DigitalOcean,你将受益于干净、现代的基础设施体验,让你更快、更少阻碍地从部署到扩展。

步骤 1:评估你的 AWS EC2 环境

在进行其他操作之前,先确认你的运行情况:

  • 检查已安装操作系统:通过 SSH 连接 EC2 实例,运行

cat /etc/os-release

  • 以显示操作系统详情。
  • 验证活动服务:运行

systemctl list-units --type=service --state=running

  • 列出所有活动服务,查找 Apache、MySQL 或 Node.js 等服务。
  • 定位应用文件和配置:检查常见目录(如 /var/www/html)来确定应用文件存放位置,或使用

find / -name 'your-app-name'

  • 定位特定文件或目录;在 /etc 或应用目录中检查配置文件。
  • 检查防火墙和安全组设置:在 AWS 管理控制台的 EC2 仪表板中,选中你的实例,在“安全”选项卡下查看关联的安全组,检查入站和出站规则;在实例内运行

sudo iptables -L

  • 查看本地防火墙规则。

此步骤有助于在 DigitalOcean 上准确复刻环境。

步骤 2:创建你的 DigitalOcean Droplet

在 DigitalOcean 控制面板中:

  1. 点击 Create > Droplets
  2. 选择所需的操作系统镜像。
  3. 选择与你的 EC2 实例规模相匹配的方案。
  4. 选择靠近用户的机房区域。
  5. 添加登录方式 —— 推荐使用 SSH 密钥,也可设置强密码。
  6. 设置 Droplet 主机名,添加标签(如需),并选择监控或卷等可选功能,然后创建 Droplet。

创建完成后,从控制面板记录你的 Droplet IP 地址。

步骤 3:配置 Droplet

通过以下任一方式访问新 Droplet:

  • 使用 SSH 密钥(推荐)

ssh root@your_droplet_ip

  • 如果密钥不在默认位置,指定路径:

ssh -i /path/to/private-key root@your_droplet_ip

  • 使用 root 密码:如果之前设置了密码认证,运行:

ssh root@your_droplet_ip

登录后,安装所需软件包,例如:

sudo apt update && sudo apt install nginx mysql-server php -y

(或根据你的栈安装 Node.js、Docker 等)

请确保复刻 EC2 上的所有系统配置。

步骤 4:传输应用文件

使用 rsync 从 EC2 拷贝文件到 Droplet:

rsync -avz -e "ssh -i /path/to/aws-key.pem" ubuntu@your_ec2_ip:/var/www/html/ root@your_droplet_ip:/var/www/html/

rsync 优势:速度快、安全,并保持文件权限。

步骤 5:导出并导入数据库(如适用)

如果应用使用数据库,需要将其从 EC2 实例迁移到 Droplet,以确保应用在新环境中正常运行。

选项 1:在 Droplet 上运行数据库

1、导出数据库

  • MySQL/MariaDB:使用 mysqldump
  • PostgreSQL:使用 pg_dump
  • MongoDB:使用 mongodump
  • Redis:使用 redis-cli 生成快照

2、传输导出文件

rsync -avz -e "ssh -i /path/to/aws-key.pem" ubuntu@your_ec2_ip:/path/to/backup.sql root@your_droplet_ip:/root/

3、在 Droplet 上导入:参照 DigitalOcean 上对应数据库的恢复教程。

选项2:使用DigitalOcean托管数据库(生产环境推荐)

作为替代方案,您无需在Droplet上自行托管数据库,而是可以通过DigitalOcean的托管数据库服务将这一责任移交给平台。这些数据库集群专为生产环境设计,完全托管且提供以下功能:

  • 免费每日备份与特定时间点恢复
  • 自动故障转移的高可用性
  • 端到端安全防护
  • 零停机时间扩展
  • 性能监控与指标分析

迁移至托管数据库的步骤:

  • 创建托管数据库:在DigitalOcean控制面板中,启动一个新的托管数据库实例。
  • 导出并导入数据:使用与上述相同的备份流程导出数据,然后通过提供的凭据将数据导入新的托管数据库。
  • 更新应用配置:将应用程序的数据库连接字符串更改为托管数据库集群提供的连接详情。

选择适合您的方案:

若您仅进行测试或运行小型项目,在Droplet上托管数据库可能已足够。但对于任何生产环境,托管数据库能带来长期且显著的优势。

专业建议:

托管数据库尤其适合以下场景:计划未来扩展规模、需要更高服务可用性保障,或希望省去备份、补丁更新及性能调优等运维工作。

步骤6 :更新配置文件

现在您的应用和数据库已托管在DigitalOcean上,需要更新配置文件以适配新环境。

1. Web服务器配置

如果您使用Nginx、Apache或其他Web服务器,请确保服务器块(server block)或虚拟主机配置文件已正确设置。您需要更新路径、服务器名称,以及可能的SSL证书。例如,对于Nginx,可通过以下命令编辑配置文件:

sudo nano /etc/nginx/sites-available/default

进行必要的修改(如更新文档根目录或服务器名称)。修改完成后,务必重新加载或重启Nginx以应用更改:

sudo systemctl restart nginx

2. 数据库连接字符串

更新应用的数据库连接字符串,使其指向DigitalOcean Droplet或托管数据库中的正确主机地址和凭据。这可能需要修改存储数据库连接信息的环境变量或配置文件。

例如,如果之前连接字符串指向EC2实例,现在需将其更改为Droplet的本地地址(localhost)或托管数据库的IP地址。

3. 环境变量

如果您的应用依赖环境变量(如API密钥、数据库凭据或其他配置设置),请确保在DigitalOcean Droplet中已正确设置。您可以通过以下方式配置环境变量:

  • 直接在Shell配置文件中设置(如 ~/.bashrc~/.bash_profile/etc/environment
  • 或在应用使用的 .env 文件中设置

示例:设置MySQL根密码的环境变量

export MYSQL_ROOT_PASSWORD='your_password'

然后加载变量:

source ~/.bashrc

步骤7 :在Droplet上测试应用

在将Droplet正式上线前,务必彻底测试应用,确保其在新环境中正常运行。以下是测试步骤:

1、检查文件完整性

确认所有应用文件已成功传输到Droplet,并确保文件权限正确且传输过程中未损坏。

2、测试数据库连接

验证应用能否连接到新数据库。若使用Web框架,可通过检查应用日志或直接在命令行执行数据库查询来排查连接错误。

3、执行功能测试

测试应用的各个方面(前端、后端、API等)。您可以手动测试,或使用自动化测试工具(如 Selenium、Postman 或 cURL)验证功能是否正常。

4、查看日志

检查系统和应用日志以发现潜在错误:

sudo journalctl -xe

检查对应日志文件(如 Nginx 错误日志 /var/log/nginx/error.log、MySQL 日志 /var/log/mysql/error.log)或应用自定义的日志路径。

步骤 8:更新 DNS 设置

  1. 登录域名管理控制面板。
  2. 将 A 记录指向你的 Droplet IP,例如:

@    A    your_droplet_ip

  1. 将 TTL 设置为较低值(如 300 秒),以加快生效。
  2. 等待 DNS 传播,通常几分钟至 24 小时,大多数情况下一小时内即可看到流量切换。

步骤 9:切换生产流量

DNS 完全指向 Droplet 后,即可将生产流量切换到 DigitalOcean,期间密切监控:

  • 流量监控:尤其在变更后头几小时。
  • 性能检查:确认在实际负载下表现正常。
  • 性能优化:根据需要调整 Droplet 配置,添加备份等。

步骤 10:最终清理

  1. 终止 EC2 实例:若不再使用,关闭或删除以避免额外费用。
  2. 复核安全设置:确保只开放必要端口(如 22、80、443)。
  3. 备份数据:设置自动备份或手动快照,可使用 SnapShooter 等服务。
  4. 规划扩展:根据应用增长,考虑垂直或水平扩展,如调整 Droplet 大小或添加负载均衡器。

常见问题

  1. 为什么要从 AWS EC2 迁移到 DigitalOcean Droplet? DigitalOcean 以高性价比而受到众多创业公司欢迎,其透明且可预测的定价可显著降低云服务成本;其简洁的界面和开发者友好的工具可优化部署流程,让你专注开发而非管理基础设施或花费大量时间学习云平台的使用。
  2. 更新 DNS 后,DNS 传播需要多长时间? 传播时间通常为几分钟至 24 小时,取决于 DNS 记录的 TTL 设置和各 ISP 的缓存策略。大多数情况下,一小时内即可开始看到流量切换。
  3. 迁移过程中遇到问题该怎么办? 首先检查系统和应用日志以定位错误;若自行无法解决,可联系 DigitalOcean 支持或使用其免费迁移服务以确保平滑过渡。
  4. 如何确保应用在 DigitalOcean 上表现良好? 使用 DigitalOcean 内置监控工具跟踪资源使用情况,识别瓶颈;根据需求调整 Droplet 大小、添加备份或负载均衡器,以保持高性能。
  5. 在 DigitalOcean 上如何备份数据? 可设置自动每周或每日备份,也可手动快照 Droplet。对于更全面的解决方案,可使用 SnapShooter 等第三方服务。

写在最后

在本教程中,我们已经带着你一步步将运行中的应用从 AWS EC2 迁移到 DigitalOcean Droplet —— 从评估现有环境、创建和配置 Droplet,到传输文件和数据库、测试和更新 DNS,实现最小化停机时间的平滑切换。

此过程能帮助你降低云成本、简化基础设施管理,并获得更灵活的部署环境。无论是独立项目还是生产级应用,迁移到 DigitalOcean 都能让你享受面向开发者的简洁定价和现代化体验。

每个应用栈各有差异,可能需要根据具体情况添加额外步骤。如需帮助,DigitalOcean 为符合条件的项目提供免费迁移服务,帮助你更快、更自信地完成过渡,​ 具体详情可直接咨询 DigitalOcean中国区独家战略合作伙伴卓普云AI Droplet。 ​

相关文章:

企业出海降本:如何将应用从 AWS EC2 快速无缝迁移至DigitalOcean Droplet

企业出海已经成为目前最热门的趋势。然而不论你是做跨境电商,还是短剧出海,或处于最热门的AI 赛道,你都需要使用海外的云主机或GPU云服务。海外一线的云服务平台尽管覆盖区域广泛,但是往往费用成本较高。所以降本始终是企业出海关…...

java练习2

package a01_第一次练习.a02_计算输入天数;import java.text.ParseException; import java.time.Duration; import java.time.LocalDateTime; import java.util.Scanner;public class Test {public static void main(String[] args) throws ParseException {//当前时间LocalDat…...

PDM是什么?PDM有什么用?怎么选PDM?2025制造PDM/PLM系统盘点(4000字)

(文章来自CRDE PDM研究中心) 摘要 PDM是制造企业产品数据管理的核心工具,并逐渐发展出了PLM、云PLM等新形态,在功能增加的同时成本也有大幅降低,已经成为企业研发管理的最优选择,并逐渐被有产品创新需求的…...

TiDB 可观测性最佳实践

TiDB 介绍 TiDB,由 PingCAP 公司自主研发的开源分布式关系型数据库,是一款创新的 HTAP 数据库产品,它融合了在线事务处理(OLTP)和在线分析处理(OLAP)的能力,支持水平扩容和缩容&…...

8.idea创建maven项目(使用Log4j日志记录框架+Log4j 介绍)

8.idea创建maven项目(使用Log4j日志记录框架Log4j 介绍) 在 IntelliJ IDEA 的 Maven 项目中引入了 Log4j,并配置了日志同时输出到控制台和文件。 Log4j 提供了灵活的日志配置选项,可以根据项目需求调整日志级别、输出目标和格式。 1. 创建 Maven 项目 …...

Linux 命名管道+日志

一、命名管道 1.1 进程通信的前提:先让不同进程看到同一份资源; 1.2 如何确保两个进程打开的是同一个文件:同路径下同一文件名; 1.3 命名管道:通过路径文件名确保这个份资源的唯一性; 1.4 接口&#xf…...

c/c++之信号处理<signal.h>

该库提供了一组用于处理信号的函数和宏。信号是由操作系统或程序本身生成的一种异步事件,用于通知某些事件的发生,例如非法操作、用户中断等。 信号 信号是进程之间通信的重要方式。信号是一种异步通知机制,由操作系统或其他进程发送给当前进…...

基于PyTorch的图像分类特征提取与模型训练文档

概述 本代码实现了一个基于PyTorch的图像特征提取与分类模型训练流程。核心功能包括: 使用预训练ResNet18模型进行图像特征提取 将提取的特征保存为标准化格式 基于提取的特征训练分类模型 代码结构详解 1. 库导入 import torch import torch.nn as nn import…...

DDoS vs CC攻击:哪种对服务器威胁更大?

引言 DDoS(分布式拒绝服务)与CC(Challenge Collapsar)攻击是两种常见的网络攻击手段,均会导致服务器资源耗尽、服务中断。但它们的攻击原理、防御难度及危害程度存在显著差异。本文将从技术原理、攻击效果、防御成本等…...

Weiss Robotics的WPG与WSG系列紧凑型机器人夹爪,精准、灵活、高效

在自动化和智能制造领域,Weiss Robotics 以其创新的智能抓取系统而受到广泛认可。本文将重点介绍 Weiss Robotics 的两大产品系列:WPG 系列和 WSG 系列。这些产品系列凭借其先进的技术特性,为各行各业的自动化需求提供了高效、灵活的解决方案…...

引力透镜效应添加光线弯曲程度可视化层的MATLAB代码

物理实现要点: ‌雅可比矩阵计算‌ 通过数值梯度计算偏转场的空间导数: 放大率μ反映像的亮度增强倍数 ‌动态范围处理‌ 使用对数压缩μ值范围:μ_vis log10(1μ),避免高放大率区域饱和 ‌多物理量联合显示‌ 红圈标注爱因…...

OpenCV 图形API(71)图像与通道拼接函数-----从图像(GMat)中裁剪出一个矩形区域的操作函数 crop()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 裁剪一个2D矩阵。 该函数根据给定的 cv::Rect 裁剪矩阵。 输出矩阵必须与输入矩阵具有相同的深度,大小由给定的矩形大小指定。 注意…...

tarjan缩点+强联通分量

【模板】缩点https://www.luogu.com.cn/problem/P3387 首先我们要理解这道题为什么要用缩点 题目说的是有向图,如果无环的话就可以用DP来解决了 由于可以走重复的点,所以一个环上的点可以看成是一个点,它的点权就等于该环上所有点的点权之…...

tornado_登录页面(案例)

目录 1.基础知识​编辑 2.脚手架(模版) 3.登录流程图(processon) 4.登录表单 4.1后(返回值)任何值:username/password (4.1.1)app.py (4.1.2&#xff…...

Educational Codeforces Round 178 (Rated for Div. 2)

ABC 略 D n个数互质&#xff0c;即n个数都是质数&#xff0c;预处理前4e5个质数&#xff0c;原排列从大到小排序求前缀和&#xff0c;质数求前缀和&#xff0c;从后往前循环第一个前者前缀和能大于等于后者就是留下的i个数。 #include<bits/stdc.h> #define int long …...

从Transformer原理角度来看,prompt设置输出字数限制会生效的原因

从Transformer原理角度来看,prompt设置输出字数限制会生效的原因 1. 生成过程的控制 Transformer在生成文本时是一个自回归的过程,它从起始标记开始,逐个生成下一个单词或标记。在这个过程中,模型会根据已经生成的文本和自身的参数来预测下一个可能的标记的概率分布。当设…...

WEB漏洞--CSRF及SSRF案例

CSRF案例 原理 检测是否存在CSRF&#xff08;跨站请求伪造&#xff09;漏洞 1. 手动测试 构造恶意请求&#xff1a;创建一个恶意网页或电子邮件&#xff0c;包含指向目标网站的恶意请求&#xff08;如更改密码或发送消息的URL&#xff09;。诱使用户访问该恶意请求&#xff0c;…...

Android开发——实现一个计算器

目录 代码讲解 activity_calculator.xmld代码讲解 1. 根布局&#xff08;LinearLayout&#xff09; 2. 显示区域&#xff08;TextView&#xff09; 3. 按钮区域&#xff08;GridLayout&#xff09; 4. 清除和删除按钮 5. 数字和操作符按钮 6. 其他行的按钮 7. 最后一行…...

23G显存可以跑多大尺寸的Qwen3?

随着阿里Qwen3系列大模型的发布,开发者们对如何在有限显存下部署不同尺寸的模型尤为关注。本文基于Qwen3的技术特性和实际测试数据,探讨在23G显存环境下可运行的模型选择及优化策略。 不过由于咱财力有限,只有一张A100,还不是空的,目前只有23G的显存。 那么这23G显存能跑…...

网络通讯【QTcpServer、QTcpSocket、QAbstractSocket】

目录 QTcpServer class简单描述成员函数和信号 QTcpSocket Class详细描述成员函数和信号 QAbstractSocket Class详细描述成员函数和信号成员函数说明文档 QT实现服务器和客户端通讯服务器端&#xff1a;通讯流程原代码 客户端通信流程原代码 QTcpServer class header: #includ…...

std::functional 类是干什么用的?

author: hjjdebug date: 2025年 04月 29日 星期二 15:54:53 CST description: std::functional 类是干什么用的&#xff1f; 文章目录 1.functional 对象的概念2.functional 对象存在的意义2.1 为什么要把接口再封一层&#xff1f;2.2 c中函数参数可以不用回调函数, 而改用func…...

人事管理系统6

模糊查询 DepartmentMapper.xml &#xff1a; <select id"findDepartmentListByName" resultMap"BaseResultMap"> select <include refid"Base_Column_List"/> from department where dname like %${dname}% /*where dname like con…...

链表的中间节点

这题需要用到快慢指针的思想&#xff0c;快指针叫fast&#xff0c;慢指针是slow&#xff0c;快指针每次往后移两个节点&#xff0c;slow只移动一个节点&#xff0c;这样子fast的速度是slow的两遍&#xff0c;当fast遍历完链表&#xff0c;slow才遍历一半&#xff0c;正好就在中…...

【学习学学】城市群与都市圈是什么?怎么

城市群与都市圈是什么&#xff1f;怎么发展 这些年城市群&#xff0c;都市圈的概念被逐渐提了出来&#xff0c;也是未来我国即将重点发展的对象之一。 因此&#xff0c;身边有一些朋友在问&#xff0c;城市群与都市圈有什么区别&#xff1f;哪个对城市发展影响更大&#xff1f…...

【深度学习与大模型基础】第14章-分类任务与经典分类算法

Part 1&#xff1a;什么是分类任务&#xff1f; 1.1 分类就是“贴标签” 想象你有一堆水果&#xff0c;有苹果&#x1f34e;、橘子&#x1f34a;、香蕉&#x1f34c;&#xff0c;你的任务是让机器学会自动判断一个新水果属于哪一类——这就是分类&#xff08;Classification&…...

第十五章:预训练大语言模型

目录 15.1 数据准备 15.1.1 数据预处理 15.1.2 数据调度 15.2 模型架构 15.2.1 主流架构 一、编码器架构&#xff08;Encoder-only&#xff0c;以 BERT 为代表&#xff09; 核心特点&#xff1a; 代表模型&#xff1a;BERT、RoBERTa、ALBERT 典型应用&#xff1a; 二…...

万象生鲜配送系统代码2025年4月29日更新日志

亲爱的用户&#xff1a;万象生鲜配送系统始终致力于为您提供更优质、高效的服务体验。经过我们技术团队的不懈努力&#xff0c;万象生鲜配送系统在 2025 年 4 月迎来了一次重大更新。本次更新涵盖了多个方面&#xff0c;包括功能新增、性能优化以及问题修复&#xff0c;旨在进一…...

Mac 创建QT按钮以及一些操作

在创建QT项目好 后我们打开mainwindow.cpp&#xff0c;下面所示的代码都是在这个cpp文件里面因为它是窗口的入口函数 #include "mainwindow.h" #include "ui_mainwindow.h" #include<QPushButton>//按钮的头文件MainWindow::MainWindow(QWidget *pa…...

C++学习之shell高级和正则表达式

目录 1.正则表达式 2.C中使用正则 3.复习 4.sort命令 5.uniq命令 6.wc命令 7.grep命令 8.find命令 9.xargs命令 10.sed命令 11.awk命令 12.crontab 1.正则表达式 1 管道 使用| 将多个命令拼接在一起 原理&#xff0c;就是将前一个命令的标准输出作为后一个…...

SpringBoot获取用户信息常见问题(密码屏蔽、驼峰命名和下划线命名的自动转换)

文章目录 一、不返回password字段二、返回的createTime和updateTime为空原因解决&#xff1a;开启驼峰命名和下划线命名的自动转换 一、不返回password字段 在字段上面添加JsonIgnore注解即可 JsonIgnore // 在把对象序列化成json字符串时&#xff0c;忽略该字段 private Str…...

优化PCB Via Stub系列(2) – 运用U-Turn Via设计破解阻抗匹配困境,改善信号完整性

在PCB设计中&#xff0c;往往透过制程改善如背钻、盲孔或埋孔&#xff0c;来消除不必要的Via stub&#xff0c;可是多出来的制造成本会压低产品的毛利&#xff0c;可是又有什么办法可以不透过制程改善以缩小Via stub带来的SI困扰呢&#xff1f; 本周我们来讲从Layout布局的角度…...

飞鸟游戏模拟器 1.0.3 | 完全免费无广告,内置大量经典童年游戏,重温美好回忆

飞鸟游戏模拟器是一款专为安卓用户设计的免费游戏模拟器&#xff0c;内置了大量经典的童年游戏。该模拟器拥有丰富的游戏资源&#xff0c;目前已有约20,000款游戏&#xff0c;包括多种类型如冒险、动作、角色扮演等。用户可以直接搜索查找想要玩的游戏进行下载并启动。游戏库中…...

​钓鱼网页散播银狐木马,远控后门威胁终端安全

在当今网络环境下&#xff0c;许多人都有通过搜索引擎下载应用程序的习惯&#xff0c;虽然这种方式简单又迅速&#xff0c;但这也可能被不法分子所利用&#xff0c;通过设置钓鱼网站来欺骗用户。这些钓鱼网站可能会通过各种方式吸引用户点击&#xff0c;从而进行病毒的传播&…...

一文读懂 JavaScript 中的深浅拷贝

在 JavaScript 编程里&#xff0c;深浅拷贝是处理数据时极为关键的概念。理解它们的差异&#xff0c;能帮我们规避许多数据操作上的 “陷阱”。今天&#xff0c;咱们就借助简单的 “abc” 相关示例&#xff0c;深入探索深浅拷贝的奥秘&#xff0c;并且通过在浏览器控制台输出结…...

5G技术在工业4.0中的应用:连接未来,驱动智能制造

5G技术在工业4.0中的应用&#xff1a;连接未来&#xff0c;驱动智能制造 引言 工业4.0&#xff0c;作为第四次工业革命的核心&#xff0c;已经在全球范围内掀起了智能制造的浪潮。它不仅包括了自动化生产、智能物流、云计算和大数据的应用&#xff0c;更是融合了互联网、物联网…...

驱动开发硬核特训 · Day 25 (附加篇):从设备树到驱动——深入理解Linux时钟子系统的实战链路

一、前言 在嵌入式Linux开发中&#xff0c;无论是CPU、外设控制器&#xff0c;还是简单的GPIO扩展器&#xff0c;大多数硬件模块都离不开时钟信号的支撑。 时钟子系统&#xff08;Clock Subsystem&#xff09;&#xff0c;作为Linux内核中基础设施的一部分&#xff0c;为设备…...

数据结构---单链表的增删查改

前言&#xff1a; 经过了几个月的漫长岁月&#xff0c;回头时年迈的小编发现&#xff0c;数据结构的内容还没有写博客&#xff0c;于是小编赶紧停下手头的活动&#xff0c;补上博客以洗清身上的罪孽 目录 前言 概念&#xff1a; 单链表的结构 我们设定一个哨兵位头节点给链…...

【codeforces 2104D,E】欧拉筛,字符串上dp

【codeforces 2104D&#xff0c;E】欧拉筛&#xff0c;字符串上dp Problem - D - Codeforces 题意&#xff1a; 给定一个长度为 n n n的数组 a 1 , a 2 , . . . , a n a_1, a_2, ... , a_n a1​,a2​,...,an​&#xff0c;其中 2 ≤ a i ≤ 1 0 9 2 \leq a_i \leq 10^9 2≤…...

UEC++第15天|番茄插件、实现跳跃、实现背景运动

这是flyBird的第二天&#xff0c;做了一些简单的功能&#xff0c;明天继续更新 vs的番茄插件 在visual stdudio里使用可以帮助代码补全&#xff0c;这一篇博客写的不错&#xff0c;大家可以参考一下。VS2019 安装番茄助手&#xff08;Visual Assist x 插件&#xff09;攻略_vs…...

论文笔记-基于多层感知器(MLP)的多变量桥式起重机自适应安全制动与距离预测

《IET Cyber-Systems and Robotics》出版山东大学 Tenglong Zhang 和 Guoliang Liu 团队的研究成果&#xff0c;文章题为“Adaptive Safe Braking and Distance Prediction for Overhead Cranes With Multivariation Using MLP”。 摘要 桥式起重机的紧急制动及其制动距离预测是…...

[论文阅读]Adversarial Semantic Collisions

Adversarial Semantic Collisions Adversarial Semantic Collisions - ACL Anthology Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP) 对抗样本是相似的输入但是产生不同的模型输出&#xff0c;而语义冲突是对抗样本的逆…...

Redis Sentinel 和 Redis Cluster 各自的原理、优缺点及适用场景是什么?

我们来详细分析下 Redis Sentinel (哨兵) 和 Redis Cluster (集群) 这两种方案的原理和使用场景。 Redis Sentinel (哨兵) 原理: Sentinel 本身是一个或一组独立于 Redis 数据节点的进程。它的核心职责是监控一个 Redis 主从复制 (Master-Slave) 架构。多个 Sentinel 进程协同…...

面向人工智能、量子科技、人形机器人等产业,山东启动制造业创新中心培育认定

从山东省工业和信息化厅了解到&#xff0c;2025年山东省制造业创新中心培育和认定已启动&#xff0c;重点面向全省传统优势产业、新兴产业及未来产业等领域&#xff0c;鼓励具备条件的龙头企业牵头创建省制造业创新中心。 今年&#xff0c;山东重点面向全省冶金、化工、轻工、…...

无锡哲讯科技:SAP财务系统——赋能企业智慧财务管理

数字化时代&#xff0c;财务管理的新挑战 在全球化竞争和数字经济快速发展的背景下&#xff0c;企业财务管理正面临前所未有的挑战。传统的财务核算方式效率低下、数据孤岛严重、决策滞后&#xff0c;难以满足现代企业高效运营的需求。如何实现财务数据的实时整合&#xff1…...

Linux命令使用记录(自用)

阿里开源镜像站:https://developer.aliyun.com/mirror/?spma2c6h.13651102.0.0.6c2a1b11I9pmUD&serviceTypemirror&tag top命令 top [选项] -p 只显示某个进程的信息 -d 设置刷新时间&#xff0c;默认是5s -c 显示产生进程的完整命令&#xff0c;默认是进程…...

Spring Security 的 CSRF 防护机制

CSRF&#xff1a;跨站请求伪造&#xff08;Cross-Site Request Forgery&#xff09; Spring Security 中的 .csrf() 是用来开启或配置这种保护机制&#xff0c;防止恶意网站“冒充用户”向你的网站发起请求。 一、CSRF 攻击原理简要 CSRF 的典型攻击场景如下&#xff1a; 用…...

跨平台项目部署全攻略:Windows后端+Mac前端在服务器的协同实战

当你的后端(Flask+MySQL,Windows开发)与前端(Vue,Mac开发)需要统一部署到服务器并实现交互时,完全可以通过「跨平台适配+反向代理」方案实现。本文将分步骤讲解如何在 Linux服务器(推荐)或 Windows服务器 上部署,并解决跨平台兼容性、跨域请求等核心问题。 一、技术…...

第八章 磁盘管理未完待续

1.磁盘管理 磁盘简介 名词&#xff1a;磁盘/硬盘/disk 存储设备类型从工作原理区分 机械 机械硬盘即是传统普通硬盘&#xff0c;主要由&#xff1a;盘片&#xff0c;磁头&#xff0c;盘片转轴及 控制电机&#xff0c;磁头控制器&#xff0c;数据转换器&#xff0c;接口&…...

杰理AC79-WiFi 的 AP、STA 和 Monitor 模式

WiFi 的 AP、STA 和 Monitor 模式是无线网卡的不同工作模式&#xff0c;它们的区别如下&#xff1a; AP 模式&#xff08;Access Point 模式&#xff0c;接入点模式&#xff09; 功能&#xff1a;将有线网络转换为无线网络&#xff0c;允许其他无线设备连接到该网络&#xff…...

MAC安装unar并解压.rar文件

MAC上默认解压.zip文件&#xff0c;对.rar文件进行解压需要安装专门对软件。本文记录如何在命令行安装unar并对.rar文件进行解压。 命令行安装 brew install unar打印如下log则安装成功 使用brew list unar检查是否安装成功 brew list unar使用unar解压 unar 文件名.rar...